encap_header.h
Go to the documentation of this file.
1 
26 #ifndef ODVA_ETHERNETIP_ENCAP_HEADER_H
27 #define ODVA_ETHERNETIP_ENCAP_HEADER_H
28 
29 #include <iostream>
34 
35 namespace eip {
36 
37 using serialization::Serializable;
38 using serialization::Reader;
39 using serialization::Writer;
40 
44 class EncapHeader : public Serializable
45 {
46 public:
53 
57  EncapHeader(EIP_UINT cmd = 0, EIP_UDINT handle = 0)
58  : command(cmd), length(0), session_handle(handle), status(0), options(0)
59  {
60  context[0] = 0;
61  context[1] = 0;
62  }
63 
68  virtual size_t getLength() const
69  {
70  return 24;
71  }
72 
79  virtual Writer& serialize(Writer& writer) const;
80 
89  virtual Reader& deserialize(Reader& reader, size_t length)
90  {
91  if (getLength() != length)
92  {
93  throw std::length_error("Invalid length given for encapsulation packet header");
94  }
95  deserialize(reader);
96  return reader;
97  }
98 
105  virtual Reader& deserialize(Reader& reader);
106 };
107 
108 } // namespace eip
109 
110 #endif // ODVA_ETHERNETIP_ENCAP_HEADER_H
eip::serialization::Writer
Definition: writer.h:41
eip_types.h
eip::serialization::Reader
Definition: reader.h:42
eip::EncapHeader::options
EIP_DWORD options
Definition: encap_header.h:52
eip
Definition: connection.h:41
eip::EncapHeader::context
EIP_DWORD context[2]
Definition: encap_header.h:51
EIP_DWORD
uint32_t EIP_DWORD
Definition: eip_types.h:41
eip::EncapHeader::status
EIP_DWORD status
Definition: encap_header.h:50
EIP_UINT
uint16_t EIP_UINT
Definition: eip_types.h:39
eip::EncapHeader::getLength
virtual size_t getLength() const
Definition: encap_header.h:68
eip::EncapHeader::session_handle
EIP_UDINT session_handle
Definition: encap_header.h:49
eip::serialization::Serializable
Definition: serializable.h:38
eip::EncapHeader::EncapHeader
EncapHeader(EIP_UINT cmd=0, EIP_UDINT handle=0)
Definition: encap_header.h:57
reader.h
eip::EncapHeader::command
EIP_UINT command
Definition: encap_header.h:47
eip::EncapHeader::deserialize
virtual Reader & deserialize(Reader &reader, size_t length)
Definition: encap_header.h:89
eip::EncapHeader
Definition: encap_header.h:44
eip::EncapHeader::length
EIP_UINT length
Definition: encap_header.h:48
eip::EncapHeader::serialize
virtual Writer & serialize(Writer &writer) const
Definition: encap_header.cpp:35
EIP_UDINT
uint32_t EIP_UDINT
Definition: eip_types.h:42
serializable.h
writer.h


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