summaryrefslogtreecommitdiff
path: root/ACE/TAO/examples/Logging/Logger_i.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/examples/Logging/Logger_i.h')
-rw-r--r--ACE/TAO/examples/Logging/Logger_i.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/ACE/TAO/examples/Logging/Logger_i.h b/ACE/TAO/examples/Logging/Logger_i.h
new file mode 100644
index 00000000000..d5a5a36cc5e
--- /dev/null
+++ b/ACE/TAO/examples/Logging/Logger_i.h
@@ -0,0 +1,100 @@
+// -*- C++ -*-
+
+// ============================================================================
+//
+// $Id$
+//
+// = LIBRARY
+// TAO services
+//
+// = FILENAME
+// Logger_i.h
+//
+// = AUTHOR
+// Marina Spivak <marina@cs.wustl.edu>,
+// Sergio Flores-Gaitan <sergio@cs.wustl.edu>, and
+// Matthew Braun <mjb2@cec.wustl.edu>
+//
+// ============================================================================
+
+#ifndef TAO_ORBSVCS_LOGGER_I_H
+#define TAO_ORBSVCS_LOGGER_I_H
+
+#include "LoggerS.h"
+#include "ace/Hash_Map_Manager.h"
+#include "ace/SString.h"
+#include "ace/Null_Mutex.h"
+
+class Logger_i : public virtual POA_Logger
+{
+ // = TITLE
+ // Used to log messages to a logging server.
+public:
+ Logger_i (const char* name);
+ // constructor
+
+ virtual ~Logger_i (void);
+ // destructor
+
+ virtual void log (const Logger::Log_Record &log_rec);
+ // Writes the <log_rec> to the standard output.
+
+ virtual void logv (const Logger::Log_Record &log_rec,
+ Logger::Verbosity_Level verbosity);
+ // Writes the <log_rec> to the standard output with the given
+ // verbosity level
+
+ virtual void log_twoway (const Logger::Log_Record &log_rec);
+ // Writes the <log_rec> to the standard output.
+
+ virtual void logv_twoway (const Logger::Log_Record &log_rec,
+ Logger::Verbosity_Level verbosity);
+ // Writes the <log_rec> to the standard output with the given
+ // verbosity level
+
+ void verbosity (Logger::Verbosity_Level level);
+ // Sets the verbosity level. Valid values are {VERBOSE, VERBOSE_LITE
+ // and SILENT}. Defaults to VERBOSE
+
+private:
+ ACE_Log_Priority priority_conversion (Logger::Log_Priority priority);
+ // Converts the IDL defined <Log_Priority> enum type to the
+ // <ACE_Log_Priority> enum type.
+
+ u_long verbosity_conversion (Logger::Verbosity_Level verbosity_level);
+ // Converts the IDL defined <Verbosity_Level> enum type to a u_long,
+ // which is used by the <ACE_Log_Record> to distinguish the
+ // level of verbosity.
+
+ char *name_;
+ // Logger identification.
+
+ Logger::Verbosity_Level verbosity_level_;
+ // Keeps track of what our current verbosity level is. This can be
+ // reset by the client to a new value at any point.
+};
+
+class Logger_Factory_i : public virtual POA_Logger_Factory
+{
+ // = TITLE
+ // Create a <Logger> of type <name>.
+public:
+ Logger_Factory_i (void);
+ // Constructor.
+
+ ~Logger_Factory_i (void);
+ // Destructor.
+
+ virtual Logger_ptr make_logger (const char *name);
+ // This function returns a logger with name <name>. If <name> is
+ // unique, a new logger is created; else, a previously created
+ // logger of name <name> is returned
+
+private:
+ ACE_Hash_Map_Manager<ACE_CString, Logger_i *, ACE_Null_Mutex> hash_map_;
+ // Calls to <make_logger> will create a new instance of <Logger> and
+ // bind into the hash map manager if <name> is unique, else it will
+ // return a previously bound entry.
+};
+
+#endif /* TAO_ORBSVCS_LOGGER_I_H */