@@ -70,32 +70,6 @@ namespace http {
7070struct ip_representation ;
7171};
7272
73- /* *
74- * Delegate class used to wrap callbacks dedicated to logging.
75- **/
76- class logging_delegate
77- {
78- public:
79- /* *
80- * Delegate constructor.
81- **/
82- logging_delegate ();
83- /* *
84- * Destructor of the class
85- **/
86- virtual ~logging_delegate ();
87- /* *
88- * Method used to log access to the webserver.
89- * @param s string to log
90- **/
91- virtual void log_access (const std::string& s) const ;
92- /* *
93- * Method used to log errors on the webserver.
94- * @param s string to log
95- **/
96- virtual void log_error (const std::string& s) const ;
97- };
98-
9973template <typename CHILD>
10074class event_supplier
10175{
@@ -135,7 +109,6 @@ class create_webserver;
135109
136110typedef bool (*validator_ptr)(const std::string&);
137111typedef void (*unescaper_ptr)(char *);
138-
139112typedef void (*supply_events_ptr)(
140113 fd_set*,
141114 fd_set*,
@@ -144,8 +117,9 @@ typedef void(*supply_events_ptr)(
144117 );
145118
146119typedef long (*get_timeout_ptr)();
147-
148120typedef void (*dispatch_events_ptr)();
121+ typedef void (*log_access_ptr)(const std::string&);
122+ typedef void (*log_error_ptr)(const std::string&);
149123
150124struct event_tuple ;
151125
@@ -184,7 +158,8 @@ class webserver
184158 int memory_limit = 0 ,
185159 int connection_timeout = DEFAULT_WS_TIMEOUT,
186160 int per_IP_connection_limit = 0 ,
187- logging_delegate* log_delegate = 0x0 ,
161+ log_access_ptr log_access = 0x0 ,
162+ log_error_ptr log_error = 0x0 ,
188163 validator_ptr validator = 0x0 ,
189164 unescaper_ptr unescaper = 0x0 ,
190165 const struct sockaddr * bind_address = 0x0 ,
@@ -266,9 +241,25 @@ class webserver
266241 bool is_valid (const std::string& key);
267242 void clean_cache ();
268243
269- const logging_delegate* get_logging_delegate () const ;
244+ const log_access_ptr get_access_logger () const
245+ {
246+ return this ->log_access ;
247+ }
248+
249+ const log_error_ptr get_error_logger () const
250+ {
251+ return this ->log_error ;
252+ }
270253
271- void set_logging_delegate (logging_delegate* log_delegate, bool delete_old = false );
254+ void set_access_logger (log_access_ptr log_access)
255+ {
256+ this ->log_access = log_access;
257+ }
258+
259+ void set_error_logger (log_error_ptr log_error)
260+ {
261+ this ->log_error = log_error;
262+ }
272263
273264 const validator_ptr get_request_validator () const
274265 {
@@ -308,7 +299,8 @@ class webserver
308299 int memory_limit;
309300 int connection_timeout;
310301 int per_IP_connection_limit;
311- logging_delegate* log_delegate;
302+ log_access_ptr log_access;
303+ log_error_ptr log_error;
312304 validator_ptr validator;
313305 unescaper_ptr unescaper;
314306 const struct sockaddr * bind_address;
@@ -471,7 +463,8 @@ class create_webserver
471463 _memory_limit (0 ),
472464 _connection_timeout (DEFAULT_WS_TIMEOUT),
473465 _per_IP_connection_limit (0 ),
474- _log_delegate (0x0 ),
466+ _log_access (0x0 ),
467+ _log_error (0x0 ),
475468 _validator (0x0 ),
476469 _unescaper (0x0 ),
477470 _bind_address (0x0 ),
@@ -510,7 +503,8 @@ class create_webserver
510503 _memory_limit(0 ),
511504 _connection_timeout(DEFAULT_WS_TIMEOUT),
512505 _per_IP_connection_limit(0 ),
513- _log_delegate(0x0 ),
506+ _log_access(0x0 ),
507+ _log_error(0x0 ),
514508 _validator(0x0 ),
515509 _unescaper(0x0 ),
516510 _bind_address(0x0 ),
@@ -548,7 +542,8 @@ class create_webserver
548542 create_webserver& memory_limit (int memory_limit) { _memory_limit = memory_limit; return *this ; }
549543 create_webserver& connection_timeout (int connection_timeout) { _connection_timeout = connection_timeout; return *this ; }
550544 create_webserver& per_IP_connection_limit (int per_IP_connection_limit) { _per_IP_connection_limit = per_IP_connection_limit; return *this ; }
551- create_webserver& log_delegate (logging_delegate* log_delegate) { _log_delegate = log_delegate; return *this ; }
545+ create_webserver& log_access (log_access_ptr log_access) { _log_access = log_access; return *this ; }
546+ create_webserver& log_error (log_error_ptr log_error) { _log_error = log_error; return *this ; }
552547 create_webserver& validator (validator_ptr validator) { _validator = validator; return *this ; }
553548 create_webserver& unescaper (unescaper_ptr unescaper) { _unescaper = unescaper; return *this ; }
554549 create_webserver& bind_address (const struct sockaddr * bind_address) { _bind_address = bind_address; return *this ; }
@@ -596,7 +591,8 @@ class create_webserver
596591 int _memory_limit;
597592 int _connection_timeout;
598593 int _per_IP_connection_limit;
599- logging_delegate* _log_delegate;
594+ log_access_ptr _log_access;
595+ log_error_ptr _log_error;
600596 validator_ptr _validator;
601597 unescaper_ptr _unescaper;
602598 const struct sockaddr * _bind_address;
0 commit comments