Public Member Functions | Private Member Functions | Private Attributes | List of all members
eip::CPFItem Class Reference

#include <cpf_item.h>

Inheritance diagram for eip::CPFItem:
Inheritance graph
[legend]

Public Member Functions

 CPFItem ()
 
 CPFItem (EIP_UINT item_type, shared_ptr< Serializable > item_data)
 
virtual Readerdeserialize (Reader &reader)
 
virtual Readerdeserialize (Reader &reader, size_t length)
 
shared_ptr< SerializablegetData ()
 
void getDataAs (Serializable &result)
 
virtual EIP_UINT getDataLength () const
 
EIP_UINT getItemType ()
 
virtual size_t getLength () const
 
virtual Writerserialize (Writer &writer) const
 
void setData (shared_ptr< Serializable > data)
 
void setItemType (EIP_UINT item_type)
 

Private Member Functions

void deserializeData (Reader &reader, EIP_UINT item_length)
 

Private Attributes

shared_ptr< Serializableitem_data_
 
EIP_UINT item_type_
 

Detailed Description

Representation of a Common Packet Format Item. Uses a Serializable reference for the actual data.

Definition at line 48 of file cpf_item.h.

Constructor & Destructor Documentation

◆ CPFItem() [1/2]

eip::CPFItem::CPFItem ( )
inline

Construct null item by default. Anything else requires both the type and a serializable for the data.

Definition at line 56 of file cpf_item.h.

◆ CPFItem() [2/2]

eip::CPFItem::CPFItem ( EIP_UINT  item_type,
shared_ptr< Serializable item_data 
)
inline

Construct a common packet item to represent the given item type and data

Parameters
item_typeItem type code for this item (see EIP_ITEM_T)
item_dataData for this item

Definition at line 63 of file cpf_item.h.

Member Function Documentation

◆ deserialize() [1/2]

Reader & eip::CPFItem::deserialize ( Reader reader)
virtual

Deserialize data from the given reader without length information

Parameters
readerReader to use for deserialization
Returns
the reader again
Exceptions
std::length_errorif the buffer is overrun while deserializing

Implements eip::serialization::Serializable.

Definition at line 64 of file cpf_item.cpp.

◆ deserialize() [2/2]

Reader & eip::CPFItem::deserialize ( Reader reader,
size_t  length 
)
virtual

Deserialize data from the given reader with the length given

Parameters
readerReader to use for deserialization
lengthLength expected for data
Returns
the reader again
Exceptions
std::length_errorif the buffer is overrun while deserializing

Implements eip::serialization::Serializable.

Definition at line 47 of file cpf_item.cpp.

◆ deserializeData()

void eip::CPFItem::deserializeData ( Reader reader,
EIP_UINT  item_length 
)
private

Helper to deserialize the item data

Parameters
readerthe reader to use to deserialize data
item_lengththe length in bytes of the data to read

Definition at line 73 of file cpf_item.cpp.

◆ getData()

shared_ptr<Serializable> eip::CPFItem::getData ( )
inline

Get the data portion of this item

Definition at line 87 of file cpf_item.h.

◆ getDataAs()

void eip::CPFItem::getDataAs ( Serializable result)

Get the item data as a particular serializable instance

Parameters
resultSerializable class to get data into

Definition at line 86 of file cpf_item.cpp.

◆ getDataLength()

virtual EIP_UINT eip::CPFItem::getDataLength ( ) const
inlinevirtual

Get the length of the data in this item.

Returns
length in bytes of the data for this item

Definition at line 111 of file cpf_item.h.

◆ getItemType()

EIP_UINT eip::CPFItem::getItemType ( )
inline

Get the type code for this item

Returns
Item type code (see EIP_ITEM_T)

Definition at line 70 of file cpf_item.h.

◆ getLength()

virtual size_t eip::CPFItem::getLength ( ) const
inlinevirtual

Get the total length needed to serialize this item. Really just 4 bytes (2 for the type, 2 for length) plus the size of the data itself.

Returns
Total length in bytes to be serialized

Implements eip::serialization::Serializable.

Definition at line 121 of file cpf_item.h.

◆ serialize()

Writer & eip::CPFItem::serialize ( Writer writer) const
virtual

Serialize data into the given buffer

Parameters
writerWriter to use for serialization
Returns
the writer again
Exceptions
std::length_errorif the buffer is too small for the header data

Implements eip::serialization::Serializable.

Definition at line 37 of file cpf_item.cpp.

◆ setData()

void eip::CPFItem::setData ( shared_ptr< Serializable data)
inline

Set the data portion of this item. If a null reference is given, the item is assumed to be a NullItem

Definition at line 96 of file cpf_item.h.

◆ setItemType()

void eip::CPFItem::setItemType ( EIP_UINT  item_type)
inline

Set the type code for this item

Parameters
item_typeItem type code (see EIP_ITEM_T)

Definition at line 79 of file cpf_item.h.

Member Data Documentation

◆ item_data_

shared_ptr<Serializable> eip::CPFItem::item_data_
private

Definition at line 152 of file cpf_item.h.

◆ item_type_

EIP_UINT eip::CPFItem::item_type_
private

Definition at line 151 of file cpf_item.h.


The documentation for this class was generated from the following files:


odva_ethernetip
Author(s): Kareem Shehata
autogenerated on Wed Mar 2 2022 00:38:56