00001 // @author Alexander Rykovanov 2012 00010 00011 #include "binary_serialization.h" 00012 00013 #include <opc/ua/protocol/binary/stream.h> 00014 #include <opc/ua/protocol/protocol.h> 00015 #include <opc/ua/protocol/attribute_ids.h> 00016 00017 #include <algorithm> 00018 #include <memory> 00019 #include <string> 00020 #include <iostream> 00021 00022 00023 namespace OpcUa 00024 { 00025 00026 namespace Binary 00027 { 00028 00029 template<> 00030 std::size_t RawSize<AttributeId>(const AttributeId&) 00031 { 00032 return 4; 00033 } 00034 00035 template<> 00036 void DataSerializer::Serialize<AttributeId>(const AttributeId& attr) 00037 { 00038 *this << static_cast<uint32_t>(attr); 00039 } 00040 00041 template<> 00042 void DataDeserializer::Deserialize<AttributeId>(AttributeId& t) 00043 { 00044 uint32_t tmp = 0; 00045 *this >> tmp; 00046 t = static_cast<AttributeId>(tmp); 00047 } 00048 00049 00050 00051 } // namespace Binary 00052 } // namespace OpcUa 00053