18 #ifndef TENSORFLOW_SERVING_UTIL_NET_HTTP_SERVER_INTERNAL_EVHTTP_REQUEST_H_ 
   19 #define TENSORFLOW_SERVING_UTIL_NET_HTTP_SERVER_INTERNAL_EVHTTP_REQUEST_H_ 
   25 #include "tensorflow_serving/util/net_http/server/internal/server_support.h" 
   26 #include "tensorflow_serving/util/net_http/server/public/httpserver_interface.h" 
   27 #include "tensorflow_serving/util/net_http/server/public/server_request_interface.h" 
   30 struct evhttp_request;
 
   34 namespace tensorflow {
 
   48   evhttp_request* request;  
 
   52   const char* uri = 
nullptr;          
 
   53   evhttp_uri* decoded_uri = 
nullptr;  
 
   57   const char* path = 
nullptr;  
 
   58   std::string path_and_query;
 
   60   evkeyvalq* headers = 
nullptr;  
 
   76   absl::string_view uri_path() 
const override;
 
   78   absl::string_view http_method() 
const override;
 
   80   void WriteResponseBytes(
const char* data, int64_t size) 
override;
 
   82   void WriteResponseString(absl::string_view data) 
override;
 
   84   std::unique_ptr<char[], ServerRequestInterface::BlockDeleter>
 
   85   ReadRequestBytes(int64_t* size) 
override;
 
   87   absl::string_view GetRequestHeader(absl::string_view header) 
const override;
 
   89   std::vector<absl::string_view> request_headers() 
const override;
 
   91   void OverwriteResponseHeader(absl::string_view header,
 
   92                                absl::string_view value) 
override;
 
   93   void AppendResponseHeader(absl::string_view header,
 
   94                             absl::string_view value) 
override;
 
   96   void PartialReplyWithStatus(HTTPStatusCode status) 
override;
 
   97   void PartialReply() 
override;
 
   99   CallbackStatus PartialReplyWithFlushCallback(
 
  100       std::function<
void()> callback) 
override;
 
  102   void ReplyWithStatus(HTTPStatusCode status) 
override;
 
  103   void Reply() 
override;
 
  105   void Abort() 
override;
 
  112     this->handler_options_ = &handler_options;
 
  116   void EvSendReply(HTTPStatusCode status);
 
  119   bool NeedUncompressGzipContent();
 
  122   void UncompressGzipBody(
void* input, 
size_t input_size,
 
  123                           void** uncompressed_input,
 
  124                           size_t* uncompressed_input_size);
 
  126   std::unique_ptr<char[], ServerRequestInterface::BlockDeleter>
 
  127   ReadRequestGzipBytes(evbuffer* input_buf, int64_t* size);
 
  133   std::unique_ptr<ParsedEvRequest> parsed_request_;
 
  135   evbuffer* output_buf;