#include <m2mobjectinstance.h>
Public Member Functions | |
M2MResource * | create_static_resource (const lwm2m_parameters_s *static_res, M2MResourceInstance::ResourceType type) |
TODO! More... | |
M2MResource * | create_static_resource (const String &resource_name, const String &resource_type, M2MResourceInstance::ResourceType type, const uint8_t *value, const uint8_t value_length, bool multiple_instance=false, bool external_blockwise_store=false) |
Creates a static resource for a given mbed Client Inteface object. With this, the client can respond to server's GET methods with the provided value. More... | |
M2MResource * | create_dynamic_resource (const String &resource_name, const String &resource_type, M2MResourceInstance::ResourceType type, bool observable, bool multiple_instance=false, bool external_blockwise_store=false) |
Creates a dynamic resource for a given mbed Client Inteface object. With this, the client can respond to different queries from the server (GET,PUT etc). This type of resource is also observable and carries callbacks. More... | |
M2MResource * | create_dynamic_resource (const uint16_t resource_name, const char *resource_type, M2MResourceInstance::ResourceType type, bool observable, bool multiple_instance=false, bool external_blockwise_store=false) |
Creates a dynamic resource for a given mbed Client Inteface object. With this, the client can respond to different queries from the server (GET,PUT etc). This type of resource is also observable and carries callbacks. More... | |
M2MResource * | create_dynamic_resource (const lwm2m_parameters_s *static_res, M2MResourceInstance::ResourceType type, bool observable) |
TODO! More... | |
M2MResourceInstance * | create_static_resource_instance (const String &resource_name, const String &resource_type, M2MResourceInstance::ResourceType type, const uint8_t *value, const uint8_t value_length, uint16_t instance_id, bool external_blockwise_store=false) |
Creates a static resource instance for a given mbed Client Inteface object. With this, the client can respond to server's GET methods with the provided value. More... | |
M2MResourceInstance * | create_dynamic_resource_instance (const String &resource_name, const String &resource_type, M2MResourceInstance::ResourceType type, bool observable, uint16_t instance_id, bool external_blockwise_store=false) |
Creates a dynamic resource instance for a given mbed Client Inteface object. With this, the client can respond to different queries from the server (GET,PUT etc). This type of resource is also observable and carries callbacks. More... | |
bool | remove_resource (const String &name) |
Removes the resource with the given name. More... | |
bool | remove_resource (const char *name) |
Removes the resource with the given name. More... | |
bool | remove_resource_instance (const String &resource_name, uint16_t instance_id) |
Removes the resource instance with the given name. More... | |
M2MResource * | resource (const uint16_t resource_id) const |
Returns the resource with the given name. More... | |
M2MResource * | resource (const String &name) const |
M2MResource * | resource (const char *resource) const |
const M2MResourceList & | resources () const |
Returns a list of M2MResourceBase objects. More... | |
uint16_t | resource_count () const |
Returns the total number of resources with the object. More... | |
uint16_t | resource_count (const String &resource) const |
Returns the total number of single resource instances. Note: this will be removed in next version, please use the resource_count(const char*) version instead. More... | |
uint16_t | resource_count (const char *resource) const |
Returns the total number of single resource instances. More... | |
virtual void | add_observation_level (M2MBase::Observation observation_level) |
Adds the observation level for the object. More... | |
virtual void | remove_observation_level (M2MBase::Observation observation_level) |
Removes the observation level from the object. More... | |
virtual M2MObservationHandler * | observation_handler () const |
Returns the Observation Handler object. More... | |
virtual void | set_observation_handler (M2MObservationHandler *handler) |
Sets the observation handler. More... | |
virtual sn_coap_hdr_s * | handle_get_request (nsdl_s *nsdl, sn_coap_hdr_s *received_coap_header, M2MObservationHandler *observation_handler=NULL) |
Handles GET request for the registered objects. More... | |
virtual sn_coap_hdr_s * | handle_put_request (nsdl_s *nsdl, sn_coap_hdr_s *received_coap_header, M2MObservationHandler *observation_handler, bool &execute_value_updated) |
Handles PUT request for the registered objects. More... | |
virtual sn_coap_hdr_s * | handle_post_request (nsdl_s *nsdl, sn_coap_hdr_s *received_coap_header, M2MObservationHandler *observation_handler, bool &execute_value_updated, sn_nsdl_addr_s *address=NULL) |
Handles POST request for the registered objects. More... | |
M2MObject & | get_parent_object () const |
void | notification_update (M2MBase::Observation observation_level) |
Public Member Functions inherited from M2MBase | |
virtual | ~M2MBase () |
Destructor. | |
void | set_operation (M2MBase::Operation operation) |
Sets the operation type for an object. More... | |
void | set_interface_description (const String &description) |
Sets the interface description of the object. More... | |
void | set_interface_description (const char *description) |
Sets the interface description of the object. More... | |
const char * | interface_description () const |
Returns the interface description of the object. More... | |
virtual void | set_resource_type (const String &resource_type) |
Sets the resource type of the object. More... | |
virtual void | set_resource_type (const char *resource_type) |
Sets the resource type of the object. More... | |
const char * | resource_type () const |
Returns the resource type of the object. More... | |
void | set_coap_content_type (const uint16_t content_type) |
Sets the CoAP content type of the object. More... | |
void | set_observable (bool observable) |
Sets the observable mode for the object. More... | |
void | set_auto_observable (bool auto_observable) |
Sets the object to be auto-observable. More... | |
void | set_confirmable (bool confirmable) |
Sets how the notification is sent. By default confirmable CoAP message type is used. More... | |
void | set_under_observation (bool observed, M2MObservationHandler *handler) |
Sets the object under observation. More... | |
void | set_instance_id (const uint16_t instance_id) |
Sets the instance ID of the object. More... | |
void | set_max_age (const uint32_t max_age) |
Sets the max age for the resource value to be cached. More... | |
M2MBase::BaseType | base_type () const |
Returns the object type. More... | |
M2MBase::Operation | operation () const |
Returns the operation type of the object. More... | |
const char * | name () const |
Returns the object name. More... | |
int32_t | name_id () const |
Returns the object name in integer. More... | |
uint16_t | instance_id () const |
Returns the object's instance ID. More... | |
const char * | uri_path () const |
Returns the path of the object. More... | |
uint16_t | coap_content_type () const |
Returns the CoAP content type of the object. More... | |
bool | is_readable () const |
Returns get operation allow state. More... | |
bool | is_auto_observable () const |
Returns the auto observation status of the object. More... | |
M2MBase::Observation | observation_level () const |
Returns the observation level of the object. More... | |
Mode | mode () const |
Returns the mode of the resource. More... | |
uint16_t | observation_number () const |
Returns the observation number. More... | |
uint32_t | max_age () const |
Returns the max age for the resource value to be cached. More... | |
void | send_message_delivery_status (const M2MBase &object, const MessageDeliveryStatus status, const MessageType type) |
Executes the function that is set in "set_message_delivery_status_cb". | |
void | set_register_uri (bool register_uri) |
Sets whether this resource is published to server or not. More... | |
bool | register_uri () |
Returns whether this resource is published to server or not. More... | |
bool | is_under_observation () const |
Returns whether this resource is under observation or not. More... | |
bool | set_value_updated_function (value_updated_callback callback) |
Sets the function that is executed when this object receives a PUT or POST command. More... | |
bool | set_value_updated_function (value_updated_callback2 callback) |
Sets the function that is executed when this object receives a PUT or POST command. More... | |
bool | is_value_updated_function_set () const |
Returns whether a callback function is set or not. More... | |
void | execute_value_updated (const String &name) |
Calls the function that is set in the "set_value_updated_function". More... | |
size_t | resource_name_length () const |
Returns length of the object name. More... | |
sn_nsdl_dynamic_resource_parameters_s * | get_nsdl_resource () const |
Returns the resource information. More... | |
M2MBase::lwm2m_parameters_s * | get_lwm2m_parameters () const |
Returns the resource structure. More... | |
uint16_t | get_notification_msgid () const m2m_deprecated |
Returns the notification message id. More... | |
void | set_notification_msgid (uint16_t msgid) m2m_deprecated |
Sets the notification message id. This is used to map RESET and EMPTY ACK messages. More... | |
bool | set_message_delivery_status_cb (message_delivery_status_cb callback, void *client_args) |
Sets the function that is executed when message state changes. Currently this is used to track notifications and delayed response delivery statuses. More... | |
M2MReportHandler * | report_handler () const |
Returns the Report Handler object. More... | |
Protected Member Functions | |
virtual M2MBase * | get_parent () const |
Returns the owner object. Can return NULL if the object has no parent. | |
Protected Member Functions inherited from M2MBase | |
M2MBase & | operator= (const M2MBase &) |
M2MBase (const M2MBase &) | |
M2MBase (const String &name, M2MBase::Mode mode, const String &resource_type, char *path, bool external_blockwise_store, bool multiple_instance, M2MBase::DataType type=M2MBase::OBJLINK) | |
Constructor. More... | |
M2MBase (const lwm2m_parameters_s *s) | |
virtual bool | observation_to_be_sent (const m2m::Vector< uint16_t > &changed_instance_ids, uint16_t obs_number, bool send_object=false) |
An observation callback to be sent to the server due to a change in the observed parameter. More... | |
void | set_base_type (M2MBase::BaseType type) |
Sets the base type for an object. More... | |
M2MReportHandler * | create_report_handler () |
Create Report Handler object. More... | |
void | free_resources () |
Delete the resource structures owned by this object. Note: this needs to be called separately from each subclass' destructor as this method uses a virtual method and the call needs to be done at same class which has the implementation of the pure virtual method. | |
void | clear_notification_delivery_status () m2m_deprecated |
Clears the notification send status to initial state. | |
void | get_observation_token (uint8_t *token, uint8_t &token_length) const |
Provides the observation token of the object. More... | |
void | set_observation_token (const uint8_t *token, const uint8_t length) |
Sets the observation token value. More... | |
virtual void | set_changed () |
The data has changed and it needs to be updated into Device Management. Current implementation maintains the changed state only in M2MEndpoint. If any of the changes in an object changes the M2M registration structure, the information is propagated to M2MEndpoint using this interface. | |
void | handle_observation (nsdl_s *nsdl, const sn_coap_hdr_s &received_coap_header, sn_coap_hdr_s &coap_response, M2MObservationHandler *observation_handler, sn_coap_msg_code_e &response_code) |
Handles subscription request. More... | |
void | cancel_observation (M2MBase::MessageDeliveryStatus status=M2MBase::MESSAGE_STATUS_UNSUBSCRIBED, bool notify=true) |
Cancels the ongoing observation. More... | |
void | start_observation (const sn_coap_hdr_s &received_coap_header, M2MObservationHandler *observation_handler) |
Start the observation. More... | |
Additional Inherited Members | |
Public Types inherited from M2MBase | |
enum | BaseType { Object = 0x0, Resource = 0x1, ObjectInstance = 0x2, ResourceInstance = 0x3 } |
Enum to define the type of object. | |
enum | Observation { None = 0x0, R_Attribute = 0x01, OI_Attribute = 0x02, OIR_Attribute = 0x03, O_Attribute = 0x04, OR_Attribute = 0x05, OOI_Attribute = 0x06, OOIR_Attribute = 0x07 } |
Enum to define observation level. | |
enum | Mode { Static, Dynamic, Directory } |
Enum defining a resource type. More... | |
enum | DataType { STRING, INTEGER, FLOAT, BOOLEAN, OPAQUE, TIME, OBJLINK } |
Enum defining a resource data type. | |
enum | Operation { NOT_ALLOWED = 0x00, GET_ALLOWED = 0x01, PUT_ALLOWED = 0x02, GET_PUT_ALLOWED = 0x03, POST_ALLOWED = 0x04, GET_POST_ALLOWED = 0x05, PUT_POST_ALLOWED = 0x06, GET_PUT_POST_ALLOWED = 0x07, DELETE_ALLOWED = 0x08, GET_DELETE_ALLOWED = 0x09, PUT_DELETE_ALLOWED = 0x0A, GET_PUT_DELETE_ALLOWED = 0x0B, POST_DELETE_ALLOWED = 0x0C, GET_POST_DELETE_ALLOWED = 0x0D, PUT_POST_DELETE_ALLOWED = 0x0E, GET_PUT_POST_DELETE_ALLOWED = 0x0F } |
Enum defining an operation that can be supported by a given resource. More... | |
enum | MessageDeliveryStatus { MESSAGE_STATUS_INIT = 0, MESSAGE_STATUS_BUILD_ERROR, MESSAGE_STATUS_RESEND_QUEUE_FULL, MESSAGE_STATUS_SENT, MESSAGE_STATUS_DELIVERED, MESSAGE_STATUS_SEND_FAILED, MESSAGE_STATUS_SUBSCRIBED, MESSAGE_STATUS_UNSUBSCRIBED, MESSAGE_STATUS_REJECTED } |
Enum defining an status codes that can happen when sending confirmable message. More... | |
enum | MessageType { NOTIFICATION = 0, DELAYED_POST_RESPONSE, BLOCK_SUBSCRIBE, PING, DELAYED_RESPONSE } |
enum | MaxPathSize { MAX_NAME_SIZE = 64, MAX_INSTANCE_SIZE = 5, MAX_PATH_SIZE = ((MAX_NAME_SIZE * 2) + (MAX_INSTANCE_SIZE * 2) + 3 + 1), MAX_PATH_SIZE_2 = ((MAX_NAME_SIZE * 2) + MAX_INSTANCE_SIZE + 2 + 1), MAX_PATH_SIZE_3 = (MAX_NAME_SIZE + (MAX_INSTANCE_SIZE * 2) + 2 + 1), MAX_PATH_SIZE_4 = (MAX_NAME_SIZE + MAX_INSTANCE_SIZE + 1 + 1) } |
typedef void(* | message_delivery_status_cb) (const M2MBase &base, const MessageDeliveryStatus status, const MessageType type, void *client_args) |
typedef struct M2MBase::lwm2m_parameters | lwm2m_parameters_s |
LwM2M parameters. More... | |
Static Public Member Functions inherited from M2MBase | |
static char * | create_path (const M2MObject &parent, const char *name) |
static char * | create_path (const M2MObject &parent, uint16_t object_instance) |
static char * | create_path (const M2MResource &parent, uint16_t resource_instance) |
static char * | create_path (const M2MResource &parent, const char *name) |
static char * | create_path (const M2MObjectInstance &parent, const char *name) |
Static Protected Member Functions inherited from M2MBase | |
static void * | memory_alloc (uint32_t size) |
Memory allocation required for libCoap. More... | |
static void | memory_free (void *ptr) |
Memory free functions required for libCoap. More... | |
static char * | alloc_string_copy (const char *source) |
Allocate and make a copy of given zero terminated string. This is functionally equivalent with strdup(). More... | |
static uint8_t * | alloc_string_copy (const uint8_t *source, uint32_t size) |
Allocate (size + 1) amount of memory, copy size bytes into it and add zero termination. More... | |
static uint8_t * | alloc_copy (const uint8_t *source, uint32_t size) |
Allocate (size) amount of memory, copy size bytes into it. More... | |
static bool | validate_string_length (const String &string, size_t min_length, size_t max_length) |
static bool | validate_string_length (const char *string, size_t min_length, size_t max_length) |
static bool | build_path (StringBuffer< MAX_PATH_SIZE > &buffer, const char *s1, uint16_t i1, const char *s2, uint16_t i2) |
static bool | build_path (StringBuffer< MAX_PATH_SIZE_2 > &buffer, const char *s1, uint16_t i1, const char *s2) |
static bool | build_path (StringBuffer< MAX_PATH_SIZE_3 > &buffer, const char *s1, uint16_t i1, uint16_t i2) |
static bool | build_path (StringBuffer< MAX_PATH_SIZE_4 > &buffer, const char *s1, uint16_t i1) |
static char * | stringdup (const char *s) |
static bool | is_blockwise_needed (const nsdl_s *nsdl, uint32_t payload_len) |
Checks whether blockwise is needed to send resource value to server. More... | |
This the LwM2M object instance class. You can use it to represent any defined LWM2M object instances.
This class also holds all resource instances associated with the given object.
Constructor and destructor are private which means that these objects can be created or deleted only through function provided by M2MObject.
|
virtual |
Adds the observation level for the object.
observation_level | The level of observation. |
Reimplemented from M2MBase.
M2MResource* M2MObjectInstance::create_dynamic_resource | ( | const String & | resource_name, |
const String & | resource_type, | ||
M2MResourceInstance::ResourceType | type, | ||
bool | observable, | ||
bool | multiple_instance = false , |
||
bool | external_blockwise_store = false |
||
) |
Creates a dynamic resource for a given mbed Client Inteface object. With this, the client can respond to different queries from the server (GET,PUT etc). This type of resource is also observable and carries callbacks.
resource_name | The name of the resource. |
resource_type | The type of the resource. |
observable | Indicates whether the resource is observable or not. |
multiple_instance | The resource can have multiple instances, default is false. |
external_blockwise_store | If true CoAP blocks are passed to application through callbacks otherwise handled in mbed-client-c. |
M2MResource* M2MObjectInstance::create_dynamic_resource | ( | const uint16_t | resource_name, |
const char * | resource_type, | ||
M2MResourceInstance::ResourceType | type, | ||
bool | observable, | ||
bool | multiple_instance = false , |
||
bool | external_blockwise_store = false |
||
) |
Creates a dynamic resource for a given mbed Client Inteface object. With this, the client can respond to different queries from the server (GET,PUT etc). This type of resource is also observable and carries callbacks.
resource_name | The name of the resource. |
resource_type | The type of the resource as null-terminated string. |
observable | Indicates whether the resource is observable or not. |
multiple_instance | The resource can have multiple instances, default is false. |
external_blockwise_store | If true CoAP blocks are passed to application through callbacks otherwise handled in mbed-client-c. |
M2MResource* M2MObjectInstance::create_dynamic_resource | ( | const lwm2m_parameters_s * | static_res, |
M2MResourceInstance::ResourceType | type, | ||
bool | observable | ||
) |
TODO!
M2MResourceInstance* M2MObjectInstance::create_dynamic_resource_instance | ( | const String & | resource_name, |
const String & | resource_type, | ||
M2MResourceInstance::ResourceType | type, | ||
bool | observable, | ||
uint16_t | instance_id, | ||
bool | external_blockwise_store = false |
||
) |
Creates a dynamic resource instance for a given mbed Client Inteface object. With this, the client can respond to different queries from the server (GET,PUT etc). This type of resource is also observable and carries callbacks.
resource_name | The name of the resource. |
resource_type | The type of the resource. |
observable | Indicates whether the resource is observable or not. |
instance_id | The instance ID of the resource. |
external_blockwise_store | If true CoAP blocks are passed to application through callbacks otherwise handled in mbed-client-c. |
M2MResource* M2MObjectInstance::create_static_resource | ( | const lwm2m_parameters_s * | static_res, |
M2MResourceInstance::ResourceType | type | ||
) |
TODO!
M2MResource* M2MObjectInstance::create_static_resource | ( | const String & | resource_name, |
const String & | resource_type, | ||
M2MResourceInstance::ResourceType | type, | ||
const uint8_t * | value, | ||
const uint8_t | value_length, | ||
bool | multiple_instance = false , |
||
bool | external_blockwise_store = false |
||
) |
Creates a static resource for a given mbed Client Inteface object. With this, the client can respond to server's GET methods with the provided value.
resource_name | The name of the resource. |
resource_type | The type of the resource. |
value | A pointer to the value of the resource. |
value_length | The length of the value in the pointer. |
multiple_instance | A resource can have multiple instances, default is false. |
external_blockwise_store | If true CoAP blocks are passed to application through callbacks otherwise handled in mbed-client-c. |
M2MResourceInstance* M2MObjectInstance::create_static_resource_instance | ( | const String & | resource_name, |
const String & | resource_type, | ||
M2MResourceInstance::ResourceType | type, | ||
const uint8_t * | value, | ||
const uint8_t | value_length, | ||
uint16_t | instance_id, | ||
bool | external_blockwise_store = false |
||
) |
Creates a static resource instance for a given mbed Client Inteface object. With this, the client can respond to server's GET methods with the provided value.
resource_name | The name of the resource. |
resource_type | The type of the resource. |
value | A pointer to the value of the resource. |
value_length | The length of the value in pointer. |
instance_id | The instance ID of the resource. |
external_blockwise_store | If true CoAP blocks are passed to application through callbacks otherwise handled in mbed-client-c. |
|
virtual |
Handles GET request for the registered objects.
nsdl | The NSDL handler for the CoAP library. |
received_coap_header | The CoAP message received from the server. |
observation_handler | The handler object for sending observation callbacks. return sn_coap_hdr_s The message that needs to be sent to the server. |
Reimplemented from M2MBase.
|
virtual |
Handles POST request for the registered objects.
nsdl | The NSDL handler for the CoAP library. |
received_coap_header | The CoAP message received from the server. |
observation_handler | The handler object for sending observation callbacks. |
execute_value_updated | True will execute the "value_updated" callback. |
Reimplemented from M2MBase.
|
virtual |
Handles PUT request for the registered objects.
nsdl | The NSDL handler for the CoAP library. |
received_coap_header | The CoAP message received from the server. |
observation_handler | The handler object for sending observation callbacks. |
execute_value_updated | True will execute the "value_updated" callback. |
Reimplemented from M2MBase.
void M2MObjectInstance::notification_update | ( | M2MBase::Observation | observation_level | ) |
callback used from M2MResource/M2MResourceInstance
|
virtual |
Returns the Observation Handler object.
Implements M2MBase.
|
virtual |
Removes the observation level from the object.
observation_level | The level of observation. |
Reimplemented from M2MBase.
bool M2MObjectInstance::remove_resource | ( | const String & | name | ) |
Removes the resource with the given name.
name | The name of the resource to be removed. Note: this will be removed in next version, please use the remove_resource(const char*) version instead. |
bool M2MObjectInstance::remove_resource | ( | const char * | name | ) |
Removes the resource with the given name.
name | The name of the resource to be removed. |
bool M2MObjectInstance::remove_resource_instance | ( | const String & | resource_name, |
uint16_t | instance_id | ||
) |
Removes the resource instance with the given name.
resource_name | The name of the resource instance to be removed. |
instance_id | The instance ID of the instance. |
M2MResource* M2MObjectInstance::resource | ( | const uint16_t | resource_id | ) | const |
Returns the resource with the given name.
name | The name of the requested resource. |
M2MResource* M2MObjectInstance::resource | ( | const String & | name | ) | const |
uint16_t M2MObjectInstance::resource_count | ( | ) | const |
Returns the total number of resources with the object.
uint16_t M2MObjectInstance::resource_count | ( | const String & | resource | ) | const |
Returns the total number of single resource instances. Note: this will be removed in next version, please use the resource_count(const char*) version instead.
resource | The name of the resource. |
uint16_t M2MObjectInstance::resource_count | ( | const char * | resource | ) | const |
Returns the total number of single resource instances.
resource | The name of the resource. |
const M2MResourceList& M2MObjectInstance::resources | ( | ) | const |
Returns a list of M2MResourceBase objects.
|
virtual |
Sets the observation handler.
handler | Observation handler |
Implements M2MBase.