5 #ifndef _SANDESH_PROTOCOL_TXMLPROTOCOL_H_
6 #define _SANDESH_PROTOCOL_TXMLPROTOCOL_H_ 1
11 #include <boost/shared_ptr.hpp>
12 #include <boost/tokenizer.hpp>
13 #include <boost/algorithm/string.hpp>
14 #include <boost/algorithm/string/replace.hpp>
16 namespace contrail {
namespace sandesh {
namespace protocol {
56 xmlstr.reserve(str.length());
57 for (std::string::const_iterator it = str.begin();
58 it != str.end(); ++it) {
60 case '&': xmlstr +=
"&";
break;
61 case '\'': xmlstr +=
"'";
break;
62 case '<': xmlstr +=
"<";
break;
63 case '>': xmlstr +=
">";
break;
64 default: xmlstr += *it;
71 if (strpbrk(str.c_str(),
"&'<>") != NULL) {
79 boost::algorithm::replace_all(str,
"&",
"&");
80 boost::algorithm::replace_all(str,
"'",
"\'");
81 boost::algorithm::replace_all(str,
"<",
"<");
82 boost::algorithm::replace_all(str,
">",
">");
108 const TType fieldType,
109 const int16_t fieldId,
110 const std::map<std::string, std::string> *
const amap = NULL);
118 const uint32_t size);
123 const uint32_t size);
128 const uint32_t size);
136 int32_t
writeI16(
const int16_t i16);
138 int32_t
writeI32(
const int32_t i32);
140 int32_t
writeI64(
const int64_t i64);
142 int32_t
writeU16(
const uint16_t u16);
144 int32_t
writeU32(
const uint32_t u32);
146 int32_t
writeU64(
const uint64_t u64);
150 int32_t
writeIPADDR(
const boost::asio::ip::address& ipaddress);
158 int32_t
writeXML(
const std::string& str);
219 int32_t
readU16(uint16_t& u16);
221 int32_t
readU32(uint32_t& u32);
223 int32_t
readU64(uint64_t& u64);
227 int32_t
readIPADDR(boost::asio::ip::address& ipaddress);
235 int32_t
readXML(std::string& str);
299 typedef boost::tokenizer<boost::char_separator<char> >
308 int32_t
readXMLTag(std::string &str,
bool endTag =
false);
314 template <
typename NumberType>
352 boost::shared_ptr<TProtocol>
getProtocol(boost::shared_ptr<TTransport> trans) {
353 return boost::shared_ptr<TProtocol>(
new TXMLProtocol(trans));
360 #endif // #ifndef _SANDESH_PROTOCOL_TXMLPROTOCOL_H_
int32_t writeContainerElementEnd()
int32_t writeU32(const uint32_t u32)
int32_t readI16(int16_t &i16)
int32_t writeSandeshBegin(const char *name)
boost::tokenizer< boost::char_separator< char > > tokenizer
int32_t writeMessageBegin(const std::string &name, const TMessageType messageType, const int32_t seqid)
int32_t writeSetBegin(const TType elemType, const uint32_t size)
int32_t readMessageBegin(std::string &name, TMessageType &messageType, int32_t &seqid)
int32_t writeFieldBegin(const char *name, const TType fieldType, const int16_t fieldId, const std::map< std::string, std::string > *const amap=NULL)
int32_t writeIPV4(const uint32_t ip4)
int32_t readXMLTag(std::string &str, bool endTag=false)
int32_t writeIPADDR(const boost::asio::ip::address &ipaddress)
int32_t readI64(int64_t &i64)
int32_t readMapBegin(TType &keyType, TType &valType, uint32_t &size)
LookaheadReader(TTransport &trans)
int32_t readStructBegin(std::string &name)
int32_t writeSandeshEnd()
int32_t writeI32(const int32_t i32)
int32_t readXMLDouble(double &num)
int32_t readFieldBegin(std::string &name, TType &fieldType, int16_t &fieldId)
static const int indent_inc
std::vector< write_state_t > write_state_
int32_t writeBinary(const std::string &str)
int32_t readI32(int32_t &i32)
int32_t readByte(int8_t &byte)
int32_t writeI16(const int16_t i16)
int32_t readIPADDR(boost::asio::ip::address &ipaddress)
int32_t writeUUID(const boost::uuids::uuid &uuid)
static const int32_t DEFAULT_STRING_LIMIT
int32_t writeListBegin(const TType elemType, const uint32_t size)
int32_t readContainerElementBegin()
void setStringSizeLimit(int32_t string_limit)
int32_t writeDouble(const double dub)
int32_t readAll(uint8_t *buf, uint32_t len)
static TType getTypeIDForTypeName(const std::string &name)
void setStringPrefixSize(int32_t string_prefix_size)
virtual ~TXMLProtocolFactory()
int32_t string_prefix_size_
int32_t writeIndented(const std::string &str)
int32_t readContainerElementEnd()
int32_t readU64(uint64_t &u64)
int32_t writeXML(const std::string &str)
int32_t readXMLCDATA(std::string &str)
int32_t writeMessageEnd()
int32_t readString(std::string &str)
static const int32_t DEFAULT_STRING_PREFIX_SIZE
int32_t readListBegin(TType &elemType, uint32_t &size)
std::vector< std::string > xml_state_
int32_t writeStructBegin(const char *name)
int32_t writeU64(const uint64_t u64)
static void unescapeXMLControlChars(std::string &str)
int32_t readBool(bool &value)
int32_t writeI64(const int64_t i64)
int32_t readXMLInteger(NumberType &num)
int32_t readIPV4(uint32_t &ip4)
int32_t readSetBegin(TType &elemType, uint32_t &size)
int32_t readDouble(double &dub)
int32_t readXML(std::string &str)
int32_t writeByte(const int8_t byte)
int32_t writeMapBegin(const TType keyType, const TType valType, const uint32_t size)
static const std::string & fieldTypeName(TType type)
int32_t writeString(const std::string &str)
int32_t writeU16(const uint16_t u16)
int32_t readXMLNumericChars(std::string &str)
int32_t readXMLSyntaxString(const std::string &str)
int32_t writePlain(const std::string &str)
int32_t readU32(uint32_t &u32)
int32_t readXMLSyntaxChar(uint8_t ch)
int32_t readUUID(boost::uuids::uuid &uuid)
TXMLProtocol(boost::shared_ptr< TTransport > trans)
static std::string escapeXMLControlCharsInternal(const std::string &str)
int32_t readXMLString(std::string &str)
int32_t readBinary(std::string &str)
static std::string escapeXMLControlChars(const std::string &str)
int32_t readU16(uint16_t &u16)
boost::shared_ptr< TProtocol > getProtocol(boost::shared_ptr< TTransport > trans)
int32_t readXMLUuid(boost::uuids::uuid &uuid)
int32_t readSandeshBegin(std::string &name)
int32_t writeBool(const bool value)
int32_t writeContainerElementBegin()