18 #ifndef TENSORFLOW_SERVING_UTIL_NET_HTTP_SERVER_PUBLIC_HTTPSERVER_INTERFACE_H_
19 #define TENSORFLOW_SERVING_UTIL_NET_HTTP_SERVER_PUBLIC_HTTPSERVER_INTERFACE_H_
27 #include "absl/strings/string_view.h"
28 #include "absl/time/time.h"
30 #include "tensorflow_serving/util/net_http/server/public/server_request_interface.h"
32 namespace tensorflow {
47 virtual void Schedule(std::function<
void()> fn) = 0;
60 void AddPort(
int port) {
62 ports_.emplace_back(port);
67 void SetExecutor(std::unique_ptr<EventExecutor> executor) {
68 executor_ = std::move(executor);
71 const std::vector<int>& ports()
const {
return ports_; }
76 std::vector<int> ports_;
77 std::unique_ptr<EventExecutor> executor_;
91 auto_uncompress_max_size_ = size;
97 inline int64_t auto_uncompress_max_size()
const {
98 return auto_uncompress_max_size_;
105 bool should_uncompress) {
106 auto_uncompress_input_ = should_uncompress;
110 inline bool auto_uncompress_input()
const {
return auto_uncompress_input_; }
116 bool auto_uncompress_input_ =
true;
118 int64_t auto_uncompress_max_size_ = 0;
151 virtual bool StartAcceptingRequests() = 0;
154 virtual bool is_accepting_requests()
const = 0;
157 virtual int listen_port()
const = 0;
160 virtual void Terminate() = 0;
163 virtual bool is_terminating()
const = 0;
167 virtual void WaitForTermination() = 0;
172 virtual bool WaitForTerminationWithTimeout(absl::Duration timeout) = 0;
180 virtual void RegisterRequestHandler(absl::string_view uri,
181 RequestHandler handler,
193 virtual void RegisterRequestDispatcher(