summaryrefslogtreecommitdiff
path: root/examples/C++NPv1/Reactive_Logging_Server_Ex.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/C++NPv1/Reactive_Logging_Server_Ex.h')
-rw-r--r--examples/C++NPv1/Reactive_Logging_Server_Ex.h95
1 files changed, 0 insertions, 95 deletions
diff --git a/examples/C++NPv1/Reactive_Logging_Server_Ex.h b/examples/C++NPv1/Reactive_Logging_Server_Ex.h
deleted file mode 100644
index c839b2453fc..00000000000
--- a/examples/C++NPv1/Reactive_Logging_Server_Ex.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-** $Id$
-**
-** Copyright 2001 Addison Wesley. All Rights Reserved.
-*/
-
-#ifndef _REACTIVE_LOGGING_SERVER_EX_H
-#define _REACTIVE_LOGGING_SERVER_EX_H
-
-#include "ace/ACE.h"
-#include "ace/FILE_IO.h"
-#include "ace/Handle_Set.h"
-#include "ace/Hash_Map_Manager.h"
-#include "ace/INET_Addr.h"
-#include "ace/Log_Record.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Stream.h"
-#include "Logging_Server.h"
-#include "Logging_Handler.h"
-#include "ace/Null_Mutex.h"
-#include "ace/os_include/os_fcntl.h"
-
-typedef ACE_Hash_Map_Manager<ACE_HANDLE,
- ACE_FILE_IO *,
- ACE_Null_Mutex> LOG_MAP;
-
-class Reactive_Logging_Server_Ex : public Logging_Server
-{
-protected:
- // Associate an active handle to an <ACE_FILE_IO> pointer.
- LOG_MAP log_map_;
-
- // Keep track of acceptor socket and all the connected
- // stream socket handles.
- ACE_Handle_Set master_handle_set_;
-
- // Keep track of read handles marked as active by <select>.
- ACE_Handle_Set active_read_handles_;
-
- virtual int open (u_short port) {
- Logging_Server::open (port);
- master_handle_set_.set_bit (acceptor ().get_handle ());
- acceptor ().enable (ACE_NONBLOCK);
- return 0;
- }
-
- virtual int wait_for_multiple_events () {
- active_read_handles_ = master_handle_set_;
- int width = (int) active_read_handles_.max_set () + 1;
-
- return ACE::select (width, active_read_handles_);
- }
-
- virtual int handle_connections () {
- ACE_SOCK_Stream logging_peer;
-
- while (acceptor ().accept (logging_peer) != -1) {
- ACE_FILE_IO *log_file = new ACE_FILE_IO;
-
- // Use the client's hostname as the logfile name.
- make_log_file (*log_file, &logging_peer);
-
- // Add the new <logging_peer>'s handle to the map and
- // to the set of handles we <select> for input.
- log_map_.bind (logging_peer.get_handle (), log_file);
- master_handle_set_.set_bit (logging_peer.get_handle ());
- }
- active_read_handles_.clr_bit (acceptor ().get_handle ());
- return 0;
- }
-
- virtual int handle_data (ACE_SOCK_Stream *) {
- ACE_Handle_Set_Iterator peer_iterator (active_read_handles_);
-
- for (ACE_HANDLE handle;
- (handle = peer_iterator ()) != ACE_INVALID_HANDLE;
- ) {
- ACE_FILE_IO *log_file = 0;
- log_map_.find (handle, log_file);
- Logging_Handler logging_handler (*log_file, handle);
-
- if (logging_handler.log_record () == -1) {
- logging_handler.close ();
- master_handle_set_.clr_bit (handle);
- log_map_.unbind (handle);
- log_file->close ();
- delete log_file;
- }
- }
- return 0;
- }
-
-};
-
-#endif /* _REACTIVE_LOGGING_SERVER_EX_H */