source: azure_iot_hub_f767zi/trunk/azure_iot_sdk/iothub_client/inc/internal/blob.h@ 457

Last change on this file since 457 was 457, checked in by coas-nagasima, 4 years ago

ファイルを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 3.7 KB
Line 
1// Copyright (c) Microsoft. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
4/** @file blob.h
5* @brief Contains blob APIs needed for File Upload feature of IoTHub client.
6*
7* @details IoTHub client needs to upload a byte array by using blob storage API
8* IoTHub service provides the complete SAS URI to execute a PUT request
9* that will upload the data.
10*
11*/
12
13#ifndef BLOB_H
14#define BLOB_H
15
16#include "azure_macro_utils/macro_utils.h"
17#include "azure_c_shared_utility/buffer_.h"
18#include "azure_c_shared_utility/strings_types.h"
19#include "azure_c_shared_utility/httpapiex.h"
20#include "iothub_client_core_ll.h"
21#include "azure_c_shared_utility/shared_util_options.h"
22
23#ifdef __cplusplus
24#include <cstddef>
25extern "C"
26{
27#else
28#include <stddef.h>
29#endif
30
31#include "umock_c/umock_c_prod.h"
32
33/* Allow unit tests to override MAX_BLOCK_COUNT to something much smaller */
34#ifndef MAX_BLOCK_COUNT
35/* Maximum count of blocks uploaded is 50000, per server*/
36#define MAX_BLOCK_COUNT 50000
37#endif
38
39#define BLOB_RESULT_VALUES \
40 BLOB_OK, \
41 BLOB_ERROR, \
42 BLOB_NOT_IMPLEMENTED, \
43 BLOB_HTTP_ERROR, \
44 BLOB_INVALID_ARG, \
45 BLOB_ABORTED
46
47MU_DEFINE_ENUM_WITHOUT_INVALID(BLOB_RESULT, BLOB_RESULT_VALUES)
48
49/**
50* @brief Synchronously uploads a byte array to blob storage
51*
52* @param SASURI The URI to use to upload data
53* @param getDataCallbackEx A callback to be invoked to acquire the file chunks to be uploaded, as well as to indicate the status of the upload of the previous block.
54* @param context Any data provided by the user to serve as context on getDataCallback.
55* @param httpStatus A pointer to an out argument receiving the HTTP status (available only when the return value is BLOB_OK)
56* @param httpResponse A BUFFER_HANDLE that receives the HTTP response from the server (available only when the return value is BLOB_OK)
57* @param certificates A null terminated string containing CA certificates to be used
58* @param proxyOptions A structure that contains optional web proxy information
59*
60* @return A @c BLOB_RESULT. BLOB_OK means the blob has been uploaded successfully. Any other value indicates an error
61*/
62MOCKABLE_FUNCTION(, BLOB_RESULT, Blob_UploadMultipleBlocksFromSasUri, const char*, SASURI, IOTHUB_CLIENT_FILE_UPLOAD_GET_DATA_CALLBACK_EX, getDataCallbackEx, void*, context, unsigned int*, httpStatus, BUFFER_HANDLE, httpResponse, const char*, certificates, HTTP_PROXY_OPTIONS*, proxyOptions)
63
64/**
65* @brief Synchronously uploads a byte array as a new block to blob storage
66*
67* @param requestContent The data to upload
68* @param blockId The block id (from 00000 to 49999)
69* @param xml The XML file containing the blockId list
70* @param relativePath The destination path within the storage
71* @param httpApiExHandle The connection handle
72* @param httpStatus A pointer to an out argument receiving the HTTP status (available only when the return value is BLOB_OK)
73* @param httpResponse A BUFFER_HANDLE that receives the HTTP response from the server (available only when the return value is BLOB_OK)
74*/
75//MOCKABLE_FUNCTION(, BLOB_RESULT, Blob_UploadNextBlock, BUFFER_HANDLE, requestContent, unsigned int, blockID, STRING_HANDLE, xml, const char*, relativePath, HTTPAPIEX_HANDLE, httpApiExHandle, unsigned int*, httpStatus, BUFFER_HANDLE, httpResponse)
76MOCKABLE_FUNCTION(, BLOB_RESULT, Blob_UploadBlock, HTTPAPIEX_HANDLE, httpApiExHandle, const char*, relativePath, BUFFER_HANDLE, requestContent, unsigned int, blockID, STRING_HANDLE, blockIDList, unsigned int*, httpStatus, BUFFER_HANDLE, httpResponse)
77#ifdef __cplusplus
78}
79#endif
80
81#endif /* BLOB_H */
Note: See TracBrowser for help on using the repository browser.