File indexing completed on 2026-04-17 08:35:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef THRIFT_TPROTOCOLDECORATOR_H_
0021 #define THRIFT_TPROTOCOLDECORATOR_H_ 1
0022
0023 #include <thrift/protocol/TProtocol.h>
0024 #include <memory>
0025
0026 namespace apache {
0027 namespace thrift {
0028 namespace protocol {
0029 using std::shared_ptr;
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040 class TProtocolDecorator : public TProtocol {
0041 public:
0042 ~TProtocolDecorator() override = default;
0043
0044
0045 TProtocolDecorator(shared_ptr<TProtocol> proto)
0046 : TProtocol(proto->getTransport()), protocol(proto) {}
0047
0048 uint32_t writeMessageBegin_virt(const std::string& name,
0049 const TMessageType messageType,
0050 const int32_t seqid) override {
0051 return protocol->writeMessageBegin(name, messageType, seqid);
0052 }
0053 uint32_t writeMessageEnd_virt() override { return protocol->writeMessageEnd(); }
0054 uint32_t writeStructBegin_virt(const char* name) override {
0055 return protocol->writeStructBegin(name);
0056 }
0057 uint32_t writeStructEnd_virt() override { return protocol->writeStructEnd(); }
0058
0059 uint32_t writeFieldBegin_virt(const char* name,
0060 const TType fieldType,
0061 const int16_t fieldId) override {
0062 return protocol->writeFieldBegin(name, fieldType, fieldId);
0063 }
0064
0065 uint32_t writeFieldEnd_virt() override { return protocol->writeFieldEnd(); }
0066 uint32_t writeFieldStop_virt() override { return protocol->writeFieldStop(); }
0067
0068 uint32_t writeMapBegin_virt(const TType keyType,
0069 const TType valType,
0070 const uint32_t size) override {
0071 return protocol->writeMapBegin(keyType, valType, size);
0072 }
0073
0074 uint32_t writeMapEnd_virt() override { return protocol->writeMapEnd(); }
0075
0076 uint32_t writeListBegin_virt(const TType elemType, const uint32_t size) override {
0077 return protocol->writeListBegin(elemType, size);
0078 }
0079 uint32_t writeListEnd_virt() override { return protocol->writeListEnd(); }
0080
0081 uint32_t writeSetBegin_virt(const TType elemType, const uint32_t size) override {
0082 return protocol->writeSetBegin(elemType, size);
0083 }
0084 uint32_t writeSetEnd_virt() override { return protocol->writeSetEnd(); }
0085
0086 uint32_t writeBool_virt(const bool value) override { return protocol->writeBool(value); }
0087 uint32_t writeByte_virt(const int8_t byte) override { return protocol->writeByte(byte); }
0088 uint32_t writeI16_virt(const int16_t i16) override { return protocol->writeI16(i16); }
0089 uint32_t writeI32_virt(const int32_t i32) override { return protocol->writeI32(i32); }
0090 uint32_t writeI64_virt(const int64_t i64) override { return protocol->writeI64(i64); }
0091
0092 uint32_t writeDouble_virt(const double dub) override { return protocol->writeDouble(dub); }
0093 uint32_t writeString_virt(const std::string& str) override { return protocol->writeString(str); }
0094 uint32_t writeBinary_virt(const std::string& str) override { return protocol->writeBinary(str); }
0095 uint32_t writeUUID_virt(const TUuid& uuid) override { return protocol->writeUUID(uuid); }
0096
0097 uint32_t readMessageBegin_virt(std::string& name,
0098 TMessageType& messageType,
0099 int32_t& seqid) override {
0100 return protocol->readMessageBegin(name, messageType, seqid);
0101 }
0102 uint32_t readMessageEnd_virt() override { return protocol->readMessageEnd(); }
0103
0104 uint32_t readStructBegin_virt(std::string& name) override {
0105 return protocol->readStructBegin(name);
0106 }
0107 uint32_t readStructEnd_virt() override { return protocol->readStructEnd(); }
0108
0109 uint32_t readFieldBegin_virt(std::string& name, TType& fieldType, int16_t& fieldId) override {
0110 return protocol->readFieldBegin(name, fieldType, fieldId);
0111 }
0112 uint32_t readFieldEnd_virt() override { return protocol->readFieldEnd(); }
0113
0114 uint32_t readMapBegin_virt(TType& keyType, TType& valType, uint32_t& size) override {
0115 return protocol->readMapBegin(keyType, valType, size);
0116 }
0117 uint32_t readMapEnd_virt() override { return protocol->readMapEnd(); }
0118
0119 uint32_t readListBegin_virt(TType& elemType, uint32_t& size) override {
0120 return protocol->readListBegin(elemType, size);
0121 }
0122 uint32_t readListEnd_virt() override { return protocol->readListEnd(); }
0123
0124 uint32_t readSetBegin_virt(TType& elemType, uint32_t& size) override {
0125 return protocol->readSetBegin(elemType, size);
0126 }
0127 uint32_t readSetEnd_virt() override { return protocol->readSetEnd(); }
0128
0129 uint32_t readBool_virt(bool& value) override { return protocol->readBool(value); }
0130 uint32_t readBool_virt(std::vector<bool>::reference value) override {
0131 return protocol->readBool(value);
0132 }
0133
0134 uint32_t readByte_virt(int8_t& byte) override { return protocol->readByte(byte); }
0135
0136 uint32_t readI16_virt(int16_t& i16) override { return protocol->readI16(i16); }
0137 uint32_t readI32_virt(int32_t& i32) override { return protocol->readI32(i32); }
0138 uint32_t readI64_virt(int64_t& i64) override { return protocol->readI64(i64); }
0139
0140 uint32_t readDouble_virt(double& dub) override { return protocol->readDouble(dub); }
0141
0142 uint32_t readString_virt(std::string& str) override { return protocol->readString(str); }
0143 uint32_t readBinary_virt(std::string& str) override { return protocol->readBinary(str); }
0144 uint32_t readUUID_virt(TUuid& uuid) override { return protocol->readUUID(uuid); }
0145
0146 private:
0147 shared_ptr<TProtocol> protocol;
0148 };
0149 }
0150 }
0151 }
0152
0153 #endif