File indexing completed on 2026-04-17 08:35:03
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef _THRIFT_TRANSPORT_THTTPSERVER_H_
0021 #define _THRIFT_TRANSPORT_THTTPSERVER_H_ 1
0022
0023 #include <thrift/transport/THttpTransport.h>
0024
0025 namespace apache {
0026 namespace thrift {
0027 namespace transport {
0028
0029 class THttpServer : public THttpTransport {
0030 public:
0031 THttpServer(std::shared_ptr<TTransport> transport, std::shared_ptr<TConfiguration> config = nullptr);
0032
0033 ~THttpServer() override;
0034
0035 void flush() override;
0036
0037 protected:
0038 virtual std::string getHeader(uint32_t len);
0039 void readHeaders();
0040 void parseHeader(char* header) override;
0041 bool parseStatusLine(char* status) override;
0042 std::string getTimeRFC1123();
0043 };
0044
0045
0046
0047
0048 class THttpServerTransportFactory : public TTransportFactory {
0049 public:
0050 THttpServerTransportFactory() = default;
0051
0052 ~THttpServerTransportFactory() override = default;
0053
0054
0055
0056
0057 std::shared_ptr<TTransport> getTransport(std::shared_ptr<TTransport> trans) override {
0058 return std::shared_ptr<TTransport>(new THttpServer(trans));
0059 }
0060 };
0061 }
0062 }
0063 }
0064
0065 #endif