|
Unify Framework Lib 1.7.0
|
Public functions from the attribute store. It allows other components to manipulate the Attribute Store tree. and register callbacks for Attribute Store updates. More...
Modules | |
| Attribute Store Configuration | |
| Allows to configure how the attribute store behaves. | |
| Attribute Store Type registration | |
| Type registration to the Attribute Store. | |
| Internal configuration functions | |
| Internal functions for the attribute store configuration. | |
Classes | |
| struct | attribute_changed_event |
| structure that contains information about the current state of a given node in the attribute store. More... | |
Macros | |
| #define | ATTRIBUTE_STORE_MAXIMUM_VALUE_LENGTH DATASTORE_ATTRIBUTE_VALUE_SIZE |
| Maximum length for a value associated to an attribute. More... | |
| #define | ATTRIBUTE_STORE_INVALID_NODE (attribute_store_node_t)0 |
| Special attribute_store_node_t value indicating that it does not exist. More... | |
Typedefs | |
| typedef datastore_attribute_id_t | attribute_store_node_t |
| Handle to identify attribute store nodes. More... | |
| typedef void(* | attribute_store_node_changed_callback_t) (attribute_store_node_t, attribute_store_change_t) |
| Attribute store callback type for tree node updates. More... | |
| typedef void(* | attribute_store_node_touch_callback_t) (attribute_store_node_t) |
| Attribute store callback type for "touch" events. More... | |
| typedef void(* | attribute_store_node_delete_callback_t) (attribute_store_node_t) |
| Attribute store callback type for deletion events. More... | |
| typedef struct attribute_changed_event | attribute_changed_event_t |
| structure that contains information about the current state of a given node in the attribute store. More... | |
| typedef void(* | attribute_store_node_update_callback_t) (attribute_changed_event_t *event_data) |
| Attribute store callback type for tree node updates. More... | |
Enumerations | |
| enum | attribute_store_change_t { ATTRIBUTE_CREATED , ATTRIBUTE_UPDATED , ATTRIBUTE_DELETED } |
| Attribute Store type to indicate the modification type that triggered a callback. More... | |
| enum | attribute_store_node_value_state_t { REPORTED_ATTRIBUTE , DESIRED_ATTRIBUTE , DESIRED_OR_REPORTED_ATTRIBUTE } |
| This is the value state of a value. More... | |
Public functions from the attribute store. It allows other components to manipulate the Attribute Store tree. and register callbacks for Attribute Store updates.
| #define ATTRIBUTE_STORE_INVALID_NODE (attribute_store_node_t)0 |
Special attribute_store_node_t value indicating that it does not exist.
| #define ATTRIBUTE_STORE_MAXIMUM_VALUE_LENGTH DATASTORE_ATTRIBUTE_VALUE_SIZE |
Maximum length for a value associated to an attribute.
| typedef struct attribute_changed_event attribute_changed_event_t |
structure that contains information about the current state of a given node in the attribute store.
| typedef void(* attribute_store_node_changed_callback_t) (attribute_store_node_t, attribute_store_change_t) |
Attribute store callback type for tree node updates.
| typedef void(* attribute_store_node_delete_callback_t) (attribute_store_node_t) |
Attribute store callback type for deletion events.
Handle to identify attribute store nodes.
| typedef void(* attribute_store_node_touch_callback_t) (attribute_store_node_t) |
Attribute store callback type for "touch" events.
| typedef void(* attribute_store_node_update_callback_t) (attribute_changed_event_t *event_data) |
Attribute store callback type for tree node updates.
This is the value state of a value.
| attribute_store_node_t attribute_store_add_node | ( | attribute_store_type_t | type, |
| attribute_store_node_t | parent_node | ||
| ) |
Add a new node in the current attribute store.
| type | The type to assign to the new node. MUST be different than ATTRIBUTE_STORE_INVALID_ATTRIBUTE_TYPE |
| parent_node | Parent node for the node to add. |
| sl_status_t attribute_store_delete_node | ( | attribute_store_node_t | node | ) |
Delete a node and all its children from the attribute store.
| node | The identifier of the node to delete. |
|
inlinestatic |
| attribute_store_node_t attribute_store_get_first_parent_with_type | ( | attribute_store_node_t | node, |
| attribute_store_type_t | parent_type | ||
| ) |
Traverse up the tree from a node and finds the first parent with a given type.
| node | The Attribute Store node for which the parents will be searched for the given type |
| parent_type | The type of the parent that we search |
| sl_status_t attribute_store_get_node_attribute_value | ( | attribute_store_node_t | node, |
| attribute_store_node_value_state_t | value_state, | ||
| uint8_t * | value, | ||
| uint8_t * | value_size | ||
| ) |
Get the attribute value of a node.
| node | The node handle of the node for which attribute value is to be retrieved |
| value_state | The attribute_store_node_value_state_t value state to retrieve from the node. (Desired or Reported) |
| value | A uint8_t pointer to an array for which the value/value state will be written to. This array should be able to contain 255 bytes. |
| value_size | Pointer to an uint8_t variable where the size of the value/payload written to the value pointer will be written. |
| attribute_store_node_t attribute_store_get_node_child | ( | attribute_store_node_t | node, |
| uint32_t | child_index | ||
| ) |
Get the node handle of a child of a node.
| node | The tree handle of the node for which the child handle will be returned |
| child_index | Value to indicate which child to find. 0 will match the first child, 1 the second child, etc. |
| attribute_store_node_t attribute_store_get_node_child_by_type | ( | attribute_store_node_t | node, |
| attribute_store_type_t | child_type, | ||
| uint32_t | child_index | ||
| ) |
Get the node handle of a child of a node with a certain type.
| node | The node handle of the node for which the child identifier will be written |
| child_type | The attribute store type of the child. |
| child_index | Value to indicate which child to find. 0 will match the first child (with that type), 1 the second child (with that type), etc. |
| attribute_store_node_t attribute_store_get_node_child_by_value | ( | attribute_store_node_t | node, |
| attribute_store_type_t | child_type, | ||
| attribute_store_node_value_state_t | value_state, | ||
| const uint8_t * | value, | ||
| uint8_t | value_size, | ||
| uint32_t | child_index | ||
| ) |
Get the node handle of a child of a node with a certain type and value.
| node | The node handle of the node for which the child identifier will be written |
| child_type | The attribute type of the child. |
| value_state | The attribute_store_node_value_state_t value state to compare for the child. (Desired or Reported) |
| value | A uint8_t pointer to an array for which the value/value state will be compared. |
| value_size | The number of bytes to compare from the value pointer. |
| child_index | Value to indicate which child to find. 0 will match the first child (with that type and value), 1 the second child (with that type and value), etc. |
| size_t attribute_store_get_node_child_count | ( | attribute_store_node_t | node | ) |
Get the number of children of the given node.
| node | The tree handle of the node for which the child handle will be returned |
| size_t attribute_store_get_node_child_count_by_type | ( | attribute_store_node_t | node, |
| attribute_store_type_t | child_type | ||
| ) |
Get the number of children of a certain type for a node.
| node | The tree handle of the node for which the child with a type will be returned |
| child_type | The attribute type of the children. |
| attribute_store_node_t attribute_store_get_node_parent | ( | attribute_store_node_t | node | ) |
Get the node handle of the parent of a node.
| node | The tree handle of the node for which the parent identifier will be returned |
| size_t attribute_store_get_node_total_child_count | ( | attribute_store_node_t | node | ) |
Get the number of total children of the given node.
| node | The tree handle of the node for which the child handle will be returned |
| attribute_store_type_t attribute_store_get_node_type | ( | attribute_store_node_t | node | ) |
Get the type of a node.
| node | The node handle of the node for which the type is to be returned |
| uint8_t attribute_store_get_node_value_size | ( | attribute_store_node_t | node, |
| attribute_store_node_value_state_t | value_state | ||
| ) |
Checks the size of the REPORTED or DESIRED value for a node.
| node | The identifier of the node to check one of its value sizes |
| value_state | The attribute_store_node_value_state_t value state to check. (Desired or Reported) |
| attribute_store_node_t attribute_store_get_root | ( | ) |
Retrieve the root node of the tree.
| bool attribute_store_is_node_a_child | ( | attribute_store_node_t | node, |
| attribute_store_node_t | possible_parent | ||
| ) |
Verify whether a node is a child of another node.
| node | The identifier of the node to verify if it is a child of the possible parent node. |
| possible_parent | The identifier of the node to verify if it is a parent of the node |
| void attribute_store_log | ( | void | ) |
Log the content of the Attribute Store tree using Unify Logging system.
| void attribute_store_log_node | ( | attribute_store_node_t | node, |
| bool | log_children | ||
| ) |
Log the content of the Attribute Store tree using Unify Logging system from a given node.
| node | The node handle of the node for which the tree will be printed out. |
| log_children | bool value indicating if children should be printed out as well. |
| bool attribute_store_node_exists | ( | attribute_store_node_t | node | ) |
Verify whether a node is in the Attribute Store.
| node | The identifier of the node to verify if it is present in the Attribute Store |
| sl_status_t attribute_store_refresh_node_and_children_callbacks | ( | attribute_store_node_t | node | ) |
Invoking update of callbacks for the given node and all children nodes.
WARNING: Callbacks registered by DESIRED_ATTRIBUTE or DESIRED_OR_REPORTED_ATTRIBUTE will not be invoked.
| node | The identifier of the node to update and all its children |
| sl_status_t attribute_store_register_callback | ( | attribute_store_node_update_callback_t | callback_function | ) |
Register a callback function to any node change.
WARNING: Do not use this function, unless you are a component that really wants to know about almost all updates in the attribute store. See attribute_store_register_callback_by_type and attribute_store_register_callback_by_type_and_state
| callback_function | The function to invoke when the node's value is updated. |
| sl_status_t attribute_store_register_callback_by_type | ( | attribute_store_node_changed_callback_t | callback_function, |
| attribute_store_type_t | type | ||
| ) |
Register a callback function to any node with a given type.
| callback_function | The function to invoke when the node's value is updated. |
| type | The attribute node type for which a callback will be registered. |
| sl_status_t attribute_store_register_callback_by_type_and_state | ( | attribute_store_node_changed_callback_t | callback_function, |
| attribute_store_type_t | type, | ||
| attribute_store_node_value_state_t | value_state | ||
| ) |
Register a callback function to any node with a given type for a given value_state update.
| callback_function | The function to invoke when the node's value is updated. |
| type | The attribute node type for which a callback will be registered. |
| value_state | The value-state that will trigger a callback when it's modified. |
| sl_status_t attribute_store_register_delete_callback | ( | attribute_store_node_delete_callback_t | callback_function | ) |
Register a callback function that will be called when an attribute is deleted.
| callback_function | The function to invoke when a node is deleted |
| sl_status_t attribute_store_register_touch_notification_callback | ( | attribute_store_node_touch_callback_t | callback_function | ) |
Register a callback function that will be called on touch events.
NOTE: Use this function only if necessary, as it may trigger a lot of touched callbacks
| callback_function | The function to invoke when a node desired or reported value is touched. |
| sl_status_t attribute_store_set_node_attribute_value | ( | attribute_store_node_t | node, |
| attribute_store_node_value_state_t | value_state, | ||
| const uint8_t * | value, | ||
| uint8_t | value_size | ||
| ) |
Set the attribute value of a node in the current attribute store tree.
| node | The node handle for which the value must be updated. |
| value_state | The attribute_store_node_value_state_t value state to write for the node. (Desired or Reported) |
| value | A uint8_t pointer to an array containing the data to be written for the node. This array may contain up to 255 bytes. |
| value_size | The number of bytes to read from the value pointer. |