6 Object::Object(lwm2m_context_t &context) : _context(context) {}
8 Object::Object(lwm2m_context_t &context,
const ObjectInfo &info): _context(context), _objInfo(info) {
72 lwm2m_update_registration(&
getContext(), 0,
false,
true);
89 lwm2m_list_t *element = NULL;
91 if (NULL != element)
delete element;
97 lwm2m_update_registration(&
getContext(), 0,
false,
true);
105 return inst !=
_instances.end()? *inst : NULL;
121 auto finder = [instanceID](
const Instance *inst) ->
bool {
return inst->getInstanceID() == instanceID; };
135 uint8_t
Object::serverRead_clb(lwm2m_context_t * contextP, lwm2m_server_t *server,
ID_T instanceId,
int * numDataP, lwm2m_data_t ** dataArrayP, lwm2m_object_t * objectP) {
138 if (!obj->
isExist(instanceId))
return COAP_404_NOT_FOUND;
142 uint8_t
Object::serverWrite_clb(lwm2m_context_t * contextP, lwm2m_server_t *server,
ID_T instanceId,
int numData, lwm2m_data_t * dataArray, lwm2m_object_t * objectP, lwm2m_write_type_t writeType) {
145 if (!obj->
isExist(instanceId))
return COAP_404_NOT_FOUND;
152 if (!obj->
isExist(instanceId))
return COAP_404_NOT_FOUND;
156 uint8_t
Object::serverDiscover_clb(lwm2m_context_t * contextP, lwm2m_server_t *server,
ID_T instanceId,
int * numDataP, lwm2m_data_t ** dataArrayP, lwm2m_object_t * objectP) {
159 if (!obj->
isExist(instanceId))
return COAP_404_NOT_FOUND;
163 uint8_t
Object::serverCreate_clb(lwm2m_context_t * contextP, lwm2m_server_t *server,
ID_T instanceId,
int numData, lwm2m_data_t * dataArray, lwm2m_object_t * objectP) {
166 if (!obj->
createInstance(instanceId))
return COAP_500_INTERNAL_SERVER_ERROR;
170 uint8_t result =
serverWrite_clb(contextP, server, instanceId, numData, dataArray, objectP, LWM2M_WRITE_REPLACE_RESOURCES);
171 if (result != COAP_204_CHANGED) {
176 return COAP_201_CREATED;
182 if (!obj->
isExist(instanceId))
return COAP_404_NOT_FOUND;
186 return obj->
remove(instanceId)? COAP_202_DELETED : COAP_404_NOT_FOUND;
#define WPP_LOGD(TAG, FMT,...)
Instance is interface class that implements manipulation with derived class resources....
uint8_t readAsServer(lwm2m_server_t *server, int *numDataP, lwm2m_data_t **dataArray)
This methods is called by the core when the server wants to read, write, discover,...
uint8_t discoverAsServer(lwm2m_server_t *server, int *numDataP, lwm2m_data_t **dataArray)
uint8_t executeAsServer(lwm2m_server_t *server, ID_T resId, uint8_t *buffer, int length)
uint8_t writeAsServer(lwm2m_server_t *server, int numData, lwm2m_data_t *dataArray, lwm2m_write_type_t writeType)
void operationNotify(Object &obj, ID_T instanceId, ItemOp::TYPE type)
Notifies observers about object operations.
The Object class implements manipulation with Instance interface class and its inheritors.
Instance * instance(ID_T instanceID=ID_T_MAX_VAL)
Gets an instance of the object.
static uint8_t serverRead_clb(lwm2m_context_t *contextP, lwm2m_server_t *server, ID_T instanceId, int *numDataP, lwm2m_data_t **dataArrayP, lwm2m_object_t *objectP)
The read callback function for the Lwm2m core.
size_t instanceCnt()
Gets the number of instances of the object.
const std::vector< Instance * > & instances()
Gets all instances of the object.
virtual Instance * createInstance(ID_T instanceID=ID_T_MAX_VAL)=0
Creates an instance of the object.
lwm2m_context_t & _context
lwm2m_object_t _lwm2m_object
ID_T getFirstAvailableInstanceID()
Gets the first available instance ID.
lwm2m_object_t & getLwm2mObject()
Gets the lwm2m_object_t object.
WppRegistry & getRegistry()
Helpfull methods to get registry instances.
bool remove(ID_T instanceID)
Removes an instance of the object.
lwm2m_context_t & getContext()
Return context that can be used by derived class.
static uint8_t serverExecute_clb(lwm2m_context_t *contextP, lwm2m_server_t *server, ID_T instanceId, ID_T resId, uint8_t *buffer, int length, lwm2m_object_t *objectP)
The execute callback function for the Lwm2m core.
OBJ_ID getObjectID() const
Gets the object ID.
static uint8_t serverWrite_clb(lwm2m_context_t *contextP, lwm2m_server_t *server, ID_T instanceId, int numData, lwm2m_data_t *dataArray, lwm2m_object_t *objectP, lwm2m_write_type_t writeType)
The write callback function for the Lwm2m core.
virtual ~Object()
Destroys the Object instance.
void clear()
Clears the object.
static uint8_t serverDiscover_clb(lwm2m_context_t *contextP, lwm2m_server_t *server, ID_T instanceId, int *numDataP, lwm2m_data_t **dataArrayP, lwm2m_object_t *objectP)
The discover callback function for the Lwm2m core.
static uint8_t serverCreate_clb(lwm2m_context_t *contextP, lwm2m_server_t *server, ID_T instanceId, int numData, lwm2m_data_t *dataArray, lwm2m_object_t *objectP)
The create callback function for the Lwm2m core.
static uint8_t serverDelete_clb(lwm2m_context_t *contextP, lwm2m_server_t *server, ID_T instanceId, lwm2m_object_t *objectP)
The delete callback function for the Lwm2m core.
WppClient & getClient()
Helpfull methods to get client instances.
bool isExist(ID_T instanceID)
Checks if an instance exists.
const ObjectInfo & getObjectInfo() const
Gets the object information.
std::vector< Instance * >::iterator getInstIter(ID_T instanceID)
Gets the iterator to the instance.
std::vector< Instance * > _instances
Represents a client interface for Wpp library.
The WppRegistry class represents a registry for managing LWM2M objects.
The WppConnection class represents a connection interface for the Wpp library.
OBJ_ID
Enumeration of object IDs in the Wpp library.
bool isCreate() const
Checks if the operation is of type CREATE.
bool isExecute() const
Checks if the ItemOp object represents an execute operation.
bool isDiscover() const
Checks if the ItemOp object represents a discover operation.
bool isWrite() const
Checks if the ItemOp object represents a write operation.
bool isRead() const
Checks if the ItemOp object represents a read operation.
bool isDelete() const
Checks if the operation is of type DELETE.
The ObjectInfo struct represents information about an object in the Wakaama data model.