Snapdragon® Telematics Application Framework (TelAF) Interface Specification
|
#include "legato.h"
Go to the source code of this file.
Macros | |
#define | IFGEN_LE_CFG_PROTOCOL_ID "4db45ee4887ce0305738f97e9c15d721" |
#define | IFGEN_LE_CFG_MSG_SIZE 9239 |
#define | LE_CFG_STR_LEN 511 |
#define | LE_CFG_STR_LEN_BYTES 512 |
#define | LE_CFG_BINARY_LEN 8704 |
#define | LE_CFG_NAME_LEN 255 |
#define | LE_CFG_NAME_LEN_BYTES 256 |
Typedefs | |
typedef struct le_cfg_Iterator * | le_cfg_IteratorRef_t |
typedef struct le_cfg_ChangeHandler * | le_cfg_ChangeHandlerRef_t |
typedef void(* | le_cfg_ChangeHandlerFunc_t) (void *contextPtr) |
Enumerations | |
enum | le_cfg_nodeType_t { LE_CFG_TYPE_EMPTY = 0, LE_CFG_TYPE_STRING = 1, LE_CFG_TYPE_BOOL = 2, LE_CFG_TYPE_INT = 3, LE_CFG_TYPE_FLOAT = 4, LE_CFG_TYPE_STEM = 5, LE_CFG_TYPE_DOESNT_EXIST = 6 } |
#define IFGEN_LE_CFG_PROTOCOL_ID "4db45ee4887ce0305738f97e9c15d721" |
#define IFGEN_LE_CFG_MSG_SIZE 9239 |
#define LE_CFG_STR_LEN 511 |
Length of the strings used by this API.
#define LE_CFG_STR_LEN_BYTES 512 |
Length of the strings used by this API, including the trailing NULL.
#define LE_CFG_BINARY_LEN 8704 |
Length of the binary data used by this API.
#define LE_CFG_NAME_LEN 255 |
Allowed length of a node name.
#define LE_CFG_NAME_LEN_BYTES 256 |
The node name length, including a trailing NULL.
typedef struct le_cfg_Iterator* le_cfg_IteratorRef_t |
Reference to a tree iterator object.
typedef struct le_cfg_ChangeHandler* le_cfg_ChangeHandlerRef_t |
Reference type used by Add/Remove functions for EVENT 'le_cfg_Change'
typedef void(* le_cfg_ChangeHandlerFunc_t) (void *contextPtr) |
Handler for node change notifications.
enum le_cfg_nodeType_t |
Identifies the data type of node.
LE_SHARED bool ifgen_le_cfg_HasLocalBinding | ( | void | ) |
Get if this client bound locally.
LE_SHARED void ifgen_le_cfg_InitCommonData | ( | void | ) |
Init data that is common across all threads
LE_SHARED void ifgen_le_cfg_CleanupCommonData | ( | le_msg_SessionRef_t | _ifgen_sessionRef | ) |
Cleanup the data of a session
LE_SHARED le_result_t ifgen_le_cfg_OpenSession | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
bool | isBlocking | ||
) |
Perform common initialization and open a session
LE_SHARED le_cfg_IteratorRef_t ifgen_le_cfg_CreateReadTxn | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | basePath | ||
) |
Create a read transaction and open a new iterator for traversing the config tree.
This action creates a read lock on the given tree, which will start a read-timeout. Once the read timeout expires, all active read iterators on that tree will be expired and their clients will be killed.
[in] | basePath | Path to the location to create the new iterator. |
LE_SHARED le_cfg_IteratorRef_t ifgen_le_cfg_CreateWriteTxn | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | basePath | ||
) |
Create a write transaction and open a new iterator for both reading and writing.
This action creates a write transaction. If the app holds the iterator for longer than the configured write transaction timeout, the iterator will cancel the transaction. Other reads will fail to return data, and all writes will be thrown away.
[in] | basePath | Path to the location to create the new iterator. |
LE_SHARED void ifgen_le_cfg_CommitTxn | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef | ||
) |
Closes the write iterator and commits the write transaction. This updates the config tree with all of the writes that occurred within the iterator.
[in] | iteratorRef | Iterator object to commit. |
LE_SHARED void ifgen_le_cfg_CancelTxn | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef | ||
) |
Closes and frees the given iterator object. If the iterator is a write iterator, the transaction will be canceled. If the iterator is a read iterator, the transaction will be closed. No data is written to the tree
[in] | iteratorRef | Iterator object to close. |
LE_SHARED void ifgen_le_cfg_GoToNode | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | newPath | ||
) |
Changes the location of iterator. The path passed can be an absolute or a relative path from the iterators current location.
The target node does not need to exist. Writing a value to a non-existent node will automatically create that node and any ancestor nodes (parent, parent's parent, etc.) that also don't exist.
[in] | iteratorRef | Iterator to move. |
[in] | newPath | Absolute or relative path from the current location. |
LE_SHARED le_result_t ifgen_le_cfg_GoToParent | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef | ||
) |
Move the iterator to the parent of the current node (moves up the tree).
- LE_OK - Commit was completed successfully. - LE_NOT_FOUND - Current node is the root node: has no parent.
[in] | iteratorRef | Iterator to move. |
LE_SHARED le_result_t ifgen_le_cfg_GoToFirstChild | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef | ||
) |
Moves the iterator to the the first child of the node from the current location.
For read iterators without children, this function will fail. If the iterator is a write iterator, then a new node is automatically created. If this node or newly created children of this node are not written to, then this node will not persist even if the iterator is committed.
- LE_OK - Move was completed successfully. - LE_NOT_FOUND - The given node has no children.
[in] | iteratorRef | Iterator object to move. |
LE_SHARED le_result_t ifgen_le_cfg_GoToNextSibling | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef | ||
) |
Jumps the iterator to the next child node of the current node. Assuming the following tree:
If the iterator is moved to the path, "/baseNode/childA/valueA". After the first GoToNextSibling the iterator will be pointing at valueB. A second call to GoToNextSibling will cause the function to return LE_NOT_FOUND.
- LE_OK - Commit was completed successfully. - LE_NOT_FOUND - Iterator has reached the end of the current list of siblings. Also returned if the the current node has no siblings.
[in] | iteratorRef | Iterator to iterate. |
LE_SHARED le_result_t ifgen_le_cfg_GetPath | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
char * | pathBuffer, | ||
size_t | pathBufferSize | ||
) |
Get path to the node where the iterator is currently pointed.
Assuming the following tree:
If the iterator was currently pointing at valueA, GetPath would return the following path:
Optionally, a path to another node can be supplied to this function. So, if the iterator is again on valueA and the relative path ".." is supplied then this function will return the the path relative to the node given:
[in] | iteratorRef | Iterator to move. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[out] | pathBuffer | Absolute path to the iterator's current node. |
[in] | pathBufferSize |
LE_SHARED le_cfg_nodeType_t ifgen_le_cfg_GetNodeType | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path | ||
) |
Get the data type of node where the iterator is currently pointing.
[in] | iteratorRef | Iterator object to use to read from the tree. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
LE_SHARED le_result_t ifgen_le_cfg_GetNodeName | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
char * | name, | ||
size_t | nameSize | ||
) |
Get the name of the node where the iterator is currently pointing.
[in] | iteratorRef | Iterator object to use to read from the tree. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[out] | name | Read the name of the node object. |
[in] | nameSize |
LE_SHARED le_cfg_ChangeHandlerRef_t ifgen_le_cfg_AddChangeHandler | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | newPath, | ||
le_cfg_ChangeHandlerFunc_t | handlerPtr, | ||
void * | contextPtr | ||
) |
Add handler function for EVENT 'le_cfg_Change'
This event provides information on changes to the given node object, or any of it's children, where a change could be either a read, write, create or delete operation.
[in] | newPath | Path to the object to watch. |
[in] | handlerPtr | Handler to receive change notification |
[in] | contextPtr |
LE_SHARED void ifgen_le_cfg_RemoveChangeHandler | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_ChangeHandlerRef_t | handlerRef | ||
) |
Remove handler function for EVENT 'le_cfg_Change'
[in] | handlerRef |
LE_SHARED void ifgen_le_cfg_DeleteNode | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path | ||
) |
Deletes the node specified by the path. If the node doesn't exist, nothing happens. All child nodes are also deleted.
If the path is empty, the iterator's current node is deleted.
This function is only valid during a write transaction.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
LE_SHARED bool ifgen_le_cfg_IsEmpty | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path | ||
) |
Check if the given node is empty. A node is also considered empty if it doesn't yet exist. A node is also considered empty if it has no value or is a stem with no children.
If the path is empty, the iterator's current node is queried for emptiness.
Valid for both read and write transactions.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
LE_SHARED void ifgen_le_cfg_SetEmpty | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path | ||
) |
Clears out the node's value. If the node doesn't exist it will be created, and have no value.
If the path is empty, the iterator's current node will be cleared. If the node is a stem then all children will be removed from the tree.
Only valid during a write transaction.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
LE_SHARED bool ifgen_le_cfg_NodeExists | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path | ||
) |
Checks to see if a given node in the config tree exists.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
LE_SHARED le_result_t ifgen_le_cfg_GetString | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
char * | value, | ||
size_t | valueSize, | ||
const char *LE_NONNULL | defaultValue | ||
) |
Reads a string value from the config tree. If the value isn't a string, or if the node is empty or doesn't exist, the default value will be returned.
Valid for both read and write transactions.
If the path is empty, the iterator's current node will be read.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[out] | value | Buffer to write the value into. |
[in] | valueSize | |
[in] | defaultValue | Default value to use if the original can't be read. |
LE_SHARED void ifgen_le_cfg_SetString | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
const char *LE_NONNULL | value | ||
) |
Writes a string value to the config tree. Only valid during a write transaction.
If the path is empty, the iterator's current node will be set.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[in] | value | Value to write. |
LE_SHARED le_result_t ifgen_le_cfg_GetBinary | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
uint8_t * | valuePtr, | ||
size_t * | valueSizePtr, | ||
const uint8_t * | defaultValuePtr, | ||
size_t | defaultValueSize | ||
) |
Read a binary data from the config tree. If the the node has a wrong type, is empty or doesn't exist, the default value will be returned.
Valid for both read and write transactions.
If the path is empty, the iterator's current node will be read.
Responds With:
This function will respond with one of the following values:
- LE_OK - Read was completed successfully. - LE_FORMAT_ERROR - if data can't be decoded. - LE_OVERFLOW - Supplied buffer was not large enough to hold the value.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[out] | valuePtr | Buffer to write the value into. |
[in,out] | valueSizePtr | |
[in] | defaultValuePtr | Default value to use if the original can't be read. |
[in] | defaultValueSize |
LE_SHARED void ifgen_le_cfg_SetBinary | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
const uint8_t * | valuePtr, | ||
size_t | valueSize | ||
) |
Write a binary data to the config tree. Only valid during a write transaction.
If the path is empty, the iterator's current node will be set.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[in] | valuePtr | Value to write. |
[in] | valueSize |
LE_SHARED int32_t ifgen_le_cfg_GetInt | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
int32_t | defaultValue | ||
) |
Reads a signed integer value from the config tree.
If the underlying value is not an integer, the default value will be returned instead. The default value is also returned if the node does not exist or if it's empty.
If the value is a floating point value, then it will be rounded and returned as an integer.
Valid for both read and write transactions.
If the path is empty, the iterator's current node will be read.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[in] | defaultValue | Default value to use if the original can't be read. |
LE_SHARED void ifgen_le_cfg_SetInt | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
int32_t | value | ||
) |
Writes a signed integer value to the config tree. Only valid during a write transaction.
If the path is empty, the iterator's current node will be set.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[in] | value | Value to write. |
LE_SHARED double ifgen_le_cfg_GetFloat | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
double | defaultValue | ||
) |
Reads a 64-bit floating point value from the config tree.
If the value is an integer then the value will be promoted to a float. Otherwise, if the underlying value is not a float or integer, the default value will be returned.
If the path is empty, the iterator's current node will be read.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[in] | defaultValue | Default value to use if the original can't be read. |
LE_SHARED void ifgen_le_cfg_SetFloat | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
double | value | ||
) |
Writes a 64-bit floating point value to the config tree. Only valid during a write transaction.
If the path is empty, the iterator's current node will be set.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[in] | value | Value to write. |
LE_SHARED bool ifgen_le_cfg_GetBool | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
bool | defaultValue | ||
) |
Reads a value from the tree as a boolean. If the node is empty or doesn't exist, the default value is returned. Default value is also returned if the node is a different type than expected.
Valid for both read and write transactions.
If the path is empty, the iterator's current node will be read.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[in] | defaultValue | Default value to use if the original can't be read. |
LE_SHARED void ifgen_le_cfg_SetBool | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
le_cfg_IteratorRef_t | iteratorRef, | ||
const char *LE_NONNULL | path, | ||
bool | value | ||
) |
Writes a boolean value to the config tree. Only valid during a write transaction.
If the path is empty, the iterator's current node will be set.
[in] | iteratorRef | Iterator to use as a basis for the transaction. |
[in] | path | Path to the target node. Can be an absolute path, or a path relative from the iterator's current position. |
[in] | value | Value to write. |
LE_SHARED void ifgen_le_cfg_QuickDeleteNode | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path | ||
) |
Deletes the node specified by the path. If the node doesn't exist, nothing happens. All child nodes are also deleted.
[in] | path | Path to the node to delete. |
LE_SHARED void ifgen_le_cfg_QuickSetEmpty | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path | ||
) |
Clears the current value of a node. If the node doesn't currently exist then it is created as a new empty node.
[in] | path | Absolute or relative path to read from. |
LE_SHARED le_result_t ifgen_le_cfg_QuickGetString | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path, | ||
char * | value, | ||
size_t | valueSize, | ||
const char *LE_NONNULL | defaultValue | ||
) |
Reads a string value from the config tree. If the value isn't a string, or if the node is empty or doesn't exist, the default value will be returned.
[in] | path | Path to read from. |
[out] | value | Value read from the requested node. |
[in] | valueSize | |
[in] | defaultValue | Default value to use if the original can't be read. |
LE_SHARED void ifgen_le_cfg_QuickSetString | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path, | ||
const char *LE_NONNULL | value | ||
) |
Writes a string value to the config tree.
[in] | path | Path to the value to write. |
[in] | value | Value to write. |
LE_SHARED le_result_t ifgen_le_cfg_QuickGetBinary | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path, | ||
uint8_t * | valuePtr, | ||
size_t * | valueSizePtr, | ||
const uint8_t * | defaultValuePtr, | ||
size_t | defaultValueSize | ||
) |
Reads a binary data from the config tree. If the node type is different, or if the node is empty or doesn't exist, the default value will be returned.
[in] | path | Path to the target node. |
[out] | valuePtr | Buffer to write the value into. |
[in,out] | valueSizePtr | |
[in] | defaultValuePtr | Default value to use if the original can't be read. |
[in] | defaultValueSize |
LE_SHARED void ifgen_le_cfg_QuickSetBinary | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path, | ||
const uint8_t * | valuePtr, | ||
size_t | valueSize | ||
) |
Writes a binary data to the config tree.
[in] | path | Path to the target node. |
[in] | valuePtr | Value to write. |
[in] | valueSize |
LE_SHARED int32_t ifgen_le_cfg_QuickGetInt | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path, | ||
int32_t | defaultValue | ||
) |
Reads a signed integer value from the config tree. If the value is a floating point value, then it will be rounded and returned as an integer. Otherwise If the underlying value is not an integer or a float, the default value will be returned instead.
If the value is empty or the node doesn't exist, the default value is returned instead.
[in] | path | Path to the value to write. |
[in] | defaultValue | Default value to use if the original can't be read. |
LE_SHARED void ifgen_le_cfg_QuickSetInt | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path, | ||
int32_t | value | ||
) |
Writes a signed integer value to the config tree.
[in] | path | Path to the value to write. |
[in] | value | Value to write. |
LE_SHARED double ifgen_le_cfg_QuickGetFloat | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path, | ||
double | defaultValue | ||
) |
Reads a 64-bit floating point value from the config tree. If the value is an integer, then it is promoted to a float. Otherwise, if the underlying value is not a float, or an integer the default value will be returned.
If the value is empty or the node doesn't exist, the default value is returned.
[in] | path | Path to the value to write. |
[in] | defaultValue | Default value to use if the original can't be read. |
LE_SHARED void ifgen_le_cfg_QuickSetFloat | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path, | ||
double | value | ||
) |
Writes a 64-bit floating point value to the config tree.
[in] | path | Path to the value to write. |
[in] | value | Value to write. |
LE_SHARED bool ifgen_le_cfg_QuickGetBool | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path, | ||
bool | defaultValue | ||
) |
Reads a value from the tree as a boolean. If the node is empty or doesn't exist, the default value is returned. This is also true if the node is a different type than expected.
If the value is empty or the node doesn't exist, the default value is returned instead.
[in] | path | Path to the value to write. |
[in] | defaultValue | Default value to use if the original can't be read. |
LE_SHARED void ifgen_le_cfg_QuickSetBool | ( | le_msg_SessionRef_t | _ifgen_sessionRef, |
const char *LE_NONNULL | path, | ||
bool | value | ||
) |
Writes a boolean value to the config tree.
[in] | path | Path to the value to write. |
[in] | value | Value to write. |