summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormjb2 <mjb2@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-07-30 18:30:39 +0000
committermjb2 <mjb2@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-07-30 18:30:39 +0000
commit8d838800e1c25e98c2ffa0d50775c953868f1af1 (patch)
treeb425cccca1ff6f13d7d96382cfac8cf8cfa9980c
parent5b17ef28ed9d22d12c21c8fe2b1a2f0dabb43522 (diff)
downloadATCD-8d838800e1c25e98c2ffa0d50775c953868f1af1.tar.gz
See Thu Jul 30 13:07:00 1998 Matthew J Braun <mjb2@cec.wustl.edu>
-rw-r--r--TAO/ChangeLog-98c26
-rw-r--r--TAO/orbsvcs/Logging_Service/Logging_Service.cpp41
-rw-r--r--TAO/orbsvcs/Logging_Service/Logging_Service_i.cpp134
-rw-r--r--TAO/orbsvcs/Logging_Service/Logging_Service_i.h97
-rw-r--r--TAO/orbsvcs/Logging_Service/Makefile544
-rw-r--r--TAO/orbsvcs/tests/Logger/Logging_Test.cpp19
-rw-r--r--TAO/orbsvcs/tests/Logger/Logging_Test_i.cpp289
-rw-r--r--TAO/orbsvcs/tests/Logger/Logging_Test_i.h99
-rw-r--r--TAO/orbsvcs/tests/Logger/Makefile20
9 files changed, 1256 insertions, 13 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c
index 812a45636df..8c68245790a 100644
--- a/TAO/ChangeLog-98c
+++ b/TAO/ChangeLog-98c
@@ -1,3 +1,29 @@
+Thu Jul 30 13:07:00 1998 Matthew J Braun <mjb2@cec.wustl.edu>
+
+ * Logging_service/Makefile: New file. Makefile for the Logging
+ service.
+
+ * tests/Logger/Makefile: Eliminated server compilation. Changed
+ client name to Logging_Test
+
+ * Logging_Service/Logging_Service_i.{h,cpp}: New files, renamed
+ from tests/Logger/server_i.{h,cpp}. Migrated from a test to a
+ service. Added ability to name the factory from the command line.
+
+ * tests/Logger/Logging_Test_i.cpp: New file, renamed from
+ tests/Logger/client_i.cpp. Altered includes to reflect transition
+ of server from test server to actual service.
+
+ * tests/Logger/Logging_Test_i.h: New file, renamed from
+ tests/Logger/client_i.h. Added multiple include protection.
+
+ * tests/Logger/Logging_Test.cpp: New file, renamed from
+ tests/Logger/server.cpp. Removed some debugging code.
+
+ * tests/Logger/Logging_Test.cpp: New file, renamed from
+ tests/Logger/client.cpp. Edited to reflect changed filenames.
+
+
Thu Jul 30 00:39:10 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* orbsvcs/tests/Concurrency/{CC_command.tab,lex.CC_command}.cpp.diff:
diff --git a/TAO/orbsvcs/Logging_Service/Logging_Service.cpp b/TAO/orbsvcs/Logging_Service/Logging_Service.cpp
new file mode 100644
index 00000000000..8e470cceb49
--- /dev/null
+++ b/TAO/orbsvcs/Logging_Service/Logging_Service.cpp
@@ -0,0 +1,41 @@
+// $Id$
+
+#include "Logging_Service_i.h"
+
+int
+main (int argc, char *argv[])
+{
+ // Set TAO_debug_level to 0 to ensure silent running unless
+ // debugging is explicitly invoked
+ TAO_debug_level = 0;
+
+ Logger_Server log_server;
+
+ TAO_TRY
+ {
+ if (log_server.init (argc, argv, TAO_TRY_ENV) == -1)
+ return 1;
+ else
+ {
+ log_server.run (TAO_TRY_ENV);
+ TAO_CHECK_ENV;
+ }
+ }
+ TAO_CATCH (CORBA::SystemException, sysex)
+ {
+ ACE_UNUSED_ARG (sysex);
+ TAO_TRY_ENV.print_exception ("System Exception");
+ return -1;
+ }
+ TAO_CATCH (CORBA::UserException, userex)
+ {
+ ACE_UNUSED_ARG (userex);
+ TAO_TRY_ENV.print_exception ("User Exception");
+ return -1;
+ }
+ TAO_ENDTRY;
+
+ return 0;
+}
+
+
diff --git a/TAO/orbsvcs/Logging_Service/Logging_Service_i.cpp b/TAO/orbsvcs/Logging_Service/Logging_Service_i.cpp
new file mode 100644
index 00000000000..f53c099f88a
--- /dev/null
+++ b/TAO/orbsvcs/Logging_Service/Logging_Service_i.cpp
@@ -0,0 +1,134 @@
+// $Id$
+
+#include "Logging_Service_i.h"
+
+Logger_Server::Logger_Server (void)
+ :service_name_ ("LoggingService")
+{
+ // Do nothing
+}
+
+int
+Logger_Server::parse_args (void)
+{
+ ACE_Get_Opt get_opts (argc_, argv_, "dn:");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'd': // debug flag.
+ TAO_debug_level++;
+ break;
+ case 'n': // Set factory name to cmnd line arg
+ service_name_ = get_opts.optarg;
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s"
+ " [-d]"
+ " [-n] service-name"
+ "\n",
+ argv_ [0]),
+ -1);
+ }
+
+ // Indicates successful parsing of command line.
+ return 0;
+}
+
+int
+Logger_Server::init (int argc,
+ char *argv[],
+ CORBA::Environment &env)
+{
+ this->argc_ = argc;
+ this->argv_ = argv;
+
+ // Call the init of <TAO_ORB_Manager> to initialize the ORB and
+ // create a child POA under the root POA.
+ if (this->orb_manager_.init_child_poa (argc,
+ argv,
+ "child_poa",
+ env) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "%p\n",
+ "init_child_poa"),
+ -1);
+
+ TAO_CHECK_ENV_RETURN (env,-1);
+
+ // Parse the command line arguments.
+ if (this->parse_args () != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "%p\n",
+ "parse_args"),
+ -1);
+
+ // Activate the logger_factory.
+ CORBA::String_var str =
+ this->orb_manager_.activate_under_child_poa ("logger_factory",
+ &this->factory_impl_,
+ env);
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "The IOR is: <%s>\n",
+ str.in ()));
+
+ // Initialize the naming service
+ if (this->init_naming_service (env) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "%p\n",
+ "init_naming_service"),
+ -1);
+ else
+ return 0;
+}
+
+
+// Initialisation of Naming Service and register IDL_Logger Context
+// and logger_factory object.
+
+int
+Logger_Server::init_naming_service (CORBA::Environment& env)
+{
+ // Get pointers to the ORB and child POA
+ CORBA::ORB_var orb = this->orb_manager_.orb ();
+ PortableServer::POA_var child_poa = this->orb_manager_.child_poa ();
+
+ // Initialize the naming service
+ if (this->my_name_server_.init (orb.in (),
+ child_poa.in ()) == -1)
+ return -1;
+
+ // Create an instance of the Logger_Factory
+ Logger_Factory_var factory = this->factory_impl_._this (env);
+ TAO_CHECK_ENV_RETURN (env, -1);
+
+ //Register the logger_factory
+ CosNaming::Name factory_name (1);
+ factory_name.length (1);
+ factory_name[0].id = CORBA::string_dup ("Logger_Factory");
+ this->my_name_server_->bind (factory_name,
+ factory.in (),
+ env);
+ TAO_CHECK_ENV_RETURN (env,-1);
+
+ return 0;
+}
+
+int
+Logger_Server::run (CORBA::Environment& env)
+{
+ if (this->orb_manager_.run (env) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Logger_Server::run"),
+ -1);
+ return 0;
+}
+
+Logger_Server::~Logger_Server (void)
+{
+ // Do nothing
+}
diff --git a/TAO/orbsvcs/Logging_Service/Logging_Service_i.h b/TAO/orbsvcs/Logging_Service/Logging_Service_i.h
new file mode 100644
index 00000000000..653483fe6a9
--- /dev/null
+++ b/TAO/orbsvcs/Logging_Service/Logging_Service_i.h
@@ -0,0 +1,97 @@
+// -*- c++ -*-
+// $Id$
+
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/orbsvcs/Logging_Service/
+//
+// = FILENAME
+// Logging_Service_i.h
+//
+// = DESCRIPTION
+// This class implements a simple "logger" CORBA server for the Logging
+// service using skeletons generated by the TAO ORB IDL compiler.
+//
+// = AUTHORS
+// Nagarajan Surendran <naga@cs.wustl.edu>
+// Matthew Braun <mjb2@cec.wustl.edu>
+//
+// ============================================================================
+
+#if !defined (_LOG_SERVER_H)
+#define _LOG_SERVER_H
+
+#include "ace/Get_Opt.h"
+#include "ace/Log_Msg.h"
+#include "tao/TAO.h"
+#include "orbsvcs/CosNamingC.h"
+#include "orbsvcs/Naming/Naming_Utils.h"
+#include "orbsvcs/Log/Logger_i.h"
+#include "orbsvcs/LoggerS.h"
+
+class Logger_Server
+{
+ // = TITLE
+ // Defines a Logger_Server class that implements the functionality
+ // of a server process as an object.
+ //
+ // = DESCRIPTION
+ // The interface is quite simple. A server program has to call
+ // init to initialize the logger_server's state and then call run
+ // to run the orb.
+public:
+ // = Initialization and termination methods.
+ Logger_Server (void);
+ // Constructor.
+
+ ~Logger_Server (void);
+ // Destructor.
+
+ int init (int argc,
+ char **argv,
+ CORBA::Environment& env);
+ // Initialize the Logger_Server state - parsing arguments and ...
+
+ int run (CORBA::Environment& env);
+ // Run the ORB.
+
+ Logger_ptr make_logger (const char *name,
+ CORBA::Environment &_env);
+ // This function creates and returns a logger with the given <name>.
+ // Currently, <name> is unused.
+
+private:
+ int parse_args (void);
+ // Parses the commandline arguments.
+
+ int init_naming_service (CORBA::Environment &env);
+ // Initialises the name server and registers logger_factory with the
+ // name server.
+
+ TAO_ORB_Manager orb_manager_;
+ // The ORB manager.
+
+ TAO_Naming_Server my_name_server_;
+ // An instance of the name server used for registering the factory
+ // objects.
+
+ Logger_Factory_i factory_impl_;
+ // Implementation object of the Logger_Factory.
+
+ Logger_Factory_var factory_;
+ // Factory_var to register with NamingService.
+
+ int argc_;
+ // Number of commandline arguments.
+
+ char **argv_;
+ // commandline arguments.
+
+ char* service_name_;
+ // The id to give the Logger_Factory instance (defaults to
+ // "LoggingService")
+};
+
+#endif /* _LOG_SERVER_H */
diff --git a/TAO/orbsvcs/Logging_Service/Makefile b/TAO/orbsvcs/Logging_Service/Makefile
new file mode 100644
index 00000000000..b7b4d8808d7
--- /dev/null
+++ b/TAO/orbsvcs/Logging_Service/Makefile
@@ -0,0 +1,544 @@
+#----------------------------------------------------------------------------
+# $Id$
+#
+# Top-level Makefile for the Logging Service of the TAO ORB
+#
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+BIN = Logging_Service
+
+SRC = Logging_Service_i.cpp Logging_Service.cpp
+
+LDLIBS = -lorbsvcs -lTAO
+
+VLDLIBS = $(LDLIBS:%=%$(VAR))
+
+BUILD = $(BIN)
+
+LOGGING_OBJS = Logging_Service_i.o Logging_Service.o
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(ACE_ROOT)/include/makeinclude/macros.GNU
+include $(TAO_ROOT)/rules.tao.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
+#include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
+
+ifndef TAO_ROOT
+ TAO_ROOT = $(ACE_ROOT)/TAO
+endif # ! TAO_ROOT
+
+TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE
+
+LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao
+CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) $(TSS_ORB_FLAG)#-H
+
+Logging_Service: $(addprefix $(VDIR),$(LOGGING_OBJS))
+ $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
+
+# DO NOT DELETE THIS LINE -- g++dep uses it.
+# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+
+.obj/Logging_Service_i.o .obj/Logging_Service_i.so .shobj/Logging_Service_i.o .shobj/Logging_Service_i.so: Logging_Service_i.cpp Logging_Service_i.h \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/config-g++-common.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(TAO_ROOT)/tao/TAO.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers.cpp \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Task_T.cpp \
+ $(ACE_ROOT)/ace/Module.h \
+ $(ACE_ROOT)/ace/Module.i \
+ $(ACE_ROOT)/ace/Module.cpp \
+ $(ACE_ROOT)/ace/Stream_Modules.h \
+ $(ACE_ROOT)/ace/Stream_Modules.i \
+ $(ACE_ROOT)/ace/Stream_Modules.cpp \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Svc_Handler.cpp \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Connector.cpp \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(ACE_ROOT)/ace/Acceptor.cpp \
+ $(TAO_ROOT)/tao/Align.h \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Object_Table.h \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/Connect.h \
+ $(TAO_ROOT)/tao/Connect.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/ORB_Strategies_T.h \
+ $(TAO_ROOT)/tao/ORB_Strategies_T.i \
+ $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/IIOP_Object.h \
+ $(TAO_ROOT)/tao/IIOP_Object.i \
+ $(TAO_ROOT)/tao/IIOP_ORB.h \
+ $(TAO_ROOT)/tao/IIOP_ORB.i \
+ $(TAO_ROOT)/tao/IIOP_Interpreter.h \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \
+ $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
+ $(ACE_ROOT)/ace/SOCK_Dgram.h \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/CosNaming_i.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Entries.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Log/Logger_i.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerS.i
+.obj/Logging_Service.o .obj/Logging_Service.so .shobj/Logging_Service.o .shobj/Logging_Service.so: Logging_Service.cpp Logging_Service_i.h \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/config-g++-common.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(TAO_ROOT)/tao/TAO.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers.cpp \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Task_T.cpp \
+ $(ACE_ROOT)/ace/Module.h \
+ $(ACE_ROOT)/ace/Module.i \
+ $(ACE_ROOT)/ace/Module.cpp \
+ $(ACE_ROOT)/ace/Stream_Modules.h \
+ $(ACE_ROOT)/ace/Stream_Modules.i \
+ $(ACE_ROOT)/ace/Stream_Modules.cpp \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Svc_Handler.cpp \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Connector.cpp \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(ACE_ROOT)/ace/Acceptor.cpp \
+ $(TAO_ROOT)/tao/Align.h \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Object_Table.h \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/Connect.h \
+ $(TAO_ROOT)/tao/Connect.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/ORB_Strategies_T.h \
+ $(TAO_ROOT)/tao/ORB_Strategies_T.i \
+ $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/IIOP_Object.h \
+ $(TAO_ROOT)/tao/IIOP_Object.i \
+ $(TAO_ROOT)/tao/IIOP_ORB.h \
+ $(TAO_ROOT)/tao/IIOP_ORB.i \
+ $(TAO_ROOT)/tao/IIOP_Interpreter.h \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \
+ $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
+ $(ACE_ROOT)/ace/SOCK_Dgram.h \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/CosNaming_i.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Entries.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Log/Logger_i.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/LoggerS.i
+
+# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/orbsvcs/tests/Logger/Logging_Test.cpp b/TAO/orbsvcs/tests/Logger/Logging_Test.cpp
new file mode 100644
index 00000000000..f5c4e22126a
--- /dev/null
+++ b/TAO/orbsvcs/tests/Logger/Logging_Test.cpp
@@ -0,0 +1,19 @@
+// $Id$
+
+#include "Logging_Test_i.h"
+
+// This function runs the Logging service test.
+
+int
+main (int argc, char **argv)
+{
+ Logger_Client logger_client;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "\n \t IDL_Logger: client \n\n"));
+
+ if (logger_client.init (argc, argv) == -1)
+ return 1;
+
+ return logger_client.run ();
+}
diff --git a/TAO/orbsvcs/tests/Logger/Logging_Test_i.cpp b/TAO/orbsvcs/tests/Logger/Logging_Test_i.cpp
new file mode 100644
index 00000000000..ac6b8720fa9
--- /dev/null
+++ b/TAO/orbsvcs/tests/Logger/Logging_Test_i.cpp
@@ -0,0 +1,289 @@
+// $Id$
+
+#include "ace/INET_Addr.h"
+#include "ace/SOCK_Dgram_Mcast.h"
+#include "ace/OS.h"
+#include "orbsvcs/CosNamingC.h"
+#include "orbsvcs/LoggerC.h"
+#include "Logging_Test_i.h"
+
+// Constructor
+Logger_Client::Logger_Client (void)
+{
+ // Do nothing
+}
+
+// Destructor
+Logger_Client::~Logger_Client (void)
+{
+ // Do nothing
+}
+
+int
+Logger_Client::init (int argc, char **argv)
+{
+ this->argc_ = argc;
+ this->argv_ = argv;
+
+ TAO_TRY
+ {
+ // Initialize the ORB
+ orb_ = CORBA::ORB_init (argc,
+ argv,
+ "internet",
+ TAO_TRY_ENV);
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "\nTrying to initialize orb\n"));
+
+ TAO_CHECK_ENV;
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "\nOrb initialized successfully\n"));
+
+ // Parse command line and verify parameters.
+ if (this->parse_args () == -1)
+ return -1;
+
+ // Initialize the naming service
+ if (this->init_naming_service (TAO_TRY_ENV) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize naming"
+ "services.\n"),
+ -1);
+ // Create the logger instances
+ if (this->init_loggers (TAO_TRY_ENV) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize logger"
+ "instances.\n"),
+ -1);
+ }
+ TAO_CATCHANY
+ {
+ TAO_TRY_ENV.print_exception ("init");
+ return -1;
+ }
+ TAO_ENDTRY;
+
+ return 0;
+
+}
+
+int
+Logger_Client::init_naming_service (CORBA::Environment &env)
+{
+ // Initialize the naming services
+ if (my_name_client_.init (orb_, argc_, argv_) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize "
+ "the TAO_Naming_Client. \n"),
+ -1);
+
+ // Resolve an instance of the Logger_Factory
+ CosNaming::Name factory_name (1);
+ factory_name.length (1);
+ factory_name[0].id = CORBA::string_dup ("Logger_Factory");
+
+ CORBA::Object_var factory_ref =
+ my_name_client_->resolve (factory_name,
+ env);
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "\nFactory_ref resolved\n"));
+
+ if (CORBA::is_nil (factory_ref.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "resolved to nil object"),
+ -1);
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "\nLogger_Factory resolved\n"));
+
+ // Narrow the factory and check the success
+ factory_ =
+ Logger_Factory::_narrow (factory_ref.in (),
+ env);
+
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "\nFactory narrowed\n"));
+ if (CORBA::is_nil (factory_.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "narrow returned nil"),
+ -1);
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "\nLogger_Factory narrowed\n"));
+
+ // If debugging, get the factory's IOR
+ CORBA::String_var str =
+ orb_->object_to_string (factory_.in (),
+ env);
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "The factory IOR is <%s>\n",
+ str.in ()));
+ return 0;
+}
+
+int
+Logger_Client::init_loggers (CORBA::Environment &env)
+{
+ // Retrieve the Logger obj ref corresponding to key1 and
+ // key2.
+ this->logger_1_ = factory_->make_logger ("key1",
+ env);
+ this->logger_2_ = factory_->make_logger ("key2",
+ env);
+
+ if (CORBA::is_nil (this->logger_1_.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "nil logger1"),
+ -1);
+
+ if (CORBA::is_nil (this->logger_2_.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "nil logger2"),
+ -1);
+
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "Created two loggers\n"));
+ return 0;
+}
+
+
+// Execute client example code.
+
+int
+Logger_Client::run (void)
+{
+ TAO_TRY
+ {
+ // Create 2 Log_Records for the test
+ Logger::Log_Record rec1;
+ Logger::Log_Record rec2;
+
+ // Setup the first log record
+ this->init_record (rec1,
+ Logger::LM_DEBUG,
+ "Praise Bob! (1)\n");
+
+ // Setup the second log record
+ this->init_record (rec2,
+ Logger::LM_ERROR,
+ "Beware The Stark Fist of Removal. (2)\n");
+
+ // If debugging, output the new log records
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "First Log_Record created. Contents:\n"));
+ this->show_record (rec1);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Second Log_Record created. Contents:\n"));
+ this->show_record (rec2);
+ }
+
+ // Change the verbosity.
+ this->logger_1_->verbosity (Logger::VERBOSE_LITE, TAO_TRY_ENV);
+ TAO_CHECK_ENV;
+
+ // Log the first Log_Record
+ this->logger_1_->log (rec1, TAO_TRY_ENV);
+ TAO_CHECK_ENV;
+
+ // Change the verbosity again.
+ this->logger_2_->verbosity (Logger::VERBOSE, TAO_TRY_ENV);
+ TAO_CHECK_ENV;
+
+ // Log the second Log_Record.
+ this->logger_2_->log (rec2, TAO_TRY_ENV);
+ TAO_CHECK_ENV;
+ }
+ TAO_CATCHANY
+ {
+ TAO_TRY_ENV.print_exception ("run");
+ return -1;
+ }
+ TAO_ENDTRY;
+ return 0;
+}
+
+// Parses the command line arguments and returns an error status.
+
+int
+Logger_Client::parse_args (void)
+{
+ ACE_Get_Opt get_opts (argc_, argv_, "d");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'd': // debug flag
+ TAO_debug_level++;
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s"
+ " [-d]"
+ "\n"
+ " -d: increase debug level\n",
+ this->argv_ [0]),
+ -1);
+ }
+
+ // Indicates successful parsing of command line.
+ return 0;
+}
+
+
+void
+Logger_Client::init_record (Logger::Log_Record &newrec,
+ Logger::Log_Priority lp,
+ const char *msg)
+{
+ // Copy the message data into newrec.
+ newrec.msg_data = CORBA::string_copy (msg);
+
+ // Assign the log priority.
+ newrec.type = lp;
+
+ // Create and assign the timestamp.
+ ACE_Time_Value time (ACE_OS::gettimeofday ());
+ newrec.time = time.sec ();
+
+ // Get and store the PID of the calling process.
+ pid_t pid = ACE_OS::getpid ();
+ newrec.app_id = pid;
+
+ // Get and store the IP of the local host .
+ char name[MAXHOSTNAMELEN];
+ ACE_OS::hostname (name, MAXHOSTNAMELEN);
+ hostent *he = ACE_OS::gethostbyname (name);
+ newrec.host_addr =
+ (ACE_reinterpret_cast (in_addr *,
+ he->h_addr_list[0])->s_addr);
+}
+
+void
+Logger_Client::show_record (Logger::Log_Record &newrec)
+{
+ in_addr address;
+ address.s_addr = newrec.host_addr;
+
+ ACE_DEBUG ((LM_DEBUG,
+ " Log Priority: %d\n"
+ " Time: %d\n"
+ " PID: %d\n"
+ " Host Address: %s\n"
+ " Message: %s\n",
+ newrec.type,
+ newrec.time,
+ newrec.app_id,
+ inet_ntoa (address),
+ newrec.msg_data.in ()));
+}
diff --git a/TAO/orbsvcs/tests/Logger/Logging_Test_i.h b/TAO/orbsvcs/tests/Logger/Logging_Test_i.h
new file mode 100644
index 00000000000..7bd6d8d2622
--- /dev/null
+++ b/TAO/orbsvcs/tests/Logger/Logging_Test_i.h
@@ -0,0 +1,99 @@
+/* -*- C++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/orbsvcs/tests/Logger
+//
+// = FILENAME
+// client_i.h
+//
+// = DESCRIPTION
+// This class implements a simple logger CORBA client for the Logger
+// example using stubs generated by the TAO ORB IDL compiler
+//
+// = AUTHORS
+// Sergio Flores-Gaitan <sergio@cs.wustl.edu>
+// Matt Braun <mjb2@cec.wustl.edu>
+//
+// ============================================================================
+
+#if !defined (_LOG_CLIENT_H)
+#define _LOG_CLIENT_H
+
+#include "ace/Get_Opt.h"
+#include "tao/corba.h"
+#include "orbsvcs/CosNamingC.h"
+#include "orbsvcs/LoggerC.h"
+#include "orbsvcs/Naming/Naming_Utils.h"
+
+class Logger_Client
+{
+ // = TITLE
+ // Defines a class that encapsulates behaviour of the Logger
+ // client example. Provides a better understanding of the logic
+ // in an object oriented way.
+ //
+ // = DESCRIPTION
+ // This class declares an interface to run the example client for
+ // Logger CORBA server. All the complexity for initializing the
+ // server is hidden in the class. Just the <run> interface is
+ // needed.
+public:
+ // = Initialization and termination methods.
+
+ Logger_Client (void);
+ // Constructor.
+
+ ~Logger_Client (void);
+ // Destructor.
+
+ int init (int argc, char **argv);
+ // Initialize the client communication endpoint with server.
+
+ int run (void);
+ // Execute client example code.
+
+private:
+ int parse_args (void);
+ // Parses the arguments passed on the command line.
+
+ void init_record (Logger::Log_Record &newrec,
+ Logger::Log_Priority lp,
+ const char *msg);
+ // Prepares the <Log_Record> for logging.
+
+ int init_naming_service (CORBA::Environment &env);
+ // Initialises the name server and resolves the logger_factory
+
+ int init_loggers (CORBA::Environment &env);
+ // Instantiates the 2 logger member variables
+
+ void show_record (Logger::Log_Record &newrec);
+ // Shows contents of the record (for debugging purposes).
+
+ TAO_Naming_Client my_name_client_;
+ // An instance of the name client used for resolving the factory
+ // objects.
+
+ CORBA::ORB_var orb_;
+ // Keep a pointer to the ORB for easy access
+
+ int argc_;
+ // # of arguments on the command line.
+
+ char **argv_;
+ // arguments from command line.
+
+ Logger_Factory_var factory_;
+ // A pointer to the Logger_Factory; used in init_loggers
+
+ Logger_var logger_1_;
+ // Logger obj ref.
+
+ Logger_var logger_2_;
+ // Logger obj ref.
+};
+
+#endif /* _LOG_CLIENT_H */
diff --git a/TAO/orbsvcs/tests/Logger/Makefile b/TAO/orbsvcs/tests/Logger/Makefile
index 2682a86a6ea..025e6b153ef 100644
--- a/TAO/orbsvcs/tests/Logger/Makefile
+++ b/TAO/orbsvcs/tests/Logger/Makefile
@@ -1,7 +1,7 @@
#----------------------------------------------------------------------------
# $Id$
#
-# Top-level Makefile for the Logger Service of the TAO ORB
+# Top-level Makefile for the Logging Service test
#
#----------------------------------------------------------------------------
@@ -15,15 +15,12 @@ endif # ! TAO_ROOT
LDLIBS = -lorbsvcs -lTAO
-SRC = server.cpp \
- client.cpp \
- client_i.cpp \
- server_i.cpp
+SRC = Logging_Test.cpp \
+ Logging_Test_i.cpp
-logger_SERVER_OBJS = server_i.o server.o
-logger_CLIENT_OBJS = client_i.o client.o
+LOGGING_TEST_OBJS = Logging_Test_i.o Logging_Test.o
-BIN = server client
+BIN = Logging_Test
BUILD = $(BIN)
VLDLIBS = $(LDLIBS:%=%$(VAR))
@@ -43,11 +40,8 @@ TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE
LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao
CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) $(TSS_ORB_FLAG)#-H
-server: $(addprefix $(VDIR),$(logger_SERVER_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-client: $(addprefix $(VDIR),$(logger_CLIENT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
+Logging_Test: $(addprefix $(VDIR),$(LOGGING_TEST_OBJS))
+ $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
# DO NOT DELETE THIS LINE -- g++dep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.