LibLogicalAccess  2.5.0
An Open Source RFID Library
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
logicalaccess::TLVDataField Class Reference

A TLV data field. More...

#include <tlvdatafield.hpp>

Inheritance diagram for logicalaccess::TLVDataField:
logicalaccess::ValueDataField logicalaccess::DataField logicalaccess::XmlSerializable

Public Member Functions

 TLVDataField ()
 Constructor.
 
 TLVDataField (unsigned char tag)
 Constructor.
 
virtual ~TLVDataField ()
 Destructor.
 
DataFieldType getDFType () const override
 Get the field type.
 
virtual void setPosition (unsigned int position) override
 Set the field position in bits.
 
void setValue (const std::string &value)
 Set the field value.
 
std::string getValue () const
 Get the field value.
 
void setTag (unsigned char tag)
 
unsigned char getTag () const
 
void setRawValue (const std::vector< unsigned char > &value)
 Set the field value.
 
std::vector< unsigned char > getRawValue () const
 Get the field value.
 
virtual BitsetStream getLinearData (const BitsetStream &data) const override
 Get linear data.
 
virtual void setLinearData (const ByteVector &data) override
 Set linear data.
 
virtual bool checkSkeleton (std::shared_ptr< DataField > field) const override
 Check the current field skeleton with another field.
 
virtual void serialize (boost::property_tree::ptree &parentNode) override
 Serialize the current object to XML.
 
virtual void unSerialize (boost::property_tree::ptree &node) override
 UnSerialize a XML node to the current object.
 
std::string getDefaultXmlNodeName () const override
 Get the default Xml Node name for this object.
 
- Public Member Functions inherited from logicalaccess::ValueDataField
 ValueDataField ()
 Constructor.
 
virtual ~ValueDataField ()
 Destructor.
 
DataFieldType getDFType () const override
 Get the field type.
 
virtual void setDataLength (unsigned int length)
 Set data length in bits.
 
std::shared_ptr< DataRepresentationgetDataRepresentation () const
 Get the Data Representation for the field.
 
void setDataRepresentation (std::shared_ptr< DataRepresentation > &encoding)
 Set the Data Representation for the field.
 
std::shared_ptr< DataTypegetDataType () const
 Get the Data Type for the field.
 
void setDataType (const std::shared_ptr< DataType > &encoding)
 Set the Data Type for the field.
 
void setIsFixedField (bool isFixed)
 Set if the field is a fixed field.
 
bool getIsFixedField () const
 Get if the field is a fixed field.
 
void setIsIdentifier (bool isIdentifier)
 Set if the field is used as identifier.
 
bool getIsIdentifier () const
 Get if the field is used as identifier.
 
void convertNumericData (BitsetStream &data, unsigned long long field, unsigned int fieldlen) const
 Convert a numeric data into the configured DataRepresentation and DataType.
 
void convertBinaryData (const BitsetStream &data, unsigned int fieldlen, BitsetStream &convertedData) const
 Convert a binary data into the configured DataRepresentation.
 
unsigned long long revertNumericData (const BitsetStream &data, unsigned int pos, unsigned int fieldlen) const
 Revert a numeric data using the configured DataRepresentation and DataType.
 
BitsetStream revertBinaryData (const BitsetStream &data, unsigned int pos, unsigned int fieldlen) const
 Revert a binary data using the configured DataRepresentation.
 
void serialize (boost::property_tree::ptree &parentNode) override
 Serialize the current object to XML.
 
void unSerialize (boost::property_tree::ptree &node) override
 UnSerialize a XML node to the current object.
 
- Public Member Functions inherited from logicalaccess::DataField
 DataField ()
 Constructor.
 
virtual ~DataField ()
 Destructor.
 
virtual unsigned int getDataLength () const
 Get data length in bits.
 
virtual void setPosition (unsigned int position)
 Set the field position in bits.
 
unsigned int getPosition () const
 Get the field position in bits.
 
virtual DataFieldType getDFType () const =0
 Get the field type.
 
void setName (const std::string &name)
 Set the field name.
 
std::string getName () const
 Get the field name.
 
virtual BitsetStream getLinearData (const BitsetStream &data) const =0
 Get linear data.
 
virtual void setLinearData (const ByteVector &data)=0
 Set linear data.
 
virtual bool checkSkeleton (std::shared_ptr< DataField > field) const =0
 Check the current field skeleton with another field.
 
void serialize (boost::property_tree::ptree &parentNode) override
 Serialize the current object to XML.
 
void unSerialize (boost::property_tree::ptree &node) override
 UnSerialize a XML node to the current object.
 
- Public Member Functions inherited from logicalaccess::XmlSerializable
virtual ~XmlSerializable ()=default
 
virtual std::string serialize ()
 Serialize object to Xml Node string.
 
virtual std::string serializeWithHeaders ()
 Serialize object to Xml Node string, with xml headers.
 
virtual void serialize (boost::property_tree::ptree &parentNode)=0
 Serialize object to Xml Node.
 
virtual void serializeToFile (const std::string &filename)
 Serialize object to a Xml file.
 
virtual void unSerialize (boost::property_tree::ptree &node)=0
 UnSerialize object from a Xml Node.
 
virtual void unSerialize (const std::string &xmlstring, const std::string &rootNode)
 UnSerialize object from a Xml Node string.
 
virtual void unSerialize (std::istream &is, const std::string &rootNode)
 UnSerialize object from a Xml node.
 
virtual void unSerialize (boost::property_tree::ptree &node, const std::string &rootNode)
 UnSerialize object from a Xml node.
 
virtual void unSerializeFromFile (const std::string &filename)
 UnSerialize object from a Xml file.
 
virtual std::string getDefaultXmlNodeName () const =0
 Get the default Xml Node name for this object.
 

Protected Attributes

std::string d_value
 
unsigned char d_tag
 
- Protected Attributes inherited from logicalaccess::ValueDataField
std::shared_ptr< DataRepresentationd_dataRepresentation
 The Data Representation.
 
std::shared_ptr< DataTyped_dataType
 The Data Type.
 
bool d_isFixedField
 The field is a value field.
 
bool d_isIdentifier
 The field is used as identifier.
 
- Protected Attributes inherited from logicalaccess::DataField
std::string d_name
 The field name.
 
unsigned int d_length
 The field length in bits.
 
unsigned int d_position
 The field position in bits.
 

Additional Inherited Members

- Static Public Member Functions inherited from logicalaccess::XmlSerializable
static std::string removeXmlDeclaration (const std::string &xmlstring)
 Remove Xml declaration from a xml string.
 
static ByteVector formatHexString (std::string hexstr)
 Format hex string to hex string with space.
 
- Static Protected Member Functions inherited from logicalaccess::XmlSerializable
static unsigned long long atoull (const std::string &str)
 

Detailed Description

A TLV data field.

Constructor & Destructor Documentation

◆ TLVDataField() [1/2]

logicalaccess::TLVDataField::TLVDataField ( )

Constructor.

◆ TLVDataField() [2/2]

logicalaccess::TLVDataField::TLVDataField ( unsigned char  tag)

Constructor.

◆ ~TLVDataField()

logicalaccess::TLVDataField::~TLVDataField ( )
virtual

Destructor.

Member Function Documentation

◆ checkSkeleton()

bool logicalaccess::TLVDataField::checkSkeleton ( std::shared_ptr< DataField field) const
overridevirtual

Check the current field skeleton with another field.

Parameters
fieldThe field to check.
Returns
True on success, false otherwise.

Implements logicalaccess::DataField.

◆ getDefaultXmlNodeName()

std::string logicalaccess::TLVDataField::getDefaultXmlNodeName ( ) const
overridevirtual

Get the default Xml Node name for this object.

Returns
The Xml node name.

Implements logicalaccess::XmlSerializable.

◆ getDFType()

DataFieldType logicalaccess::TLVDataField::getDFType ( ) const
inlineoverridevirtual

Get the field type.

Returns
The field type.

Implements logicalaccess::DataField.

◆ getLinearData()

BitsetStream logicalaccess::TLVDataField::getLinearData ( const BitsetStream data) const
overridevirtual

Get linear data.

Parameters
dataWhere to put data
dataLengthBytesLength in byte of data
posThe first position bit. Will contain the position bit after the field.

Implements logicalaccess::DataField.

◆ getRawValue()

ByteVector logicalaccess::TLVDataField::getRawValue ( ) const

Get the field value.

Returns
The field value.

◆ getTag()

unsigned char logicalaccess::TLVDataField::getTag ( ) const

◆ getValue()

std::string logicalaccess::TLVDataField::getValue ( ) const

Get the field value.

Returns
The field value.

◆ serialize()

void logicalaccess::TLVDataField::serialize ( boost::property_tree::ptree &  parentNode)
overridevirtual

Serialize the current object to XML.

Parameters
parentNodeThe parent node.

Reimplemented from logicalaccess::DataField.

◆ setLinearData()

void logicalaccess::TLVDataField::setLinearData ( const ByteVector data)
overridevirtual

Set linear data.

Parameters
dataWhere to get data
dataLengthBytesLength of data in bytes
posThe first position bit. Will contain the position bit after the field.

Implements logicalaccess::DataField.

◆ setPosition()

void logicalaccess::TLVDataField::setPosition ( unsigned int  position)
overridevirtual

Set the field position in bits.

Parameters
positionThe field position in bits.

Reimplemented from logicalaccess::DataField.

◆ setRawValue()

void logicalaccess::TLVDataField::setRawValue ( const std::vector< unsigned char > &  value)

Set the field value.

Parameters
valueThe field value.

◆ setTag()

void logicalaccess::TLVDataField::setTag ( unsigned char  tag)

◆ setValue()

void logicalaccess::TLVDataField::setValue ( const std::string &  value)

Set the field value.

Parameters
valueThe field value.

◆ unSerialize()

void logicalaccess::TLVDataField::unSerialize ( boost::property_tree::ptree &  node)
overridevirtual

UnSerialize a XML node to the current object.

Parameters
nodeThe XML node.

Reimplemented from logicalaccess::DataField.

Member Data Documentation

◆ d_tag

unsigned char logicalaccess::TLVDataField::d_tag
protected

◆ d_value

std::string logicalaccess::TLVDataField::d_value
protected

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