summaryrefslogtreecommitdiff
path: root/ACE/examples/C++NPv1/Logging_Handler.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/examples/C++NPv1/Logging_Handler.h')
-rw-r--r--ACE/examples/C++NPv1/Logging_Handler.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/ACE/examples/C++NPv1/Logging_Handler.h b/ACE/examples/C++NPv1/Logging_Handler.h
new file mode 100644
index 00000000000..6e0004212b3
--- /dev/null
+++ b/ACE/examples/C++NPv1/Logging_Handler.h
@@ -0,0 +1,55 @@
+/*
+** $Id$
+**
+** Copyright 2001 Addison Wesley. All Rights Reserved.
+*/
+
+#ifndef _LOGGING_HANDLER_H
+#define _LOGGING_HANDLER_H
+
+#include "ace/FILE_IO.h"
+#include "ace/SOCK_Stream.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+class ACE_Message_Block;
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+class Logging_Handler
+{
+protected:
+ ACE_FILE_IO &log_file_; // Reference to a log file.
+
+ ACE_SOCK_Stream logging_peer_; // Connected to the client.
+
+public:
+ // Initialization and termination methods.
+ Logging_Handler (ACE_FILE_IO &log_file): log_file_ (log_file) {}
+ Logging_Handler (ACE_FILE_IO &log_file,
+ ACE_HANDLE handle): log_file_ (log_file)
+ { logging_peer_.set_handle (handle); }
+ Logging_Handler (ACE_FILE_IO &log_file,
+ const ACE_SOCK_Stream &logging_peer)
+ : log_file_ (log_file), logging_peer_ (logging_peer) {}
+ int close () { return logging_peer_.close (); }
+
+ // Receive one log record from a connected client. Returns
+ // length of record on success and <mblk> contains the
+ // hostname, <mblk->cont()> contains the log record header
+ // (the byte order and the length) and the data. Returns -1 on
+ // failure or connection close.
+ int recv_log_record (ACE_Message_Block *&log_record);
+
+ // Write one record to the log file. The <mblk> contains the
+ // hostname and the <mblk->cont> contains the log record.
+ // Returns length of record written on success, or -1 on failure.
+ int write_log_record (ACE_Message_Block *log_record);
+
+ // Log one record by calling <recv_log_record> and
+ // <write_log_record>. Returns 0 on success and -1 on failure.
+ int log_record ();
+
+ // Accessor method.
+ ACE_SOCK_Stream &peer () { return logging_peer_; }
+};
+
+#endif /* _LOGGING_HANDLER_H */