> For the complete documentation index, see [llms.txt](https://sandbox-docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/readme/modules/group__propdb.md).

# Property Database API

[Files](#files) | [Data Structures](#nested-classes) | [Macros](#define-members) | [Typedefs](#typedef-members) | [Enumerations](#enum-members)

Allows for easy to use hierarchical key/value storage. [More...](#details)

|       |                                                                                  |
| ----- | -------------------------------------------------------------------------------- |
| Files |                                                                                  |
| file  | [infodb.h](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md) |
|       | <p>Hierarchical Property Database API.<br></p>                                   |

|                 |                                                                                                                    |
| --------------- | ------------------------------------------------------------------------------------------------------------------ |
| Data Structures |                                                                                                                    |
| struct          | [InfoChildren](#struct_info_children)                                                                              |
|                 | <p>structure for returning the names of the direct child nodes <a href="#struct_info_children">More...</a><br></p> |

|         |                                                                                          |
| ------- | ---------------------------------------------------------------------------------------- |
| Macros  |                                                                                          |
| #define | [PROP\_NAME](#ga2062ba7b5292b2cb9456209022cbdac7)   "registry"                           |
|         | <p>property table name <a href="#ga2062ba7b5292b2cb9456209022cbdac7">More...</a><br></p> |

|                             |                                                                                                                                                                                                                                                                                     |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Typedefs                    |                                                                                                                                                                                                                                                                                     |
| typedef long long           | [InfoNode](#ga371205fdb002d88c01543e80d67c188d)                                                                                                                                                                                                                                     |
|                             | <p>64-bit ID referencing one node/key in the database, IDs are always positive numbers, <a href="#gga726ca809ffd3d67ab4b8476646f26635a9752fad95ea540238bfad2ac28fbf1b0">INFO\_ROOT</a> is the ID of the root node <a href="#ga371205fdb002d88c01543e80d67c188d">More...</a><br></p> |
| typedef struct InfoDBHandle | [InfoDB](#ga4ddf94c49950552d783161dda5443e0f)                                                                                                                                                                                                                                       |
|                             | <p>Database handle. <a href="#ga4ddf94c49950552d783161dda5443e0f">More...</a><br></p>                                                                                                                                                                                               |

|              |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Enumerations |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| enum         | <p><a href="#ga1f20dc2829c95bd71bdb14239bc3b2c8">InfoResult</a> {<br>  <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8aeed232bfb806b5e87f0f1308aca346ef">INFO\_OK</a> = 0, <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8a84e5813d027c7b570cf59b048a276419">INFO\_FAIL</a> = -1, <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8a0703a78aa4d8dbb735f4f885cf2f8f7e">INFO\_NO\_DB</a> = -2, <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8a3b1f244145443aefc6bc416ee178110d">INFO\_NOT\_FOUND</a> = -3,<br>  <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8ab35a928a60d11b22b11200706f346f50">INFO\_INVALID\_PARAM</a> = -4, <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8a1144601a481f8efa44dbfb02f2c05286">INFO\_BUSY</a> = -5, <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8a82d358474cb1a4681487cdcfe3b2e1d5">INFO\_MEM</a> = -6, <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8af9b83681708f932f8f3960d39e3936c0">INFO\_BREAK</a> = -7,<br>  <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8a209d19f7193b4a25e96f55ce06ffb374">INFO\_NODE\_NAME\_INVALID</a> = -8, <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8a8772e66ffc6da38cfed56f7724bb1717">INFO\_NOT\_IMPL</a> = -900, <a href="#gga1f20dc2829c95bd71bdb14239bc3b2c8a7e732670c842bfcdaa985eff7b28b5a5">INFO\_NOT\_SUPP</a> = -901<br>}</p> |
|              | <p>Result codes. <a href="#ga1f20dc2829c95bd71bdb14239bc3b2c8">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| enum         | <p><a href="#ga4fab2721054fd66cc89f138fd029fd1f">InfoType</a> {<br>  <a href="#gga4fab2721054fd66cc89f138fd029fd1fa1e2ec92ebdcd376972b8cd557aaa8b02">INFO\_VOID</a>, <a href="#gga4fab2721054fd66cc89f138fd029fd1fa5dd4a9b6e283187cee362ee67501928a">INFO\_INTEGER</a>, <a href="#gga4fab2721054fd66cc89f138fd029fd1fac11f023f86358f75382dc489903b17ef">INFO\_NUMBER</a>, <a href="#gga4fab2721054fd66cc89f138fd029fd1fa02921ca454a797dd48d6d4b053eae727">INFO\_STRING</a>,<br>  <a href="#gga4fab2721054fd66cc89f138fd029fd1fa667a98036d4afd2297eaa5fee8bb4358">INFO\_BINARY</a><br>}</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|              | <p>Data types. <a href="#ga4fab2721054fd66cc89f138fd029fd1f">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| enum         | [InfoMode](#ga9b99e447e7b4f91cd7b9fba838b825f0) { [INFO\_READ\_ONLY](#gga9b99e447e7b4f91cd7b9fba838b825f0ae1293e987f7ec2d1963e8ee796dc4c86), [INFO\_READ\_WRITE](#gga9b99e447e7b4f91cd7b9fba838b825f0a2ea780c3c29a4a4989d414089641488e) }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|              | <p>Database open modes. <a href="#ga9b99e447e7b4f91cd7b9fba838b825f0">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| enum         | [InfoOption](#gaa315d0c6482a2ebccc7547e9295a211d) { [INFO\_OPT\_DISABLE\_AUTOCOMMIT](#ggaa315d0c6482a2ebccc7547e9295a211da16008ad085c1be473320e4df194c0d27) = (0x1 << 0), [INFO\_OPT\_MULTIPLE\_ENTRIES](#ggaa315d0c6482a2ebccc7547e9295a211da238bdf391e95b811f9ac5e8c772b6af6) = (0x1 << 1) }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|              | <p>Additional options. <a href="#gaa315d0c6482a2ebccc7547e9295a211d">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| enum         | { [INFO\_ROOT](#gga726ca809ffd3d67ab4b8476646f26635a9752fad95ea540238bfad2ac28fbf1b0) = 0 }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

|                                                                                                                                                                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Functions                                                                                                                                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| const [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) char \*                                          | [info\_getVersion](#ga45afbfe3853490244c17383a667fe0e7) (void)                                                                                                                                                                                                                                                                                                                                                                                     |
|                                                                                                                                                                           | <p>get version of a library <a href="#ga45afbfe3853490244c17383a667fe0e7">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                      |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) [InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*       | [info\_opendb](#ga4cf176ac250d5f4ac40a717bdf49bad9) (const char \*filename, enum [InfoMode](#ga9b99e447e7b4f91cd7b9fba838b825f0) mode)                                                                                                                                                                                                                                                                                                             |
|                                                                                                                                                                           | <p>Open the database. <a href="#ga4cf176ac250d5f4ac40a717bdf49bad9">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                            |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) void                                                   | [info\_closedb](#ga9636f5a41459a3366255bd2fc8ad2b3f) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle)                                                                                                                                                                                                                                                                                                                                      |
|                                                                                                                                                                           | <p>Close database and release allocated resources. <a href="#ga9636f5a41459a3366255bd2fc8ad2b3f">More...</a><br></p>                                                                                                                                                                                                                                                                                                                               |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_setOptions](#ga34be6def57c4f44b170128532f78fe2d) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, int options)                                                                                                                                                                                                                                                                                                                      |
|                                                                                                                                                                           | <p>Set additional options changing behavior of info\_\* functions. <a href="#ga34be6def57c4f44b170128532f78fe2d">More...</a><br></p>                                                                                                                                                                                                                                                                                                               |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) int                                                    | [info\_getOptions](#ga5a7085e70df8abd29bcaea9e4e3d2c77) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle)                                                                                                                                                                                                                                                                                                                                   |
|                                                                                                                                                                           | <p>Get current additional options changing behavior of info\_\* functions. <a href="#ga5a7085e70df8abd29bcaea9e4e3d2c77">More...</a><br></p>                                                                                                                                                                                                                                                                                                       |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_autocommit](#ga0801c688741d290aea51941ece9da78c) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, int enable)                                                                                                                                                                                                                                                                                                                       |
|                                                                                                                                                                           | <p>Enable/disable automatic commit for every info\_write\* operation. <a href="#ga0801c688741d290aea51941ece9da78c">More...</a><br></p>                                                                                                                                                                                                                                                                                                            |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_transactionBegin](#ga816c14a5630ad3e2e0734a52fe285e54) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*idb)                                                                                                                                                                                                                                                                                                                                |
|                                                                                                                                                                           | <p>Save database state. <a href="#ga816c14a5630ad3e2e0734a52fe285e54">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                          |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_transactionCommit](#ga3c2f5b212c59c57adbe313812e63b350) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*idb)                                                                                                                                                                                                                                                                                                                               |
|                                                                                                                                                                           | <p>Commit changes. <a href="#ga3c2f5b212c59c57adbe313812e63b350">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                               |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_transactionRollback](#ga61db7da4ef43b0e4994dd46d26bd0ebe) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*idb)                                                                                                                                                                                                                                                                                                                             |
|                                                                                                                                                                           | <p>Rollback changes. <a href="#ga61db7da4ef43b0e4994dd46d26bd0ebe">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                             |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) [InfoNode](#ga371205fdb002d88c01543e80d67c188d)        | [info\_find](#gaa167931ed0a92796ee478b9ac93347a2) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path)                                                                                                                                                                                                                                                              |
|                                                                                                                                                                           | <p>Find a node within the hierarchy and return its node ID. <a href="#gaa167931ed0a92796ee478b9ac93347a2">More...</a><br></p>                                                                                                                                                                                                                                                                                                                      |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_getType](#ga507d337f52d3d7acf3691a287d565515) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, enum [InfoType](#ga4fab2721054fd66cc89f138fd029fd1f) \*type)                                                                                                                                                                                              |
|                                                                                                                                                                           | <p>Determine the type of a value as it has been stored in the database. <a href="#ga507d337f52d3d7acf3691a287d565515">More...</a><br></p>                                                                                                                                                                                                                                                                                                          |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_readInt](#ga3b1d6872aab17d7043fc6258caaf4f36) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, int \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))                      |
|                                                                                                                                                                           | <p>Read value from the database and convert it to int, if required. <a href="#ga3b1d6872aab17d7043fc6258caaf4f36">More...</a><br></p>                                                                                                                                                                                                                                                                                                              |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_readUnsignedInt](#gac59bbe74aae83c5888f510c3bc169063) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, unsigned int \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))     |
|                                                                                                                                                                           | <p>Read value from the database and convert it to unsigned int, if required. <a href="#gac59bbe74aae83c5888f510c3bc169063">More...</a><br></p>                                                                                                                                                                                                                                                                                                     |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_readDouble](#ga8e36e70267096d0de8b8d8e50d1542a6) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, double \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))                |
|                                                                                                                                                                           | <p>Read value from the database and convert it to double, if required. <a href="#ga8e36e70267096d0de8b8d8e50d1542a6">More...</a><br></p>                                                                                                                                                                                                                                                                                                           |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_readString](#ga045b2122ffcea050015ce6de52c106f6) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, char \*\*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))                |
|                                                                                                                                                                           | <p>Read value from the database and convert it to a string, if required. <a href="#ga045b2122ffcea050015ce6de52c106f6">More...</a><br></p>                                                                                                                                                                                                                                                                                                         |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_readBinary](#ga0924a766bf84c449058a7b4f78bd1a96) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, void \*\*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), int \*size)    |
|                                                                                                                                                                           | <p>Read value from the database as chunk of memory. <a href="#ga0924a766bf84c449058a7b4f78bd1a96">More...</a><br></p>                                                                                                                                                                                                                                                                                                                              |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_updateNodeName](#ga4bd971d1088aed8566212896522ec147) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*idb, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) node, const char \*newname, int allow\_overwrite)                                                                                                                                                                                                                                |
|                                                                                                                                                                           | <p>Update node\_name. <a href="#ga4bd971d1088aed8566212896522ec147">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                            |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_writeInt](#gaa569328ef9e8c2da03429b5c270101c5) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, int [value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))                       |
|                                                                                                                                                                           | <p>Write int value to the database. <a href="#gaa569328ef9e8c2da03429b5c270101c5">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                              |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_writeUnsignedInt](#ga4347be8fa85445d67ef163ef3bdc6acd) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, unsigned int [value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))      |
|                                                                                                                                                                           | <p>Write unsigned int value to the database. <a href="#ga4347be8fa85445d67ef163ef3bdc6acd">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                     |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_writeDouble](#gadd1c03a124342cb7d889360e2a866c51) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, double [value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))                 |
|                                                                                                                                                                           | <p>Write double value to the database. <a href="#gadd1c03a124342cb7d889360e2a866c51">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                           |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_writeString](#gaa820eb834650ba97b27d9cc4d558fb8d) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, const char \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))           |
|                                                                                                                                                                           | <p>Write string value to the database. <a href="#gaa820eb834650ba97b27d9cc4d558fb8d">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                           |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_writeBinary](#ga31c4f4a46c0818f7e64a269b43d5c272) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, const void \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), int size) |
|                                                                                                                                                                           | <p>Write value from the database as chunk of memory. <a href="#ga31c4f4a46c0818f7e64a269b43d5c272">More...</a><br></p>                                                                                                                                                                                                                                                                                                                             |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_delete](#gab0cab9361709296139598c7edda1f1ed) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path)                                                                                                                                                                                                                                                            |
|                                                                                                                                                                           | <p>Delete a node and all of its child nodes from the database. <a href="#gab0cab9361709296139598c7edda1f1ed">More...</a><br></p>                                                                                                                                                                                                                                                                                                                   |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_list](#ga54f4b018748882e6c5cdc509177fcee7) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, struct [InfoChildren](#struct_info_children) \*\*list)                                                                                                                                                                                                       |
|                                                                                                                                                                           | <p>Obtain a list of the names of all direct child nodes of a node. <a href="#ga54f4b018748882e6c5cdc509177fcee7">More...</a><br></p>                                                                                                                                                                                                                                                                                                               |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_incrementInt](#ga0b9ac4c2f9a7b257d0610d3d7248a722) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, int delta, int \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))      |
|                                                                                                                                                                           | <p>Atomically increment an integer by some delta. <a href="#ga0b9ac4c2f9a7b257d0610d3d7248a722">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_getPath](#ga5147f1308f849af0f18ee2f9dfdadbce) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) node, char \*\*path)                                                                                                                                                                                                                                                                 |
|                                                                                                                                                                           | <p>Determine the absolute path of a node. <a href="#ga5147f1308f849af0f18ee2f9dfdadbce">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                        |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_walkTree](#ga672f3d4caf24ff01c3b6801b13bf4463) ([InfoDB](#ga4ddf94c49950552d783161dda5443e0f) \*handle, [InfoNode](#ga371205fdb002d88c01543e80d67c188d) parent, const char \*path, int(\*cb)(void \*data, const char \*path, struct InfoReference \*info), void \*data)                                                                                                                                                                     |
|                                                                                                                                                                           | <p>Recursively walk over the nodes of the (sub-) tree and invoke the callback for each node. <a href="#ga672f3d4caf24ff01c3b6801b13bf4463">More...</a><br></p>                                                                                                                                                                                                                                                                                     |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_nodeGetType](#gaf943103c0cb3018c835ee081a35c2629) (struct InfoReference \*info, enum [InfoType](#ga4fab2721054fd66cc89f138fd029fd1f) \*type)                                                                                                                                                                                                                                                                                                |
|                                                                                                                                                                           | <p>Determine type of a node. <a href="#gaf943103c0cb3018c835ee081a35c2629">More...</a><br></p>                                                                                                                                                                                                                                                                                                                                                     |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_nodeReadInt](#ga6d85fe7b4326970a1b00000d029fec78) (struct InfoReference \*info, int \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))                                                                                                                        |
|                                                                                                                                                                           | <p>Read value from the database and convert it to int, if required. <a href="#ga6d85fe7b4326970a1b00000d029fec78">More...</a><br></p>                                                                                                                                                                                                                                                                                                              |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_nodeReadDouble](#ga24f0af1a2b3ad3989365661e02a4682f) (struct InfoReference \*info, double \*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))                                                                                                                  |
|                                                                                                                                                                           | <p>Read value from the database and convert it to double, if required. <a href="#ga24f0af1a2b3ad3989365661e02a4682f">More...</a><br></p>                                                                                                                                                                                                                                                                                                           |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_nodeReadString](#ga9447dc74d3c0b289936bc262ef15f49b) (struct InfoReference \*info, char \*\*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209))                                                                                                                  |
|                                                                                                                                                                           | <p>Read value from the database and convert it to a string, if required. <a href="#ga9447dc74d3c0b289936bc262ef15f49b">More...</a><br></p>                                                                                                                                                                                                                                                                                                         |
| [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum [InfoResult](#ga1f20dc2829c95bd71bdb14239bc3b2c8) | [info\_nodeReadBinary](#ga08fcfd8fe23a1a5457b523a9cf967a10) (struct InfoReference \*info, void \*\*[value](/adk-5.0-programmers-guide/readme/files/dir_30aba3d9bf6279a25d84abe4015711f7/dir_f7a957c8f5c8e80b5a8d4b37f193d419/dir_e8da2933844aa72825eccee783cf08f3/_web_service_wrappers_8c.md#a6e248376c0290338633d8137822eb209), int \*size)                                                                                                      |
|                                                                                                                                                                           | <p>Read value from the database as chunk of memory. <a href="#ga08fcfd8fe23a1a5457b523a9cf967a10">More...</a><br></p>                                                                                                                                                                                                                                                                                                                              |

### DetailedDescription <a href="#detailed-description" id="detailed-description"></a>

Allows for easy to use hierarchical key/value storage.

In order to use Property Database API one must include `<`[inf/infodb.h](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md)`>` and link against `libinf.so` or `libinf-static.a` depending on the chosen linkage model. See also the following items:

* sect-path.

***

### DataStructure Documentation <a href="#data-structure-documentation" id="data-structure-documentation"></a>

### InfoChildren <a href="#struct_info_children" id="struct_info_children"></a>

struct InfoChildren

structure for returning the names of the direct child nodes

|             |       |                                                      |
| ----------- | ----- | ---------------------------------------------------- |
| Data Fields |       |                                                      |
| int         | count | number of child nodes                                |
| char \*\*   | name  | array containing the names of the direct child nodes |

### MacroDefinition Documentation <a href="#macro-definition-documentation" id="macro-definition-documentation"></a>

### PROP\_NAME <a href="#ga2062ba7b5292b2cb9456209022cbdac7" id="ga2062ba7b5292b2cb9456209022cbdac7"></a>

\#define PROP\_NAME   \\"registry\\"

property table name

### TypedefDocumentation <a href="#typedef-documentation" id="typedef-documentation"></a>

### InfoDB <a href="#ga4ddf94c49950552d783161dda5443e0f" id="ga4ddf94c49950552d783161dda5443e0f"></a>

typedef struct InfoDBHandle \[InfoDB]\(#ga4ddf94c49950552d783161dda5443e0f)

Database handle.

### InfoNode <a href="#ga371205fdb002d88c01543e80d67c188d" id="ga371205fdb002d88c01543e80d67c188d"></a>

typedef long long \[InfoNode]\(#ga371205fdb002d88c01543e80d67c188d)

64-bit ID referencing one node/key in the database, IDs are always positive numbers, [INFO\_ROOT](#gga726ca809ffd3d67ab4b8476646f26635a9752fad95ea540238bfad2ac28fbf1b0) is the ID of the root node

### EnumerationType Documentation <a href="#enumeration-type-documentation" id="enumeration-type-documentation"></a>

### anonymousenum <a href="#ga726ca809ffd3d67ab4b8476646f26635" id="ga726ca809ffd3d67ab4b8476646f26635"></a>

anonymous enum

|            |                                                  |
| ---------- | ------------------------------------------------ |
| Enumerator |                                                  |
| INFO\_ROOT | Dedicated root node of the hierarchical storage. |

### InfoMode <a href="#ga9b99e447e7b4f91cd7b9fba838b825f0" id="ga9b99e447e7b4f91cd7b9fba838b825f0"></a>

enum \[InfoMode]\(#ga9b99e447e7b4f91cd7b9fba838b825f0)

Database open modes.

|                   |                               |
| ----------------- | ----------------------------- |
| Enumerator        |                               |
| INFO\_READ\_ONLY  | read-only access to database  |
| INFO\_READ\_WRITE | read/write access to database |

### InfoOption <a href="#gaa315d0c6482a2ebccc7547e9295a211d" id="gaa315d0c6482a2ebccc7547e9295a211d"></a>

enum \[InfoOption]\(#gaa315d0c6482a2ebccc7547e9295a211d)

Additional options.

|                                |                                                               |
| ------------------------------ | ------------------------------------------------------------- |
| Enumerator                     |                                                               |
| INFO\_OPT\_DISABLE\_AUTOCOMMIT | 0x1 bit disables autocommit for every info\_write\* operation |
| INFO\_OPT\_MULTIPLE\_ENTRIES   | 0x2 bit allows inserting multiple entries for single key      |

### InfoResult <a href="#ga1f20dc2829c95bd71bdb14239bc3b2c8" id="ga1f20dc2829c95bd71bdb14239bc3b2c8"></a>

enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8)

Result codes.

|                           |                                                                                    |
| ------------------------- | ---------------------------------------------------------------------------------- |
| Enumerator                |                                                                                    |
| INFO\_OK                  | No error.                                                                          |
| INFO\_FAIL                | Generic operation failure.                                                         |
| INFO\_NO\_DB              | Database cannot be accessed.                                                       |
| INFO\_NOT\_FOUND          | Key was not found.                                                                 |
| INFO\_INVALID\_PARAM      | Invalid values for function parameters.                                            |
| INFO\_BUSY                | The database is busy and cannot process the request within a reasonable timeframe. |
| INFO\_MEM                 | Out of memory.                                                                     |
| INFO\_BREAK               | The callback indicated to stop processing.                                         |
| INFO\_NODE\_NAME\_INVALID | Node name is invalid (i.e. does not match \[a-zA-Z0-9-\_.@].                       |
| INFO\_NOT\_IMPL           | Function is not implemented (but might be in the future)                           |
| INFO\_NOT\_SUPP           | Operation is not (and never will be) supported.                                    |

### InfoType <a href="#ga4fab2721054fd66cc89f138fd029fd1f" id="ga4fab2721054fd66cc89f138fd029fd1f"></a>

enum \[InfoType]\(#ga4fab2721054fd66cc89f138fd029fd1f)

Data types.

|               |                |
| ------------- | -------------- |
| Enumerator    |                |
| INFO\_VOID    | void, no value |
| INFO\_INTEGER | int            |
| INFO\_NUMBER  | decimal number |
| INFO\_STRING  | string         |
| INFO\_BINARY  | memory chunk   |

### FunctionDocumentation <a href="#function-documentation" id="function-documentation"></a>

### info\_autocommit() <a href="#ga0801c688741d290aea51941ece9da78c" id="ga0801c688741d290aea51941ece9da78c"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_autocommit

Enable/disable automatic commit for every info\_write\* operation.

**Parameters**

\[in] **handle** database handle obtained from info\_opendb() \[in] **enable** 0 - disable autocommit, any other value enables autocommit

{% hint style="info" %}
Default operation mode is enabled autocommit. This function call is equivalent to info\_setOptions function call with accordingly defined INFO\_OPT\_DISABLE\_AUTOCOMMIT bit.
{% endhint %}

#### Returns

error code

### info\_closedb() <a href="#ga9636f5a41459a3366255bd2fc8ad2b3f" id="ga9636f5a41459a3366255bd2fc8ad2b3f"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) void info\_closedb

Close database and release allocated resources.

**Parameters**

\[in] **handle** database handle obtained from info\_opendb()

{% hint style="info" %}
It is safe to call info\_closedb(NULL);
{% endhint %}

### info\_delete() <a href="#gab0cab9361709296139598c7edda1f1ed" id="gab0cab9361709296139598c7edda1f1ed"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_delete

Delete a node and all of its child nodes from the database.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path. If the key does not exist yet, it is created. Parent nodes are created as required.

#### Returns

error code

### info\_find() <a href="#gaa167931ed0a92796ee478b9ac93347a2" id="gaa167931ed0a92796ee478b9ac93347a2"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) \[InfoNode]\(#ga371205fdb002d88c01543e80d67c188d) info\_find

Find a node within the hierarchy and return its node ID.

This id can be used as starting node for subsequent addressing within the database (similar to the current working directory in a file system).

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path

#### Returns

Node ID (>=0) or error code (<0).

### info\_getOptions() <a href="#ga5a7085e70df8abd29bcaea9e4e3d2c77" id="ga5a7085e70df8abd29bcaea9e4e3d2c77"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) int info\_getOptions

Get current additional options changing behavior of info\_\* functions.

**Parameters**

\[in] **handle** database handle obtained from info\_opendb()

#### Returns

current options. Negative value indicates error.

### info\_getPath() <a href="#ga5147f1308f849af0f18ee2f9dfdadbce" id="ga5147f1308f849af0f18ee2f9dfdadbce"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_getPath

Determine the absolute path of a node.

**Parameters**

\[in] **handle** database handle \[in] **node** parent node for which to determine the path \[out] **path** absolute path of the node as C-string that has been allocated using malloc(). Use free() to release it when not needed any longer. In case of error NULL is returned.

#### Returns

error code

### info\_getType() <a href="#ga507d337f52d3d7acf3691a287d565515" id="ga507d337f52d3d7acf3691a287d565515"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_getType

Determine the type of a value as it has been stored in the database.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path \[out] **type** pointer for storing the type of the value in the database. In case no value was found it is set to INFO\_VOID.

#### Returns

error code

### info\_getVersion() <a href="#ga45afbfe3853490244c17383a667fe0e7" id="ga45afbfe3853490244c17383a667fe0e7"></a>

const [INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) char\\\* info\_getVersion

get version of a library

#### Returns

string with version

### info\_incrementInt() <a href="#ga0b9ac4c2f9a7b257d0610d3d7248a722" id="ga0b9ac4c2f9a7b257d0610d3d7248a722"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_incrementInt

Atomically increment an integer by some delta.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path \[in] **delta** amount by which to increment the value \[out] **value** pointer for resulting value after increment, if NULL no value will be returned.

#### Returns

error code

{% hint style="info" %}
If the value does not exist it is created with a default value of 0, i.e. it will have the value *delta* after incrementing.
{% endhint %}

### info\_list() <a href="#ga54f4b018748882e6c5cdc509177fcee7" id="ga54f4b018748882e6c5cdc509177fcee7"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_list

Obtain a list of the names of all direct child nodes of a node.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path \[in] **list** pointer to list of child names that has been allocated using malloc(). All information is stored in a single block of memory. Use free() to release when done.

#### Returns

error code

{% hint style="info" %}
Names in the result are similar to strcmp but with special handling of contained numbers: These are treated as single character and compared by value, i.e. sorting "z","n2","n10","n1","a" would be listed as "a","n1","n2","n10","z" ("n2" is listed before "n10" since 2<10)
{% endhint %}

### info\_nodeGetType() <a href="#gaf943103c0cb3018c835ee081a35c2629" id="gaf943103c0cb3018c835ee081a35c2629"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_nodeGetType

Determine type of a node.

**Parameters**

\[in] **info** handle provided to callback function \[out] **type** pointer for storing the type of the value in the database. In case no value was found it is set to INFO\_VOID.

#### Returns

error code

### info\_nodeReadBinary() <a href="#ga08fcfd8fe23a1a5457b523a9cf967a10" id="ga08fcfd8fe23a1a5457b523a9cf967a10"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_nodeReadBinary

Read value from the database as chunk of memory.

**Parameters**

\[in] **info** handle provided to callback function \[out] **value** pointer for storing the chunk of memory. The memory has been allocated using malloc(), it has to be released using free() when done. In case no value was found or in case size is 0 then NULL is returned. \[out] **size** size of the returned memory. In case no value was found 0 is returned.

#### Returns

error code

### info\_nodeReadDouble() <a href="#ga24f0af1a2b3ad3989365661e02a4682f" id="ga24f0af1a2b3ad3989365661e02a4682f"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_nodeReadDouble

Read value from the database and convert it to double, if required.

**Parameters**

\[in] **info** handle provided to callback function \[out] **value** pointer for storing the number that has been read from the database. In case no value was found it remains unchanged.

#### Returns

error code

### info\_nodeReadInt() <a href="#ga6d85fe7b4326970a1b00000d029fec78" id="ga6d85fe7b4326970a1b00000d029fec78"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_nodeReadInt

Read value from the database and convert it to int, if required.

**Parameters**

\[in] **info** handle provided to callback function \[out] **value** pointer for storing the number that has been read from the database. In case no value was found it remains unchanged.

#### Returns

error code

### info\_nodeReadString() <a href="#ga9447dc74d3c0b289936bc262ef15f49b" id="ga9447dc74d3c0b289936bc262ef15f49b"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_nodeReadString

Read value from the database and convert it to a string, if required.

**Parameters**

\[in] **info** handle provided to callback function \[out] **value** pointer for storing the string. The string is returned as C-string in memory that has been allocated using malloc(), the returned string has to be released using free() when done. In case no value was found NULL is returned.

#### Returns

error code

### info\_opendb() <a href="#ga4cf176ac250d5f4ac40a717bdf49bad9" id="ga4cf176ac250d5f4ac40a717bdf49bad9"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) \[InfoDB]\(#ga4ddf94c49950552d783161dda5443e0f)\\\* info\_opendb

Open the database.

**Parameters**

\[in] **filename** filename of the database \[in] **mode** read-only or read-write

#### Returns

database handle or `NULL` in case of error

{% hint style="info" %}
If done the database has to be closed using [info\_closedb()](#ga9636f5a41459a3366255bd2fc8ad2b3f)
{% endhint %}

### info\_readBinary() <a href="#ga0924a766bf84c449058a7b4f78bd1a96" id="ga0924a766bf84c449058a7b4f78bd1a96"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_readBinary

Read value from the database as chunk of memory.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path \[out] **value** pointer for storing the chunk of memory. The memory has been allocated using malloc(), it has to be released using free() when done. In case no value was found or in case size is 0 then NULL is returned. \[out] **size** size of the returned memory. In case no value was found 0 is returned.

#### Returns

error code

### info\_readDouble() <a href="#ga8e36e70267096d0de8b8d8e50d1542a6" id="ga8e36e70267096d0de8b8d8e50d1542a6"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_readDouble

Read value from the database and convert it to double, if required.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path \[out] **value** pointer for storing the number that has been read from the database. In case no value was found it remains unchanged.

#### Returns

error code

### info\_readInt() <a href="#ga3b1d6872aab17d7043fc6258caaf4f36" id="ga3b1d6872aab17d7043fc6258caaf4f36"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_readInt

Read value from the database and convert it to int, if required.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path \[out] **value** pointer for storing the number that has been read from the database. In case no value was found it remains unchanged.

#### Returns

error code

### info\_readString() <a href="#ga045b2122ffcea050015ce6de52c106f6" id="ga045b2122ffcea050015ce6de52c106f6"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_readString

Read value from the database and convert it to a string, if required.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path \[out] **value** pointer for storing the string. The string is returned as C-string in memory that has been allocated using malloc(), the returned string has to be released using free() when done. In case no value was found NULL is returned.

#### Returns

error code

### info\_readUnsignedInt() <a href="#gac59bbe74aae83c5888f510c3bc169063" id="gac59bbe74aae83c5888f510c3bc169063"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_readUnsignedInt

Read value from the database and convert it to unsigned int, if required.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path \[out] **value** pointer for storing the number that has been read from the database. In case no value was found it remains unchanged.

#### Returns

error code

### info\_setOptions() <a href="#ga34be6def57c4f44b170128532f78fe2d" id="ga34be6def57c4f44b170128532f78fe2d"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_setOptions

Set additional options changing behavior of info\_\* functions.

**Parameters**

\[in] **handle** database handle obtained from info\_opendb() \[in] **value(s)** specified in enum InfoOption. 0 - default behavior.

#### Returns

error code

### info\_transactionBegin() <a href="#ga816c14a5630ad3e2e0734a52fe285e54" id="ga816c14a5630ad3e2e0734a52fe285e54"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_transactionBegin

Save database state.

**Parameters**

\[in] **handle** database handle obtained from info\_opendb()

### info\_transactionCommit() <a href="#ga3c2f5b212c59c57adbe313812e63b350" id="ga3c2f5b212c59c57adbe313812e63b350"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_transactionCommit

Commit changes.

**Parameters**

\[in] **handle** database handle obtained from info\_opendb()

### info\_transactionRollback() <a href="#ga61db7da4ef43b0e4994dd46d26bd0ebe" id="ga61db7da4ef43b0e4994dd46d26bd0ebe"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_transactionRollback

Rollback changes.

**Parameters**

\[in] **handle** database handle obtained from info\_opendb()

### info\_updateNodeName() <a href="#ga4bd971d1088aed8566212896522ec147" id="ga4bd971d1088aed8566212896522ec147"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_updateNodeName

Update node\_name.

**Parameters**

\[in] **handle** database handle. \[in] **node** node that require change. \[in] **newname** new name of node. \[in] **allow\_overwrite** acts when destination (newname) exists.

#### Returns

error code

### info\_walkTree() <a href="#ga672f3d4caf24ff01c3b6801b13bf4463" id="ga672f3d4caf24ff01c3b6801b13bf4463"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_walkTree

Recursively walk over the nodes of the (sub-) tree and invoke the callback for each node.

**Parameters**

\[in] **handle** database handle; \[in] **parent** parent node of the (sub-) tree \[in] **path** path see sect-path \[in] **cb** callback that will be invoked for node parent/path and all of its descendant nodes. The callback is invoked with the path and a handle to read the type and value stored in that node. \[in] **data** data pointer that is passed on to the callback

#### Returns

error code

### info\_writeBinary() <a href="#ga31c4f4a46c0818f7e64a269b43d5c272" id="ga31c4f4a46c0818f7e64a269b43d5c272"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_writeBinary

Write value from the database as chunk of memory.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path. If the key does not exist yet, it is created. Parent nodes are created as required. \[in] **value** pointer to memory region to be written, may be NULL, in this case an empty value of type INFO\_VOID is written \[in] **size** number of bytes to be written

#### Returns

error code

### info\_writeDouble() <a href="#gadd1c03a124342cb7d889360e2a866c51" id="gadd1c03a124342cb7d889360e2a866c51"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_writeDouble

Write double value to the database.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path. If the key does not exist yet, it is created. Parent nodes are created as required. \[in] **value** double value to be written.

#### Returns

error code

### info\_writeInt() <a href="#gaa569328ef9e8c2da03429b5c270101c5" id="gaa569328ef9e8c2da03429b5c270101c5"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_writeInt

Write int value to the database.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path. If the key does not exist yet, it is created. Parent nodes are created as required. \[in] **value** int value to be written.

#### Returns

error code

### info\_writeString() <a href="#gaa820eb834650ba97b27d9cc4d558fb8d" id="gaa820eb834650ba97b27d9cc4d558fb8d"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_writeString

Write string value to the database.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path. If the key does not exist yet, it is created. Parent nodes are created as required. \[in] **value** C-string to be written, may be NULL, in this case an empty value of type INFO\_VOID is written

#### Returns

error code

### info\_writeUnsignedInt() <a href="#ga4347be8fa85445d67ef163ef3bdc6acd" id="ga4347be8fa85445d67ef163ef3bdc6acd"></a>

[INF\_API](/adk-5.0-programmers-guide/readme/modules/group__propdb/infodb_8h.md#aeb6fcbde9f085c588eb4b161b86b6175) enum \[InfoResult]\(#ga1f20dc2829c95bd71bdb14239bc3b2c8) info\_writeUnsignedInt

Write unsigned int value to the database.

**Parameters**

\[in] **handle** database handle \[in] **parent** parent node used as starting point for the path. Use INFO\_ROOT to address relative to the root of the tree. \[in] **path** path see sect-path. If the key does not exist yet, it is created. Parent nodes are created as required. \[in] **value** unsigned int value to be written.

#### Returns

error code


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/readme/modules/group__propdb.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
