summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/server/server_kernel.h
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/server/server_kernel.h')
-rw-r--r--ml/dlib/dlib/server/server_kernel.h234
1 files changed, 0 insertions, 234 deletions
diff --git a/ml/dlib/dlib/server/server_kernel.h b/ml/dlib/dlib/server/server_kernel.h
deleted file mode 100644
index 4232ff343..000000000
--- a/ml/dlib/dlib/server/server_kernel.h
+++ /dev/null
@@ -1,234 +0,0 @@
-// Copyright (C) 2003 Davis E. King (davis@dlib.net)
-// License: Boost Software License See LICENSE.txt for the full license.
-#ifndef DLIB_SERVER_KERNEL_1_
-#define DLIB_SERVER_KERNEL_1_
-
-#include "server_kernel_abstract.h"
-
-#include <memory>
-#include <string>
-
-#include "../threads.h"
-#include "../sockets.h"
-#include "../algs.h"
-#include "../set.h"
-#include "../logger.h"
-
-
-namespace dlib
-{
-
- // These forward declarations are here so we can use them in the typedefs in the server
- // class. The reason for this is for backwards compatibility with previous versions of
- // dlib.
- class server_http;
- class server_iostream;
-
- class server
- {
-
-
- /*!
- INITIAL VALUE
- listening_port == 0
- listening_ip == ""
- running == false
- shutting_down == false
- cons.size() == 0
- listening_port_mutex == a mutex
- listening_ip_mutex == a mutex
- running_mutex == a mutex
- running_signaler == a signaler associated with running_mutex
- shutting_down_mutex == a mutex
- cons_mutex == a mutex
- thread_count == 0
- thread_count_mutex == a mutex
- thread_count_signaler == a signaler associated with thread_count_mutex
- thread_count_zero == a signaler associated with thread_count_mutex
- max_connections == 1000
- max_connections_mutex == a mutex for max_connections and graceful_close_timeout
- graceful_close_timeout == 500
-
- CONVENTION
- listening_port == get_listening_port()
- listening_ip == get_listening_ip()
- running == is_running()
- shutting_down == true while clear() is running. this
- bool is used to tell the thread blocked on
- accept that it should terminate
- cons == a set containing all open connections
- listening_port_mutex == a mutex for listening_port
- listening_ip_mutex == a mutex for listening_ip
- running_mutex == a mutex for running
- running_signaler == a signaler for running and
- is associated with running_mutex. it is
- used to signal when running is false
- shutting_down_mutex == a mutex for shutting_down
- cons_mutex == a mutex for cons
- thread_count == the number of threads currently running
- thread_count_mutex == a mutex for thread_count
- thread_count_signaler == a signaler for thread_count and
- is associated with thread_count_mutex. it
- is used to signal when thread_count is
- decremented
- thread_count_zero == a signaler for thread_count and
- is associated with thread_count_mutex. it
- is used to signal when thread_count becomes
- zero
- max_connections == get_max_connections()
- max_connections_mutex == a mutex for max_connections
- !*/
-
-
- typedef set<connection*>::kernel_1a set_of_connections;
-
- // this structure is used to pass parameters to new threads
- struct param
- {
- param (
- server& server_,
- connection& new_connection_,
- unsigned long graceful_close_timeout_
- ) :
- the_server(server_),
- new_connection(new_connection_),
- graceful_close_timeout(graceful_close_timeout_)
- {}
-
- server& the_server;
- connection& new_connection;
- unsigned long graceful_close_timeout;
- };
-
-
-
- public:
-
- // These typedefs are here for backward compatibility with previous versions of dlib
- typedef server kernel_1a;
- typedef server kernel_1a_c;
- typedef server_iostream iostream_1a;
- typedef server_iostream iostream_1a_c;
- typedef server_http http_1a;
- typedef server_http http_1a_c;
-
- server(
- );
-
- virtual ~server(
- );
-
- void clear(
- );
-
- void start (
- );
-
- bool is_running (
- ) const;
-
- const std::string get_listening_ip (
- ) const;
-
- int get_listening_port (
- ) const;
-
- void set_listening_port (
- int port
- );
-
- void set_listening_ip (
- const std::string& ip
- );
-
- void set_max_connections (
- int max
- );
-
- int get_max_connections (
- ) const;
-
- void start_async (
- );
-
- void set_graceful_close_timeout (
- unsigned long timeout
- );
-
- unsigned long get_graceful_close_timeout (
- ) const;
-
- private:
-
- void start_async_helper (
- );
-
- void start_accepting_connections (
- );
-
- void open_listening_socket (
- );
-
- virtual void on_connect (
- connection& new_connection
- )=0;
-
- virtual void on_listening_port_assigned (
- ) {}
-
- const static logger sdlog;
-
- static void service_connection(
- void* item
- );
- /*!
- requires
- item is a pointer to a param struct
- ensures
- services the new connection
- will take care of closing the connection and
- adding the connection to cons when it first starts and
- remove the connection from cons and signal that it has
- done so when it ends
- !*/
-
- // data members
- int listening_port;
- std::string listening_ip;
- bool running;
- bool shutting_down;
- set_of_connections cons;
- mutex listening_port_mutex;
- mutex listening_ip_mutex;
- rmutex running_mutex;
- rsignaler running_signaler;
- mutex shutting_down_mutex;
- mutex cons_mutex;
- int thread_count;
- mutex thread_count_mutex;
- signaler thread_count_signaler;
- int max_connections;
- mutex max_connections_mutex;
- signaler thread_count_zero;
- std::unique_ptr<thread_function> async_start_thread;
- std::unique_ptr<listener> sock;
- unsigned long graceful_close_timeout;
-
-
- // restricted functions
- server(server&);
- server& operator= (
- server&
- );
- };
-
-// ----------------------------------------------------------------------------------------
-
-}
-
-#ifdef NO_MAKEFILE
-#include "server_kernel.cpp"
-#endif
-
-#endif // DLIB_SERVER_KERNEL_1_
-