16 #ifndef M2M_RESOURCE_BASE_H 17 #define M2M_RESOURCE_BASE_H 28 class M2MCallbackAssociation;
31 typedef void(*execute_callback_2) (
void *arguments);
34 typedef void(*notification_sent_callback_2) (void);
36 #ifndef DISABLE_BLOCK_MESSAGE 63 typedef void(*notification_status_callback_2) (
const uint16_t msg_id,
64 const M2MResourceBase::NotificationStatus status);
96 typedef int(*read_resource_value_callback) (
const M2MResourceBase& resource,
127 typedef int(*read_resource_value_size_callback) (
const M2MResourceBase& resource,
139 typedef bool(*write_resource_value_callback) (
const M2MResourceBase& resource,
140 const uint8_t *buffer,
141 const size_t buffer_size,
162 const String &resource_name,
167 bool external_blockwise_store,
168 bool multiple_instance);
184 const String &resource_name,
186 const String &resource_type,
188 const uint8_t *value,
191 bool external_blockwise_store,
192 bool multiple_instance);
301 bool set_value(
const uint8_t *value,
const uint32_t value_length);
313 bool set_value_raw(uint8_t *value,
const uint32_t value_length);
356 void get_value(uint8_t *&value, uint32_t &value_length);
380 uint8_t*
value()
const;
402 void update_value(uint8_t *value,
const uint32_t value_length);
419 sn_coap_hdr_s *received_coap_header,
431 sn_coap_hdr_s *received_coap_header,
449 #ifndef DISABLE_BLOCK_MESSAGE 541 void report_value_change();
543 bool has_value_changed(
const uint8_t* value,
const uint32_t value_len);
547 void read_data_from_application(M2MCallbackAssociation *item, nsdl_s *nsdl,
const sn_coap_hdr_s *received_coap,
548 sn_coap_hdr_s *coap_response,
size_t &payload_len);
552 #ifndef DISABLE_BLOCK_MESSAGE 556 NotificationStatus _notification_status : 2;
558 friend class Test_M2MResourceInstance;
559 friend class Test_M2MResource;
560 friend class Test_M2MObjectInstance;
561 friend class Test_M2MObject;
562 friend class Test_M2MDevice;
563 friend class Test_M2MSecurity;
564 friend class Test_M2MServer;
565 friend class Test_M2MNsdlInterface;
566 friend class Test_M2MTLVSerializer;
567 friend class Test_M2MTLVDeserializer;
570 #endif // M2M_RESOURCE_BASE_H Mode
Enum defining a resource type.
Definition: m2mbase.h:89
Definition: m2mobservationhandler.h:30
void get_value(uint8_t *&value, uint32_t &value_length)
Provides the value of the given resource.
bool set_execute_function(execute_callback callback)
Sets the function that should be executed when this resource receives a POST command.
int64_t get_value_int() const
Converts a value to integer and returns it. Note: Conversion errors are not detected.
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 the PUT request for the registered objects.
void clear_notification_status()
Clears the notification send status to initial state.
virtual uint16_t object_instance_id() const =0
Returns the instance ID of the object where the resource exists.
void publish_value_in_registration_msg(bool publish_value)
Set the status whether resource value will be part of registration message. * This only allowed for f...
bool set_resource_write_callback(write_resource_value_callback callback, void *client_args)
Sets the callback function that is executed when writing the resource value.
M2MBlockMessage * block_message() const
Returns the block message object.
Definition: functionpointer.h:281
void set_value_set_callback(value_set_callback callback)
Set the value set callback. The set callback will be called instead of setting the value in set_value...
bool set_resource_read_size_callback(read_resource_value_size_callback callback, void *client_args)
Sets the callback function that is executed when reading the resource value size. ...
String get_value_string() const
Definition: m2mobjectinstance.h:42
ResourceType
Definition: m2mresourcebase.h:70
uint32_t value_length() const
Returns the length of the value pointer.
virtual sn_coap_hdr_s * handle_get_request(nsdl_s *nsdl, sn_coap_hdr_s *received_coap_header, M2MObservationHandler *observation_handler=NULL)
Handles the GET request for the registered objects.
Definition: functionpointer.h:27
int read_resource_value(const M2MResourceBase &resource, void *buffer, size_t *buffer_len)
Executes the function that is set in "set_resource_read_callback".
LwM2M parameters.
Definition: m2mbase.h:199
bool set_notification_status_callback(notification_status_callback callback) m2m_deprecated
Sets the function that is executed when this object receives response(Empty ACK) for notification mes...
virtual ~M2MResourceBase()
Header for M2MBase class.
bool set_value_float(float value)
Sets a value of a given resource.
virtual M2MResource & get_parent_resource() const
Get reference to the resource owning this resource instance.
int read_resource_value_size(const M2MResourceBase &resource, size_t *buffer_len)
Executes the function that is set in "set_resource_read_size_callback".
void notification_sent()
Executes the function that is set in "set_notification_sent_callback".
DataType
Enum defining a resource data type.
Definition: m2mbase.h:98
Definition: m2mblockmessage.h:26
bool set_read_resource_function(read_value_callback callback, void *client_args)
Sets the function that is executed when this object receives a GET request.
Header for function pointer classes.
bool set_notification_sent_callback(notification_sent_callback callback) m2m_deprecated
Sets the function that is executed when this object receives response(Empty ACK) for notification mes...
Mode mode() const
Returns the mode of the resource.
Definition: m2mresourceinstance.h:38
bool set_incoming_block_message_callback(incoming_block_message_callback callback)
Sets the function that is executed when this object receives a block-wise message.
virtual const char * object_name() const =0
Returns the name of the object where the resource exists.
bool write_resource_value(const M2MResourceBase &resource, const uint8_t *buffer, const size_t buffer_size)
Executes the function that is set in "set_resource_write_callback".
void update_value(uint8_t *value, const uint32_t value_length)
Default value update function. This function frees old value, stores the new value and informs report...
Definition: m2mresourcebase.h:47
coap_response_code_e
Definition: coap_response.h:26
Definition: m2mresource.h:38
bool set_resource_read_callback(read_resource_value_callback callback, void *client_args) m2m_deprecated
Sets the callback function that is executed when reading the resource value.
Definition: functionpointer.h:197
M2MResourceBase::NotificationStatus notification_status() const
Returns notification send status.
bool set_value_raw(uint8_t *value, const uint32_t value_length)
Sets a value of a given resource.
M2MResourceBase::ResourceType resource_instance_type() const
Returns the resource data type.
const char * resource_type() const
Returns the resource type of the object.
void execute(void *arguments)
Executes the function that is set in "set_execute_function".
void execute_value_updated(const String &name)
Calls the function that is set in the "set_value_updated_function".
virtual M2MObservationHandler * observation_handler() const =0
Returns the Observation Handler object.
bool set_outgoing_block_message_callback(outgoing_block_message_callback callback) m2m_deprecated
Sets the function that is executed when this object receives a GET request. This is called if resourc...
float get_value_float() const
Converts a value to float and returns it. Note: Conversion errors are not detected.
bool set_value(const uint8_t *value, const uint32_t value_length)
Sets a value of a given resource.
Definition: functionpointer.h:113
uint8_t * value() const
Returns the value pointer of the object.
void report_to_parents()
Function to report the value changes to the object instance and object parent of the resource if they...
void clear_value()
Clears the value of a given resource.