LibLogicalAccess  2.5.0
An Open Source RFID Library
Loading...
Searching...
No Matches
datafield.hpp
Go to the documentation of this file.
1
7#ifndef LOGICALACCESS_DATAFIELD_HPP
8#define LOGICALACCESS_DATAFIELD_HPP
9
11
12#include <memory>
13#include <boost/utility.hpp>
14
17
18#define UNKNOWN_FIELD_POSITION 0xffffffff
19
20namespace logicalaccess
21{
22typedef enum {
23 DFT_VALUE = 0x00, /* ValueDataField */
24 DFT_CHECKSUM = 0x01, /* ChecksumDataField */
25 DFT_PARITY = 0x02, /* ParityDataField */
26 DFT_BINARY = 0x03, /* BinaryDataField */
27 DFT_NUMBER = 0x04, /* NumberDataField */
28 DFT_STRING = 0x05, /* StringDataField */
29 DFT_TLV = 0x06 /* TLVDataField */
34class LLA_CORE_API DataField : public XmlSerializable,
35 public std::enable_shared_from_this<DataField>
36{
37 public:
41 DataField();
42
46 virtual ~DataField();
47
52 virtual unsigned int getDataLength() const;
53
58 virtual void setPosition(unsigned int position);
59
64 unsigned int getPosition() const;
65
70 virtual DataFieldType getDFType() const = 0;
71
76 void setName(const std::string &name);
77
82 std::string getName() const;
83
88 virtual BitsetStream getLinearData(const BitsetStream &data) const = 0;
89
94 virtual void setLinearData(const ByteVector &data) = 0;
95
101 virtual bool checkSkeleton(std::shared_ptr<DataField> field) const = 0;
102
107 void serialize(boost::property_tree::ptree &parentNode) override;
108
113 void unSerialize(boost::property_tree::ptree &node) override;
114
115 protected:
119 std::string d_name;
120
124 unsigned int d_length;
125
129 unsigned int d_position;
130};
131}
132
133#endif /* LOGICALACCESS_DATAFIELD_HPP */
Definition: BitsetStream.hpp:15
A data field base class.
Definition: datafield.hpp:36
virtual void setLinearData(const ByteVector &data)=0
Set linear data.
unsigned int d_position
The field position in bits.
Definition: datafield.hpp:129
virtual DataFieldType getDFType() const =0
Get the field type.
std::string d_name
The field name.
Definition: datafield.hpp:119
virtual BitsetStream getLinearData(const BitsetStream &data) const =0
Get linear data.
unsigned int d_length
The field length in bits.
Definition: datafield.hpp:124
virtual bool checkSkeleton(std::shared_ptr< DataField > field) const =0
Check the current field skeleton with another field.
A Xml Serializable base class. Add Xml serialization to a class.
Definition: xmlserializable.hpp:54
std::vector< uint8_t > ByteVector
Definition: lla_fwd.hpp:80
Logging header.
Definition: asn1.hpp:9
DataFieldType
Definition: datafield.hpp:22
@ DFT_TLV
Definition: datafield.hpp:29
@ DFT_CHECKSUM
Definition: datafield.hpp:24
@ DFT_PARITY
Definition: datafield.hpp:25
@ DFT_VALUE
Definition: datafield.hpp:23
@ DFT_NUMBER
Definition: datafield.hpp:27
@ DFT_BINARY
Definition: datafield.hpp:26
@ DFT_STRING
Definition: datafield.hpp:28