23 #ifndef _SANDESH_PROTOCOL_TBINARYPROTOCOL_H_
24 #define _SANDESH_PROTOCOL_TBINARYPROTOCOL_H_ 1
29 #include <boost/shared_ptr.hpp>
33 namespace contrail {
namespace sandesh {
namespace protocol {
40 template <
class Transport_>
61 int32_t container_limit,
88 void setStrict(
bool strict_read,
bool strict_write) {
117 const TType fieldType,
118 const int16_t fieldId,
119 const std::map<std::string, std::string> *
const amap);
127 const uint32_t size);
139 inline int32_t
writeBool(
const bool value);
141 inline int32_t
writeByte(
const int8_t byte);
143 inline int32_t
writeI16(
const int16_t i16);
145 inline int32_t
writeI32(
const int32_t i32);
147 inline int32_t
writeI64(
const int64_t i64);
149 inline int32_t
writeU16(
const uint16_t u16);
151 inline int32_t
writeU32(
const uint32_t u32);
153 inline int32_t
writeU64(
const uint64_t u64);
155 inline int32_t
writeIPV4(
const uint32_t ip4);
157 inline int32_t
writeIPADDR(
const boost::asio::ip::address& ipaddress);
161 inline int32_t
writeString(
const std::string& str);
163 inline int32_t
writeBinary(
const std::string& str);
165 inline int32_t
writeXML(
const std::string& str);
212 inline int32_t
readBool(
bool& value);
216 inline int32_t
readByte(int8_t& byte);
218 inline int32_t
readI16(int16_t& i16);
220 inline int32_t
readI32(int32_t& i32);
222 inline int32_t
readI64(int64_t& i64);
224 inline int32_t
readU16(uint16_t& u16);
226 inline int32_t
readU32(uint32_t& u32);
228 inline int32_t
readU64(uint64_t& u64);
230 inline int32_t
readIPV4(uint32_t& ip4);
232 inline int32_t
readIPADDR(boost::asio::ip::address& ipaddress);
240 inline int32_t
readXML(std::string& str);
268 template <
class Transport_>
278 bool strict_read,
bool strict_write) :
299 boost::shared_ptr<TProtocol>
getProtocol(boost::shared_ptr<TTransport> trans) {
300 boost::shared_ptr<Transport_> specific_trans =
301 boost::dynamic_pointer_cast<Transport_>(trans);
303 if (specific_trans) {
312 return boost::shared_ptr<TProtocol>(prot);
327 #include "sandesh/library/cpp/protocol/TBinaryProtocol.tcc"
329 #endif // #ifndef _SANDESH_PROTOCOL_TBINARYPROTOCOL_H_
int32_t readI64(int64_t &i64)
int32_t writeSetBegin(const TType elemType, const uint32_t size)
TBinaryProtocolT(boost::shared_ptr< Transport_ > trans, int32_t string_limit, int32_t container_limit, bool strict_read, bool strict_write)
int32_t writeUUID(const boost::uuids::uuid &uuid)
int32_t writeXML(const std::string &str)
TBinaryProtocolFactoryT()
int32_t writeFieldBegin(const char *name, const TType fieldType, const int16_t fieldId, const std::map< std::string, std::string > *const amap)
int32_t writeI16(const int16_t i16)
int32_t readBinary(std::string &str)
int32_t writeContainerElementBegin()
int32_t readXML(std::string &str)
int32_t writeU16(const uint16_t u16)
boost::shared_ptr< TProtocol > getProtocol(boost::shared_ptr< TTransport > trans)
int32_t writeBool(const bool value)
int32_t readBool(bool &value)
int32_t writeMessageEnd()
int32_t readU32(uint32_t &u32)
TBinaryProtocolFactoryT(int32_t string_limit, int32_t container_limit, bool strict_read, bool strict_write)
int32_t readContainerElementBegin()
int32_t readString(std::string &str)
int32_t readUUID(boost::uuids::uuid &uuid)
void setContainerSizeLimit(int32_t container_limit)
int32_t readSandeshBegin(std::string &name)
int32_t writeStructBegin(const char *name)
int32_t writeI32(const int32_t i32)
int32_t writeString(const std::string &str)
void setStringSizeLimit(int32_t string_limit)
int32_t readSetBegin(TType &elemType, uint32_t &size)
virtual ~TBinaryProtocolFactoryT()
int32_t readMapBegin(TType &keyType, TType &valType, uint32_t &size)
int32_t writeContainerElementEnd()
int32_t writeSandeshEnd()
static const int32_t VERSION_MASK
TBinaryProtocolT(boost::shared_ptr< Transport_ > trans)
int32_t readContainerElementEnd()
int32_t writeU32(const uint32_t u32)
void setContainerSizeLimit(int32_t container_limit)
int32_t readI16(int16_t &i16)
int32_t writeIPADDR(const boost::asio::ip::address &ipaddress)
int32_t readU64(uint64_t &u64)
void setStrict(bool strict_read, bool strict_write)
TBinaryProtocolT< TTransport > TBinaryProtocol
int32_t readStringBody(std::string &str, int32_t sz)
int32_t readU16(uint16_t &u16)
void setStrict(bool strict_read, bool strict_write)
int32_t readStructBegin(std::string &name)
int32_t writeMessageBegin(const std::string &name, const TMessageType messageType, const int32_t seqid)
static const int32_t VERSION_1
void setStringSizeLimit(int32_t string_limit)
int32_t writeListBegin(const TType elemType, const uint32_t size)
int32_t writeDouble(const double dub)
int32_t writeBinary(const std::string &str)
int32_t readDouble(double &dub)
int32_t readListBegin(TType &elemType, uint32_t &size)
int32_t readIPADDR(boost::asio::ip::address &ipaddress)
TBinaryProtocolFactoryT< TTransport > TBinaryProtocolFactory
int32_t readByte(int8_t &byte)
int32_t writeU64(const uint64_t u64)
int32_t readIPV4(uint32_t &ip4)
int32_t writeIPV4(const uint32_t ip4)
int32_t writeByte(const int8_t byte)
int32_t writeMapBegin(const TType keyType, const TType valType, const uint32_t size)
int32_t readMessageBegin(std::string &name, TMessageType &messageType, int32_t &seqid)
int32_t writeSandeshBegin(const char *name)
int32_t readI32(int32_t &i32)
int32_t writeI64(const int64_t i64)
int32_t readFieldBegin(std::string &name, TType &fieldType, int16_t &fieldId)