source: azure_iot_hub/trunk/azure_iohub/c-utility/inc/azure_c_shared_utility/constmap.h@ 388

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

Azure IoT Hub Device C SDK を使ったサンプルの追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-chdr
File size: 4.5 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 constmap.h
5* @brief ConstMap is a module that implements a read-only dictionary
6* of @c const char* keys to @c const char* values.
7*/
8
9#ifndef CONSTMAP_H
10#define CONSTMAP_H
11
12#include "azure_c_shared_utility/macro_utils.h"
13#include "azure_c_shared_utility/crt_abstractions.h"
14#include "azure_c_shared_utility/map.h"
15#include "azure_c_shared_utility/umock_c_prod.h"
16
17#ifdef __cplusplus
18#include <cstddef>
19extern "C"
20{
21#else
22#include <stddef.h>
23#endif
24
25
26#define CONSTMAP_RESULT_VALUES \
27 CONSTMAP_OK, \
28 CONSTMAP_ERROR, \
29 CONSTMAP_INVALIDARG, \
30 CONSTMAP_KEYNOTFOUND
31
32/** @brief Enumeration specifying the status of calls to various APIs in this
33 * module.
34 */
35MU_DEFINE_ENUM(CONSTMAP_RESULT, CONSTMAP_RESULT_VALUES);
36
37typedef struct CONSTMAP_HANDLE_DATA_TAG* CONSTMAP_HANDLE;
38
39
40/**
41 * @brief Creates a new read-only map from a map handle.
42 *
43 * @param sourceMap The map from which we will populate key,value
44 * into the read-only map.
45 *
46 * @return A valid @c CONSTMAP_HANDLE or @c NULL in case an error occurs.
47 */
48MOCKABLE_FUNCTION(, CONSTMAP_HANDLE, ConstMap_Create, MAP_HANDLE, sourceMap);
49
50 /**
51 * @brief Destroy a read-only map. Deallocate memory associated with handle.
52 * @param handle Handle to a read-only map.
53 */
54MOCKABLE_FUNCTION(, void, ConstMap_Destroy, CONSTMAP_HANDLE, handle);
55
56 /**
57 * @brief Clone a read-only map from another read-only map.
58 * @param handle Handle to a read-only map.
59 * @return A valid @c CONSTMAP_HANDLE or @c NULL in case an error occurs.
60 */
61MOCKABLE_FUNCTION(, CONSTMAP_HANDLE, ConstMap_Clone, CONSTMAP_HANDLE, handle);
62
63 /**
64 * @brief Create a map handle populated from the read-only map.
65 * @param handle Handle to a read-only map.
66 * @return A valid @c MAP_HANDLE or @c NULL in case an error occurs.
67 *
68 * The new MAP_HANDLE needs to be destroyed when it is no longer needed.
69 */
70MOCKABLE_FUNCTION(, MAP_HANDLE, ConstMap_CloneWriteable, CONSTMAP_HANDLE, handle);
71
72/**
73 * @brief This function returns a true if the map contains a key
74 * with the same value the parameter @p key.
75 *
76 * @param handle The handle to an existing map.
77 * @param key The key that the caller wants checked.
78 *
79 * @return The function returns @c true if the key exists
80 * in the map and @c false if key is not found or
81 * parameters are invalid.
82 */
83MOCKABLE_FUNCTION(, bool, ConstMap_ContainsKey, CONSTMAP_HANDLE, handle, const char*, key);
84
85/**
86 * @brief This function returns @c true if at least one <key,value> pair
87 * exists in the map where the entry's value is equal to the
88 * parameter @c value.
89 *
90 * @param handle The handle to an existing map.
91 * @param value The value that the caller wants checked.
92 *
93 * @return The function returns @c true if the value exists
94 * in the map and @c false if value is not found or
95 * parameters are invalid.
96 */
97MOCKABLE_FUNCTION(, bool, ConstMap_ContainsValue, CONSTMAP_HANDLE, handle, const char*, value);
98
99/**
100 * @brief Retrieves the value of a stored key.
101 *
102 * @param handle The handle to an existing map.
103 * @param key The key to be looked up in the map.
104 *
105 * @return Returns @c NULL in case the input arguments are @c NULL or if the
106 * requested key is not found in the map. Returns a pointer to the
107 * key's value otherwise.
108 */
109MOCKABLE_FUNCTION(, const char*, ConstMap_GetValue, CONSTMAP_HANDLE, handle, const char*, key);
110
111 /**
112 * @brief Retrieves the complete list of keys and values from the map
113 * in @p values and @p keys. Also writes the size of the list
114 * in @p count.
115 *
116 * @param handle The handle to an existing map.
117 * @param keys The location where the list of keys is to be written.
118 * @param values The location where the list of values is to be written.
119 * @param count The number of stored keys and values is written at the
120 * location indicated by this pointer.
121 *
122 * @return Returns @c CONSTMAP_OK if the keys and values are retrieved
123 * and written successfully or an error code otherwise.
124 */
125MOCKABLE_FUNCTION(, CONSTMAP_RESULT, ConstMap_GetInternals, CONSTMAP_HANDLE, handle, const char*const**, keys, const char*const**, values, size_t*, count);
126
127
128#ifdef __cplusplus
129}
130#endif
131
132#endif /* CONSTMAP_H */
Note: See TracBrowser for help on using the repository browser.