HAN-FUN API  1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.
HF::Core::Scheduling::GetEntryResponse< _Type > Struct Template Reference

Response message payload for a Scheduling::GET_ENTRY_CMD request. More...

#include <scheduling.h>

+ Inheritance diagram for HF::Core::Scheduling::GetEntryResponse< _Type >:
+ Collaboration diagram for HF::Core::Scheduling::GetEntryResponse< _Type >:

Public Member Functions

uint16_t size () const
 Number bytes needed to serialize the message. More...
 
uint16_t pack (Common::ByteArray &array, uint16_t offset=0) const
 Write the object on to a ByteArray so it can be sent over the network. More...
 
uint16_t unpack (const Common::ByteArray &array, uint16_t offset=0)
 Read a message from a ByteArray. More...
 
- Public Member Functions inherited from HF::Protocol::Response
uint16_t size () const
 Number bytes needed to serialize the message. More...
 
uint16_t pack (Common::ByteArray &array, uint16_t offset=0) const
 Write the object on to a ByteArray so it can be sent over the network. More...
 
uint16_t unpack (const Common::ByteArray &array, uint16_t offset=0)
 Read a message from a ByteArray. More...
 

Data Fields

Entry< _Type > entry
 &Entry data to return to client. More...
 

Additional Inherited Members

- Static Public Attributes inherited from HF::Protocol::Response
static constexpr uint16_t min_size = sizeof(uint8_t)
 Minimum number of bytes required by this message.
 

Detailed Description

template<typename _Type>
struct HF::Core::Scheduling::GetEntryResponse< _Type >

Response message payload for a Scheduling::GET_ENTRY_CMD request.

Template Parameters
_Typethe specific data for scheduling service entry.

Definition at line 402 of file scheduling.h.

Member Function Documentation

◆ pack()

template<typename _Type >
uint16_t HF::Core::Scheduling::GetEntryResponse< _Type >::pack ( Common::ByteArray array,
uint16_t  offset = 0 
) const
inline

Write the object on to a ByteArray so it can be sent over the network.

The buffer passed in MUST have enough size to hold the serialized object, e.g.,

Serializable obj;
ByteArray payload(obj.size());
obj.pack(payload);
Parameters
[in,out]arrayByteArray reference to write the object to.
[in]offsetoffset to start writing to.
Returns
the number of bytes written.

Definition at line 427 of file scheduling.h.

References HF::Core::Scheduling::GetEntryResponse< _Type >::entry, HF_SERIALIZABLE_CHECK, HF::Common::OK, HF::Protocol::Response::pack(), and HF::Core::Scheduling::GetEntryResponse< _Type >::size().

428  {
429  HF_SERIALIZABLE_CHECK(array, offset, size());
430 
431  uint8_t start = offset;
432 
433  offset += Protocol::Response::pack(array, offset);
434 
435  if (code != Common::Result::OK)
436  {
437  goto _end;
438  }
439 
440  offset += entry.pack(array, offset);
441 
442  _end:
443  return offset - start;
444  }
Entry< _Type > entry
&Entry data to return to client.
Definition: scheduling.h:404
#define HF_SERIALIZABLE_CHECK(__array, __offset, __size)
Helper macro to check if the given __array has enough size so __size bytes can be written/read from t...
uint16_t size() const
Number bytes needed to serialize the message.
Definition: scheduling.h:416
uint16_t pack(Common::ByteArray &array, uint16_t offset=0) const
Write the object on to a ByteArray so it can be sent over the network.
+ Here is the call graph for this function:

◆ size()

template<typename _Type >
uint16_t HF::Core::Scheduling::GetEntryResponse< _Type >::size ( ) const
inline

Number bytes needed to serialize the message.

Returns
number of bytes the message requires to be serialized.

Definition at line 416 of file scheduling.h.

References HF::Protocol::Response::min_size, and HF::Common::OK.

Referenced by HF::Core::Scheduling::GetEntryResponse< _Type >::pack().

417  {
418  if (code != Common::Result::OK)
419  {
420  return min_size;
421  }
422 
424  }
static constexpr uint16_t min_size
Minimum pack/unpack required data size.
Definition: scheduling.h:227
static constexpr uint16_t min_size
Minimum number of bytes required by this message.
Definition: protocol.h:375
+ Here is the caller graph for this function:

◆ unpack()

template<typename _Type >
uint16_t HF::Core::Scheduling::GetEntryResponse< _Type >::unpack ( const Common::ByteArray array,
uint16_t  offset = 0 
)
inline

Read a message from a ByteArray.

Parameters
[in]arrayByteArray reference to read the message from.
[in]offsetoffset to start reading from.
Returns
the number of bytes read.

Definition at line 447 of file scheduling.h.

References HF::Core::Scheduling::GetEntryResponse< _Type >::entry, HF_SERIALIZABLE_CHECK, HF::Protocol::Response::min_size, HF::Common::OK, and HF::Protocol::Response::unpack().

448  {
449  HF_SERIALIZABLE_CHECK(array, offset, min_size);
450 
451  uint8_t start = offset;
452 
453  offset += Protocol::Response::unpack(array, offset);
454 
455  if (code != Common::Result::OK)
456  {
457  goto _end;
458  }
459 
460  HF_SERIALIZABLE_CHECK(array, offset, entry.size());
461  offset += entry.unpack(array, offset);
462 
463  _end:
464  return offset - start;
465  }
Entry< _Type > entry
&Entry data to return to client.
Definition: scheduling.h:404
#define HF_SERIALIZABLE_CHECK(__array, __offset, __size)
Helper macro to check if the given __array has enough size so __size bytes can be written/read from t...
static constexpr uint16_t min_size
Minimum number of bytes required by this message.
Definition: protocol.h:375
uint16_t unpack(const Common::ByteArray &array, uint16_t offset=0)
Read a message from a ByteArray.
+ Here is the call graph for this function:

Field Documentation

◆ entry

template<typename _Type >
Entry<_Type> HF::Core::Scheduling::GetEntryResponse< _Type >::entry

The documentation for this struct was generated from the following file: