diff options
| author | Paul Buetow <paul@buetow.org> | 2013-04-06 13:14:46 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2013-04-06 13:14:46 +0200 |
| commit | 56187184e11b085b82584d3b088c62f427aae83c (patch) | |
| tree | 8f8387e750a62581966900a42dade265d34c3146 /src/sock/sock.h | |
| parent | d3a0d11f93c1ebe38b4301c9bef952bfd24d01a1 (diff) | |
tagging yhttpd-0.7.1yhttpd-0.7.1
Diffstat (limited to 'src/sock/sock.h')
| -rwxr-xr-x | src/sock/sock.h | 108 |
1 files changed, 42 insertions, 66 deletions
diff --git a/src/sock/sock.h b/src/sock/sock.h index 264d9d1..079dfd8 100755 --- a/src/sock/sock.h +++ b/src/sock/sock.h @@ -3,91 +3,67 @@ #ifndef SOCK_H #define SOCK_H + #include <queue> #include <stdio.h> #include <stdlib.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> - -#include "../reqp.h" -#include "../chat/user.h" - #include "../thrd/pool.h" -#include "../maps/shashmap.h" - -#ifdef LOGGING +#include "../thrd/thrd.h" +#include "../reqp.h" #include "../logd.h" -#endif using namespace std; -class sock : public shashmap - < string, uint32_t, self_hash<uint32_t>, equals_allocator<uint32_t> > +class sock { -protected: -#ifdef LOGGING +private: + // total number of server requests. + unsigned long long int i_req; - logd *log_daemon; // the log daemon -#endif - - int i_server_sock; - int i_server_port; + bool b_run; // true while socket manager is running. + reqp* req_parser; // parses the http requests from clients. + pool* thrd_pool; // the thread pool. + logd* log_daemon; // the log daemon + char* c_buffer; // char buffer! - // total number of server requests. - unsigned long long i_req; - bool b_run; // true while socket manager is running. - reqp *req_parser; // parses the http requests from clients. - char *c_buffer; // char buffer! - pthread_mutex_t mut_hits; + int i_threads; // total amount of threads inside the thread pool. + pthread_mutex_t mut_threads; + pthread_mutex_t mut_hits; - static string inet_ntoa_callback(void* p_void); public: - // creates a server socket. - int read_http(socketcontainer *p_sock, char *c_zbuf, int i_buflen, int &i_payloadoffset); - string read_http_line(socketcontainer *p_sock); - - // small inline methods: - bool get_server_() const - { - return b_run; - } - // small inline methods: - bool get_run() const - { - return b_run; - } - bool set_run( bool b_run ) - { - this->b_run = b_run; - } - - sock(); - - int read_write( socketcontainer* p_sock ); - - int start(); - void clean_ipcache(); - - // the chat stream there all the chat messages will sent through. - void chat_stream( socketcontainer* p_sock, user* p_user, map<string,string> &map_params ); //<< - virtual int _send(socketcontainer *p_sock, const char *sz, int len); - virtual int _read(socketcontainer *p_sock, char *sz, int len); - virtual int _close(socketcontainer *p_sock); - virtual void _main_loop_init(); -#ifdef OPENSSL - - virtual bool _main_loop_do_ssl_stuff(int& i_new_sock); -#endif - - virtual socketcontainer* _create_container(int& i_sock); - virtual int _make_server_socket(int i_port); - + // creates a server socket. + int make_server_socket( int port ); + + // small inline methods: + bool get_run() const + { + return b_run; + } + bool set_run( bool b_run ) + { + this->b_run = b_run; + } + + // public methods. + explicit sock( ); // simple constructor. + ~sock( ); + virtual int read_write( thrd* p_thrd, int filedes ); + virtual int start(); + + // the chat stream there all the chat messages will sent through. + + void increase_num_threads(); + void decrease_num_threads(); #ifdef NCURSES - void print_server_port(); - void print_hits(); + + void print_threads(); + void print_hits(); #endif }; + #endif |
