本文整理汇总了C++中IOTHUB_CLIENT_LL_HANDLE_DATA::IoTHubTransport_GetHostname方法的典型用法代码示例。如果您正苦于以下问题:C++ IOTHUB_CLIENT_LL_HANDLE_DATA::IoTHubTransport_GetHostname方法的具体用法?C++ IOTHUB_CLIENT_LL_HANDLE_DATA::IoTHubTransport_GetHostname怎么用?C++ IOTHUB_CLIENT_LL_HANDLE_DATA::IoTHubTransport_GetHostname使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IOTHUB_CLIENT_LL_HANDLE_DATA
的用法示例。
在下文中一共展示了IOTHUB_CLIENT_LL_HANDLE_DATA::IoTHubTransport_GetHostname方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IoTHubClient_LL_CreateWithTransport
IOTHUB_CLIENT_LL_HANDLE IoTHubClient_LL_CreateWithTransport(const IOTHUB_CLIENT_DEVICE_CONFIG * config)
{
IOTHUB_CLIENT_LL_HANDLE result;
/*Codes_SRS_IOTHUBCLIENT_LL_17_001: [IoTHubClient_LL_CreateWithTransport shall return NULL if config parameter is NULL, or protocol field is NULL or transportHandle is NULL.]*/
if (
(config == NULL) ||
(config->protocol == NULL) ||
(config->transportHandle == NULL) ||
/*Codes_SRS_IOTHUBCLIENT_LL_02_098: [ IoTHubClient_LL_CreateWithTransport shall fail and return NULL if both config->deviceKey AND config->deviceSasToken are NULL. ]*/
((config->deviceKey == NULL) && (config->deviceSasToken == NULL))
)
{
result = NULL;
LogError("invalid configuration (NULL detected)");
}
else
{
/*Codes_SRS_IOTHUBCLIENT_LL_17_002: [IoTHubClient_LL_CreateWithTransport shall allocate data for the IOTHUB_CLIENT_LL_HANDLE.]*/
IOTHUB_CLIENT_LL_HANDLE_DATA* handleData = (IOTHUB_CLIENT_LL_HANDLE_DATA*)malloc(sizeof(IOTHUB_CLIENT_LL_HANDLE_DATA));
if (handleData == NULL)
{
/*Codes_SRS_IOTHUBCLIENT_LL_17_003: [If allocation fails, the function shall fail and return NULL.] */
LogError("malloc failed");
result = NULL;
}
else
{
handleData->transportHandle = config->transportHandle;
setTransportProtocol(handleData, (TRANSPORT_PROVIDER*)config->protocol());
#ifndef DONT_USE_UPLOADTOBLOB
const char* hostname = STRING_c_str(handleData->IoTHubTransport_GetHostname(handleData->transportHandle));
/*Codes_SRS_IOTHUBCLIENT_LL_02_096: [ IoTHubClient_LL_CreateWithTransport shall create the data structures needed to instantiate a IOTHUB_CLIENT_LL_UPLOADTOBLOB_HANDLE. ]*/
/*the first '.' says where the iothubname finishes*/
const char* whereIsDot = strchr(hostname, '.');
if (whereIsDot == NULL)
{
/*Codes_SRS_IOTHUBCLIENT_LL_02_097: [ If creating the data structures fails or instantiating the IOTHUB_CLIENT_LL_UPLOADTOBLOB_HANDLE fails then IoTHubClient_LL_CreateWithTransport shall fail and return NULL. ]*/
LogError("unable to determine the IoTHub name");
free(handleData);
result = NULL;
}
else
{
/*Codes_SRS_IOTHUBCLIENT_LL_02_096: [ IoTHubClient_LL_CreateWithTransport shall create the data structures needed to instantiate a IOTHUB_CLIENT_LL_UPLOADTOBLOB_HANDLE. ]*/
char* IoTHubName = malloc(whereIsDot - hostname + 1);
if (IoTHubName == NULL)
{
/*Codes_SRS_IOTHUBCLIENT_LL_02_097: [ If creating the data structures fails or instantiating the IOTHUB_CLIENT_LL_UPLOADTOBLOB_HANDLE fails then IoTHubClient_LL_CreateWithTransport shall fail and return NULL. ]*/
LogError("unable to malloc");
free(handleData);
result = NULL;
}
else
{
const char* IotHubSuffix = whereIsDot + 1;
memcpy(IoTHubName, hostname, whereIsDot - hostname);
IoTHubName[whereIsDot - hostname ] = '\0';
IOTHUB_CLIENT_CONFIG temp;
temp.deviceId = config->deviceId;
temp.deviceKey = config->deviceKey;
temp.deviceSasToken = config->deviceSasToken;
temp.iotHubName = IoTHubName;
temp.iotHubSuffix = IotHubSuffix;
temp.protocol = NULL; /*irrelevant to IoTHubClient_LL_UploadToBlob*/
temp.protocolGatewayHostName = NULL; /*irrelevant to IoTHubClient_LL_UploadToBlob*/
/*Codes_SRS_IOTHUBCLIENT_LL_02_097: [ If creating the data structures fails or instantiating the IOTHUB_CLIENT_LL_UPLOADTOBLOB_HANDLE fails then IoTHubClient_LL_CreateWithTransport shall fail and return NULL. ]*/
handleData->uploadToBlobHandle = IoTHubClient_LL_UploadToBlob_Create(&temp);
if (handleData->uploadToBlobHandle == NULL)
{
/*Codes_SRS_IOTHUBCLIENT_LL_02_096: [ IoTHubClient_LL_CreateWithTransport shall create the data structures needed to instantiate a IOTHUB_CLIENT_LL_UPLOADTOBLOB_HANDLE. ]*/
LogError("unable to IoTHubClient_LL_UploadToBlob_Create");
free(handleData);
result = NULL;
}
else
#endif
{
/*Codes_SRS_IOTHUBCLIENT_LL_02_047: [ IoTHubClient_LL_CreateWithTransport shall create a TICK_COUNTER_HANDLE. ]*/
if ((handleData->tickCounter = tickcounter_create()) == NULL)
{
/*Codes_SRS_IOTHUBCLIENT_LL_02_048: [ If creating the handle fails, then IoTHubClient_LL_CreateWithTransport shall fail and return NULL ]*/
LogError("unable to get a tickcounter");
#ifndef DONT_USE_UPLOADTOBLOB
IoTHubClient_LL_UploadToBlob_Destroy(handleData->uploadToBlobHandle);
#endif
free(handleData);
result = NULL;
}
else
{
/*Codes_SRS_IOTHUBCLIENT_LL_17_004: [IoTHubClient_LL_CreateWithTransport shall initialize a new DLIST (further called "waitingToSend") containing records with fields of the following types: IOTHUB_MESSAGE_HANDLE, IOTHUB_CLIENT_EVENT_CONFIRMATION_CALLBACK, void*.]*/
DList_InitializeListHead(&(handleData->waitingToSend));
handleData->messageCallback = NULL;
handleData->messageUserContextCallback = NULL;
handleData->lastMessageReceiveTime = INDEFINITE_TIME;
//.........这里部分代码省略.........