diff options
author | mjb2 <mjb2@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-07-30 18:30:39 +0000 |
---|---|---|
committer | mjb2 <mjb2@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-07-30 18:30:39 +0000 |
commit | 8d838800e1c25e98c2ffa0d50775c953868f1af1 (patch) | |
tree | b425cccca1ff6f13d7d96382cfac8cf8cfa9980c | |
parent | 5b17ef28ed9d22d12c21c8fe2b1a2f0dabb43522 (diff) | |
download | ATCD-8d838800e1c25e98c2ffa0d50775c953868f1af1.tar.gz |
See Thu Jul 30 13:07:00 1998 Matthew J Braun <mjb2@cec.wustl.edu>
-rw-r--r-- | TAO/ChangeLog-98c | 26 | ||||
-rw-r--r-- | TAO/orbsvcs/Logging_Service/Logging_Service.cpp | 41 | ||||
-rw-r--r-- | TAO/orbsvcs/Logging_Service/Logging_Service_i.cpp | 134 | ||||
-rw-r--r-- | TAO/orbsvcs/Logging_Service/Logging_Service_i.h | 97 | ||||
-rw-r--r-- | TAO/orbsvcs/Logging_Service/Makefile | 544 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Logger/Logging_Test.cpp | 19 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Logger/Logging_Test_i.cpp | 289 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Logger/Logging_Test_i.h | 99 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Logger/Makefile | 20 |
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. |