00001 00026 #ifndef ODVA_ETHERNETIP_SERIALIZATION_SERIALIZABLE_H 00027 #define ODVA_ETHERNETIP_SERIALIZATION_SERIALIZABLE_H 00028 00029 #include "odva_ethernetip/serialization/writer.h" 00030 #include "odva_ethernetip/serialization/reader.h" 00031 00032 namespace eip { 00033 namespace serialization { 00034 00038 class Serializable 00039 { 00040 public: 00045 virtual size_t getLength() const = 0; 00046 00053 virtual Writer& serialize(Writer& writer) const = 0; 00054 00062 virtual Reader& deserialize(Reader& reader, size_t length) = 0; 00063 00070 virtual Reader& deserialize(Reader& reader) = 0; 00071 }; 00072 00073 } // namespace serialization 00074 } // namespace eip 00075 #endif // ODVA_ETHERNETIP_SERIALIZATION_SERIALIZABLE_H