Friendly LWM2M client
wpp::FirmwareUpdate Class Reference

#include <FirmwareUpdate.h>

+ Inheritance diagram for wpp::FirmwareUpdate:
+ Collaboration diagram for wpp::FirmwareUpdate:

Public Types

enum  ID : ID_T {
  PACKAGE_0 = 0 , PACKAGE_URI_1 = 1 , UPDATE_2 = 2 , STATE_3 = 3 ,
  UPDATE_RESULT_5 = 5 , PKGNAME_6 = 6 , PKGVERSION_7 = 7 , FIRMWARE_UPDATE_PROTOCOL_SUPPORT_8 = 8 ,
  FIRMWARE_UPDATE_DELIVERY_METHOD_9 = 9
}
 

Public Member Functions

 FirmwareUpdate (lwm2m_context_t &context, const OBJ_LINK_T &id)
 
 ~FirmwareUpdate ()
 
- Public Member Functions inherited from wpp::Instance
 Instance (lwm2m_context_t &context, const OBJ_LINK_T &id)
 
virtual ~Instance ()
 
 Instance (const Instance &)=delete
 
 Instance (Instance &&)=delete
 
Instanceoperator= (const Instance &)=delete
 
Instanceoperator= (Instance &&)=delete
 
OBJ_LINK_T getLink () const
 
OBJ_ID getObjectID () const
 
ID_T getInstanceID () const
 
lwm2m_context_t & getContext ()
 Return context that can be used by derived class. More...
 
WppClientgetClient ()
 Helpfull methods to get client instances. More...
 
WppRegistrygetRegistry ()
 Helpfull methods to get registry instances. More...
 
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, execute the value of the resource. User should not call this methods directly. More...
 
uint8_t writeAsServer (lwm2m_server_t *server, int numData, lwm2m_data_t *dataArray, lwm2m_write_type_t writeType)
 
uint8_t executeAsServer (lwm2m_server_t *server, ID_T resId, uint8_t *buffer, int length)
 
uint8_t discoverAsServer (lwm2m_server_t *server, int *numDataP, lwm2m_data_t **dataArray)
 
- Public Member Functions inherited from wpp::InstSubject
void opSubscribe (InstOpObserver *observer)
 Subscribes an observer to receive notifications about instance resource operations. More...
 
void opUnsubscribe (InstOpObserver *observer)
 Unsubscribes an observer from receiving notifications about instance resource operations. More...
 
void eventSubscribe (InstEventObserver *observer)
 Subscribes an observer to receive notifications about custom instance events. More...
 
void eventUnsubscribe (InstEventObserver *observer)
 Unsubscribes an observer from receiving notifications about custom instance events. More...
 
- Public Member Functions inherited from wpp::ResourceContainer
 ResourceContainer ()=default
 
virtual ~ResourceContainer ()=default
 
bool isSingle (ID_T resId)
 Check if the resource is SINGLE. More...
 
bool isMultiple (ID_T resId)
 Check if the resource is MULTIPLE. More...
 
bool isExist (ID_T resId)
 Check if the instance ID is exist. More...
 
bool isExist (ID_T resId, ID_T resInstId)
 Check if the instance ID is exist. More...
 
size_t instCount (ID_T resId)
 Get the number of resource instances. More...
 
std::vector< ID_TinstIds (ID_T resId)
 Returns vector with available ids of resource instances. More...
 
ID_T newInstId (ID_T resId)
 Find first available instance ID that is not used. More...
 
template<typename T >
bool set (ID_T resId, const T &value)
 Set data value by copy for the resource. More...
 
template<typename T >
bool set (ID_T resId, ID_T resInstId, const T &value)
 Set data value by copy for the resource instance. More...
 
template<typename T >
bool set (ID_T resId, T &&value)
 Set data value by move for the resource. More...
 
template<typename T >
bool set (ID_T resId, ID_T resInstId, T &&value)
 Set data value by move for the resource instance. More...
 
template<typename T >
const T & get (ID_T resId, ID_T resInstId=SINGLE_INSTANCE_ID)
 
template<typename T >
bool add (ID_T resId, const T &value)
 Add new instance with data value by copy for the MULTIPLE resource. More...
 
template<typename T >
bool add (ID_T resId, T &&value)
 Add new instance with data value by move for the MULTIPLE resource. More...
 
bool removeRes (ID_T resId, ID_T resInstId)
 Remove resource instance if resource is MULTIPLE and instance exists, if the resource is SINGLE remove is not possible. More...
 
bool clearRes (ID_T resId)
 Remove all instances. More...
 

Static Public Member Functions

static Objectobject (WppClient &ctx)
 Gets the Object reference. More...
 
static FirmwareUpdateinstance (WppClient &ctx, ID_T instId=ID_T_MAX_VAL)
 Gets an instance of the object. More...
 
static FirmwareUpdatecreateInst (WppClient &ctx, ID_T instId=ID_T_MAX_VAL)
 Creates an instance of the object. More...
 
static bool removeInst (WppClient &ctx, ID_T instId)
 Removes an instance of the object. More...
 
static bool setFwUpdater (WppClient &ctx, FwUpdater &updater)
 Set the FwUpdater object for updating the firmware package. More...
 
static std::vector< FwUpdProtocolsupportedProtocols (WppClient &ctx)
 Return the list of supported protocols for downloading the firmware through uri. More...
 
static bool setFwExternalDownloader (WppClient &ctx, FwExternalDl &downloader)
 Set the FwExternalDl object for downloading the firmware package from the specified URI. More...
 
static bool setFwInternalDownloader (WppClient &ctx, FwInternalDl &downloader)
 Set the FwInternalDl object for auto downloading firmware. More...
 

Protected Member Functions

void serverOperationNotifier (Instance *securityInst, ItemOp::TYPE type, const ResLink &resLink) override
 This method must be implemented by the derived class, and handle information about resource operation (WRITE, EXECUTE). Called by Instance after resource operation performed by SERVER if the operation is
WRITE, if the operation is EXECUTE then called before this operation. When the EXECUTE operation, the handler that was set before the serverOperationNotifier() call is used. More...
 
void userOperationNotifier (ItemOp::TYPE type, const ResLink &resLink) override
 This method must be implemented by the derived class, and handle information about resource operation (WRITE, DELETE). Called by Instance after resource operation performed by the USER. More...
 
- Protected Member Functions inherited from wpp::Instance
void notifyResChanged (ID_T resId, ID_T resInstId=ID_T_MAX_VAL)
 Notify server about resource value change. More...
 
std::vector< Resource * > getInstantiatedResList ()
 This method return list with resources that has been instantiated. If resources does not exist then return empty list. More...
 
std::vector< Resource * > getInstantiatedResList (const ItemOp &filter)
 
std::vector< Resource * > getResList ()
 This method return list with all resources that has been defined. If resources does not exist then return empty list. More...
 
void resourceOperationNotifier (ItemOp::TYPE type, ID_T resId, ID_T resInstId) override
 Handle information about resource operation (WRITE, DELETE). Called by ResourceContainer after resource operation performed. More...
 
- Protected Member Functions inherited from wpp::InstSubject
void operationNotify (Instance &inst, const ResLink &resLink, ItemOp::TYPE type)
 Notifies the observers about an operation on an instance resource. More...
 
void eventNotify (Instance &inst, EVENT_ID_T eventId)
 Notifies the observers about a custom instance event. More...
 
- Protected Member Functions inherited from wpp::ResourceContainer
void setupResources (const std::vector< Resource > &resources)
 This methods setup resources list. More...
 
void setupResources (std::vector< Resource > &&resources)
 
Resourceresource (ID_T resId)
 This method return resource ptr if it exists. If resources does not exist then return NULL. More...
 
std::vector< Resource > & resources ()
 This method return list with all resources that has been defined. More...
 

Detailed Description

Definition at line 33 of file FirmwareUpdate.h.

Member Enumeration Documentation

◆ ID

Enumerator
PACKAGE_0 
PACKAGE_URI_1 
UPDATE_2 
STATE_3 
UPDATE_RESULT_5 
PKGNAME_6 
PKGVERSION_7 
FIRMWARE_UPDATE_PROTOCOL_SUPPORT_8 
FIRMWARE_UPDATE_DELIVERY_METHOD_9 

Definition at line 35 of file FirmwareUpdate.h.

Constructor & Destructor Documentation

◆ FirmwareUpdate()

wpp::FirmwareUpdate::FirmwareUpdate ( lwm2m_context_t &  context,
const OBJ_LINK_T id 
)

Definition at line 32 of file FirmwareUpdate.cpp.

◆ ~FirmwareUpdate()

wpp::FirmwareUpdate::~FirmwareUpdate ( )

Definition at line 52 of file FirmwareUpdate.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ createInst()

FirmwareUpdate * wpp::FirmwareUpdate::createInst ( WppClient ctx,
ID_T  instId = ID_T_MAX_VAL 
)
static

Creates an instance of the object.

Parameters
ctx- WppClient context
instanceIDThe instance ID.
Returns
A pointer to the created Instance object or NULL.

Definition at line 72 of file FirmwareUpdate.cpp.

+ Here is the call graph for this function:

◆ instance()

FirmwareUpdate * wpp::FirmwareUpdate::instance ( WppClient ctx,
ID_T  instId = ID_T_MAX_VAL 
)
static

Gets an instance of the object.

Parameters
ctx- WppClient context.
instIdThe instance ID. If not provided, the first available instance is returned.
Returns
A pointer to the Instance object or NULL.

Definition at line 66 of file FirmwareUpdate.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ object()

Object & wpp::FirmwareUpdate::object ( WppClient ctx)
static

Gets the Object reference.

Parameters
ctx- WppClient context.
Returns
A reference to the Object.

Definition at line 62 of file FirmwareUpdate.cpp.

+ Here is the call graph for this function:

◆ removeInst()

bool wpp::FirmwareUpdate::removeInst ( WppClient ctx,
ID_T  instId 
)
static

Removes an instance of the object.

Parameters
ctx- WppClient context.
instIdThe instance ID.
Returns
True if the instance was successfully removed, false otherwise.

Definition at line 78 of file FirmwareUpdate.cpp.

+ Here is the call graph for this function:

◆ serverOperationNotifier()

void wpp::FirmwareUpdate::serverOperationNotifier ( Instance securityInst,
ItemOp::TYPE  type,
const ResLink resLink 
)
overrideprotectedvirtual

This method must be implemented by the derived class, and handle information about resource operation (WRITE, EXECUTE). Called by Instance after resource operation performed by SERVER if the operation is
WRITE, if the operation is EXECUTE then called before this operation. When the EXECUTE operation, the handler that was set before the serverOperationNotifier() call is used.

Parameters
securityInst- Contains security instance when the request received from the server or NULL if the request is initiated by the core.

Implements wpp::Instance.

Definition at line 82 of file FirmwareUpdate.cpp.

+ Here is the call graph for this function:

◆ setFwExternalDownloader()

static bool wpp::FirmwareUpdate::setFwExternalDownloader ( WppClient ctx,
FwExternalDl &  downloader 
)
static

Set the FwExternalDl object for downloading the firmware package from the specified URI.

Parameters
ctx- WppClient context.
downloader- FwExternalDl object.
Note
Call of this method is reset the current state of the FirmwareUpdate object.
Returns
true if the FwExternalDl object is set successfully, otherwise false.

◆ setFwInternalDownloader()

bool wpp::FirmwareUpdate::setFwInternalDownloader ( WppClient ctx,
FwInternalDl downloader 
)
static

Set the FwInternalDl object for auto downloading firmware.

Parameters
ctx- WppClient context.
downloader- FwInternalDl object.
Note
Call of this method is reset the current state of the FirmwareUpdate object.
Returns
true if the FwInternalDl object is set successfully, otherwise false.

Definition at line 251 of file FirmwareUpdate.cpp.

+ Here is the call graph for this function:

◆ setFwUpdater()

bool wpp::FirmwareUpdate::setFwUpdater ( WppClient ctx,
FwUpdater updater 
)
static

Set the FwUpdater object for updating the firmware package.

Parameters
ctx- WppClient context.
updater- FwUpdater object.
Note
Call of this method is reset the current state of the FirmwareUpdate object.
Returns
true if the FwUpdater object is set successfully, otherwise false.

Definition at line 179 of file FirmwareUpdate.cpp.

+ Here is the call graph for this function:

◆ supportedProtocols()

static std::vector<FwUpdProtocol> wpp::FirmwareUpdate::supportedProtocols ( WppClient ctx)
static

Return the list of supported protocols for downloading the firmware through uri.

Parameters
ctx- WppClient context.

◆ userOperationNotifier()

void wpp::FirmwareUpdate::userOperationNotifier ( ItemOp::TYPE  type,
const ResLink resLink 
)
overrideprotectedvirtual

This method must be implemented by the derived class, and handle information about resource operation (WRITE, DELETE). Called by Instance after resource operation performed by the USER.

Implements wpp::Instance.

Definition at line 103 of file FirmwareUpdate.cpp.

+ Here is the call graph for this function: