cmap_get.3.in 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. .\"/*
  2. .\" * Copyright (c) 2012 Red Hat, Inc.
  3. .\" *
  4. .\" * All rights reserved.
  5. .\" *
  6. .\" * Author: Jan Friesse (jfriesse@redhat.com)
  7. .\" *
  8. .\" * This software licensed under BSD license, the text of which follows:
  9. .\" *
  10. .\" * Redistribution and use in source and binary forms, with or without
  11. .\" * modification, are permitted provided that the following conditions are met:
  12. .\" *
  13. .\" * - Redistributions of source code must retain the above copyright notice,
  14. .\" * this list of conditions and the following disclaimer.
  15. .\" * - Redistributions in binary form must reproduce the above copyright notice,
  16. .\" * this list of conditions and the following disclaimer in the documentation
  17. .\" * and/or other materials provided with the distribution.
  18. .\" * - Neither the name of the Red Hat, Inc. nor the names of its
  19. .\" * contributors may be used to endorse or promote products derived from this
  20. .\" * software without specific prior written permission.
  21. .\" *
  22. .\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  23. .\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  24. .\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  25. .\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  26. .\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  27. .\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  28. .\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  29. .\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  30. .\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  31. .\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  32. .\" * THE POSSIBILITY OF SUCH DAMAGE.
  33. .\" */
  34. .TH "CMAP_GET" 3 "03/02/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
  35. .SH NAME
  36. .P
  37. cmap_get \- Retrieve value from CMAP
  38. .SH SYNOPSIS
  39. .P
  40. \fB#include <corosync/cmap.h>\fR
  41. .P
  42. \fBcs_error_t
  43. cmap_get (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, void *\fIvalue\fB,
  44. size_t *\fIvalue_len\fB, cmap_value_types_t *\fItype\fB);\fR
  45. .P
  46. Also shortcuts for different types are defined
  47. .P
  48. \fBcs_error_t cmap_get_int8 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int8_t *\fIi8\fB);\fR
  49. .P
  50. \fBcs_error_t cmap_get_uint8 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint8_t *\fIu8\fB);\fR
  51. .P
  52. \fBcs_error_t cmap_get_int16 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int16_t *\fIi16\fB);\fR
  53. .P
  54. \fBcs_error_t cmap_get_uint16 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint16_t *\fIu16\fB);\fR
  55. .P
  56. \fBcs_error_t cmap_get_int32 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int32_t *\fIi32\fB);\fR
  57. .P
  58. \fBcs_error_t cmap_get_uint32 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint32_t *\fIu32\fB);\fR
  59. .P
  60. \fBcs_error_t cmap_get_int64 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int64_t *\fIi64\fB);\fR
  61. .P
  62. \fBcs_error_t cmap_get_uint64 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint64_t *\fIu64\fB);\fR
  63. .P
  64. \fBcs_error_t cmap_get_float (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, float *\fIflt\fB);\fR
  65. .P
  66. \fBcs_error_t cmap_get_double (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, double *\fIdbl\fB);\fR
  67. .P
  68. \fBcs_error_t cmap_get_string (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, char **\fIstr\fB);\fR
  69. .SH DESCRIPTION
  70. .P
  71. The
  72. .B cmap_get
  73. function is used to retrieve key from cmap previously set by
  74. .B cmap_set(3)
  75. function. The
  76. .I handle
  77. argument is connection to CMAP database obtained by calling
  78. .B cmap_initialize(3)
  79. function.
  80. .I key_name
  81. is name of key to get value from.
  82. .I value
  83. is pointer to preallocated data used as storage for data, but can be also NULL, and then only
  84. .I value_len
  85. and/or
  86. .I type
  87. is returned (both of them can also be NULL, allowing function to be used only for test of existence of key).
  88. If
  89. .I value
  90. is not NULL, actual length of value in map is checked against
  91. .I *value_len.
  92. If
  93. .I *value_len
  94. is shorter then length of value in map, error CS_ERR_INVALID_PARAM is returned. After successful copy of
  95. value,
  96. .I *value_len
  97. is set to actual length of value in map. Parameter
  98. .I type
  99. is pointer to memory, where type of value is stored after successful return. Pointer can also be NULL and
  100. then nothing is stored. Type can be one of:
  101. .PP
  102. \fBCMAP_VALUETYPE_INT8\fR - 8-bit signed interger
  103. .PP
  104. \fBCMAP_VALUETYPE_UINT8\fR - 8-bit unsigned integer
  105. .PP
  106. \fBCMAP_VALUETYPE_INT16\fR - 16-bit signed interger
  107. .PP
  108. \fBCMAP_VALUETYPE_UINT16\fR - 16-bit unsigned integer
  109. .PP
  110. \fBCMAP_VALUETYPE_INT32\fR - 32-bit signed interger
  111. .PP
  112. \fBCMAP_VALUETYPE_UINT32\fR - 32-bit unsigned integer
  113. .PP
  114. \fBCMAP_VALUETYPE_INT64\fR - 64-bit signed interger
  115. .PP
  116. \fBCMAP_VALUETYPE_UINT64\fR - 64-bit unsigned integer
  117. .PP
  118. \fBCMAP_VALUETYPE_FLOAT\fR - Float value
  119. .PP
  120. \fBCMAP_VALUETYPE_DOUBLE\fR - Double value
  121. .PP
  122. \fBCMAP_VALUETYPE_STRING\fR - C-style string
  123. .PP
  124. \fBCMAP_VALUETYPE_BINARY\fR - Binary data, byte with zero value has no special meaning
  125. Sortcut functions tests cmap type with it's own type. If type didn't match, CS_ERR_INVALID_PARAM error
  126. is returned. No conversions are done, so for example
  127. .B cmap_get_int16
  128. is not able to return value with
  129. .B CMAP_VALUETYPE_INT8
  130. type.
  131. String shortcut function returns newly allocated memory and caller is responsible for freeing that.
  132. .SH RETURN VALUE
  133. This call returns the CS_OK value if successful. If value or key_name are unspecified, CS_ERR_INVALID_PARAM
  134. is returned. Same error is also returned if
  135. .I value
  136. is specified, and
  137. .I *value_len
  138. is too short for store of data. If key doesn't exists (it was not set by calling
  139. .B cmap_set(3)
  140. function first) CS_ERR_NOT_EXIST error is returned. For helper functions,
  141. CS_ERR_INVALID_PARAM is returned if type stored in cmap doesn't match with type of helper function.
  142. .SH "SEE ALSO"
  143. .BR cmap_set (3),
  144. .BR cmap_initialize (3),
  145. .BR cmap_overview (8)