From 31ed0a579d76c6fc37433f1f2674caf33c990942 Mon Sep 17 00:00:00 2001 From: kitty Date: Mon, 2 Dec 2002 12:37:37 +0000 Subject: ChangeLogTag: Mon Nov 25 04:25:15 2002 Krishnakumar B --- ACEXML/common/ZipCharStream.cpp | 5 +- ACEXML/compass/ComponentInstallation.cpp | 56 +++-- ACEXML/compass/ComponentInstallation.h | 3 +- ACEXML/compass/ComponentServer.cpp | 12 +- ACEXML/compass/ComponentServer.h | 4 +- ACEXML/compass/ComponentServer.inl | 4 +- ACEXML/compass/Consumer.cpp | 183 ++++++++++++++++ ACEXML/compass/Consumer.h | 64 ++++++ ACEXML/compass/Container.h | 2 +- ACEXML/compass/Deployment.cpp | 215 +++++++++++++++++-- ACEXML/compass/EC_Property.cpp | 45 ++-- ACEXML/compass/EC_Property.h | 6 +- ACEXML/compass/Makefile.Compass | 9 +- ACEXML/compass/Makefile.Consumer | 266 +++++++++++++++++++++++ ACEXML/compass/Makefile.Deployment | 40 ++++ ACEXML/compass/Makefile.Service | 291 +++++++++++++++++++++++++ ACEXML/compass/Makefile.Supplier | 266 +++++++++++++++++++++++ ACEXML/compass/Makefile.shared | 354 +++++++++++++++++++++++++++++++ ACEXML/compass/Property.cpp | 9 + ACEXML/compass/Property.h | 13 +- ACEXML/compass/PropertyFile_Handler.cpp | 142 ++----------- ACEXML/compass/PropertyFile_Handler.h | 8 +- ACEXML/compass/PropertyFile_Handler.inl | 104 ++++++++- ACEXML/compass/ServerActivator.cpp | 4 +- ACEXML/compass/ServerActivator.h | 2 +- ACEXML/compass/Service.cpp | 171 +++++++++++++++ ACEXML/compass/Service.h | 36 ++++ ACEXML/compass/SoftPkg.cpp | 205 +++++++++++++++--- ACEXML/compass/SoftPkg.h | 43 ++-- ACEXML/compass/SoftPkgHandler.cpp | 211 ++++++++++++++++++ ACEXML/compass/SoftPkgHandler.h | 191 +++++++++++++++++ ACEXML/compass/SoftPkgHandler.inl | 104 +++++++++ ACEXML/compass/Supplier.cpp | 185 ++++++++++++++++ ACEXML/compass/Supplier.h | 51 +++++ ACEXML/compass/Test.cpp | 88 ++++++++ ACEXML/compass/compass.mpc | 15 ++ ACEXML/compass/meta-inf | 5 +- ACEXML/parser/parser/Entity_Manager.i | 2 +- ACEXML/parser/parser/Parser.cpp | 16 +- ACEXML/parser/parser/Parser.h | 18 +- 40 files changed, 3181 insertions(+), 267 deletions(-) create mode 100644 ACEXML/compass/Consumer.cpp create mode 100644 ACEXML/compass/Consumer.h create mode 100644 ACEXML/compass/Makefile.Consumer create mode 100644 ACEXML/compass/Makefile.Deployment create mode 100644 ACEXML/compass/Makefile.Service create mode 100644 ACEXML/compass/Makefile.Supplier create mode 100644 ACEXML/compass/Makefile.shared create mode 100644 ACEXML/compass/Property.cpp create mode 100644 ACEXML/compass/Service.cpp create mode 100644 ACEXML/compass/Service.h create mode 100644 ACEXML/compass/SoftPkgHandler.cpp create mode 100644 ACEXML/compass/SoftPkgHandler.h create mode 100644 ACEXML/compass/SoftPkgHandler.inl create mode 100644 ACEXML/compass/Supplier.cpp create mode 100644 ACEXML/compass/Supplier.h create mode 100644 ACEXML/compass/Test.cpp diff --git a/ACEXML/common/ZipCharStream.cpp b/ACEXML/common/ZipCharStream.cpp index dc6610de7ca..30c232889b3 100644 --- a/ACEXML/common/ZipCharStream.cpp +++ b/ACEXML/common/ZipCharStream.cpp @@ -138,7 +138,10 @@ ACEXML_ZipCharStream::read (ACEXML_Char *str, size_t len) if (i == len) return len; len = len - i; - return zzip_fread (str + i, sizeof (ACEXML_Char), len, this->infile_); + this->pos_ = 0; + this->limit_ = 0; + int bytes = zzip_fread (str + i, sizeof (ACEXML_Char), len, this->infile_); + return (bytes + i); } int diff --git a/ACEXML/compass/ComponentInstallation.cpp b/ACEXML/compass/ComponentInstallation.cpp index 76d72df5745..b00d89ae995 100644 --- a/ACEXML/compass/ComponentInstallation.cpp +++ b/ACEXML/compass/ComponentInstallation.cpp @@ -12,7 +12,9 @@ ComponentInstallation::ComponentInstallation() {} ComponentInstallation::~ComponentInstallation() -{} +{ + +} void ComponentInstallation::install (const UUID& implUUID, @@ -29,13 +31,8 @@ ComponentInstallation::install (const UUID& implUUID, ACE_ERROR ((LM_ERROR, "Component Location is an Empty string\n")); ACE_THROW (InvalidLocation()); } - else if (this->packages_->bind (implUUID, component_loc) != 0) - { - ACE_ERROR ((LM_ERROR, "Component %s already installed\n", - implUUID.c_str())); - ACE_THROW (InstallationFailure()); - } - ACEXML_StreamFactory factory; + + ACEXML_StreamFactory factory; ACEXML_CharStream* stream = factory.create_stream (component_loc.c_str()); if (!stream) { @@ -43,21 +40,45 @@ ComponentInstallation::install (const UUID& implUUID, "location %s\n", component_loc.c_str())); ACE_THROW (InstallationFailure()); } - ACEXML_Char temp[MAXNAMLEN + 1] = "acefileXXXXXX"; + + ACEXML_Char temp[MAXNAMLEN + 1] = "acefileXXXXXX"; if (mkdtemp (temp) == 0) { ACE_ERROR ((LM_ERROR, "Unable to create safe temporary directory\n")); ACE_THROW (InstallationFailure()); } - ACEXML_String dsoname = temp + - FILE* dso = ACE_OS::fopen (temp, "w"); + ACEXML_Char* file = ACE_OS::strrchr (component_loc.c_str(), '/'); + if (!file) + file = component_loc.c_str(); + else + file += 1; + ACEXML_String dsoname = temp + '/' + file; + ACE_HANDLE dso = ACE_OS::open (dsoname.c_str(), + O_WRONLY| O_CREAT|O_EXCL, S_IRWXU); if (dso == 0) { - - ACE_THROW (InstallationFailure()); - - - + ACE_ERROR ((LM_ERROR, "Unable to unpack the implementation %s : %m\n", + dsoname.c_str())); + ACE_THROW (InstallationFailure()); + } + ACEXML_Char buf[65535]; + int bytes = 0; + while ((bytes = stream.read (buf, sizeof(buf))) > 0) + { + if (ACE_OS::write (dso, buf, bytes) != bytes) + { + ACE_ERROR ((LM_ERROR, "Unable to unpack the implementation %s: %m\n", + dsoname.c_str())); + ACE_THROW (InstallationFailure()); + } + } + ACE_OS::close (dso); + if (this->packages_->bind (implUUID, dsoname) != 0) + { + ACE_ERROR ((LM_ERROR, "Component %s already installed\n", + implUUID.c_str())); + ACE_THROW (InstallationFailure()); + } } void @@ -73,8 +94,7 @@ ComponentInstallation::replace (const UUID& implUUID, { if (this->packages_->unbind (implUUID) != 0) ACE_THROW (InstallationFailure()); - else if (this->packages_->bind (implUUID, component_loc) != 0) - ACE_THROW (InstallationFailure()); + this->install (implUUID, component_loc); } } diff --git a/ACEXML/compass/ComponentInstallation.h b/ACEXML/compass/ComponentInstallation.h index 4dde93427ac..c6c30b9fe7a 100644 --- a/ACEXML/compass/ComponentInstallation.h +++ b/ACEXML/compass/ComponentInstallation.h @@ -11,6 +11,7 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "ACEXML/compass/CompassTypes.h" +#include "ace/Unbounded_Set.h" namespace Deployment { @@ -59,9 +60,7 @@ namespace Deployment ComponentInstallation& operator= (const ComponentInstallation&); private: - Package_Manager packages_; - }; typedef ACE_Singleton COMP_INSTALL; diff --git a/ACEXML/compass/ComponentServer.cpp b/ACEXML/compass/ComponentServer.cpp index 7014b300786..0909d8be5ba 100644 --- a/ACEXML/compass/ComponentServer.cpp +++ b/ACEXML/compass/ComponentServer.cpp @@ -8,7 +8,7 @@ using namespace Deployment; -ComponentServer::ComponentServer(const ConfigValues& config) +ComponentServer::ComponentServer(ConfigValues* config) : containers_ (0), config_ (config), activator_ (SERVER_ACTIVATOR::instance()) @@ -20,7 +20,7 @@ ComponentServer::~ComponentServer() } Container* -ComponentServer::create_container (const ConfigValues& config) +ComponentServer::create_container (ConfigValues* config) ACE_THROW_SPEC ((CreateFailure, InvalidConfiguration)) { Container* ctr = 0; @@ -43,17 +43,17 @@ void ComponentServer::remove() ACE_THROW_SPEC ((RemoveFailure)) { - Container* entry = 0; + Container** entry = 0; for (Containers::iterator iter (*this->containers_); iter.next (entry) != 0; iter->advance()) - delete entry; + delete *entry; - ConfigValues* value = 0; + ConfigValues** value = 0; for (ConfigValues::iterator iter (*this->config_); iter.next (value) != 0; iter->advance()) - delete value; + delete *value; this->activator_ = 0; } diff --git a/ACEXML/compass/ComponentServer.h b/ACEXML/compass/ComponentServer.h index f1ec06136fe..ebcaa53e157 100644 --- a/ACEXML/compass/ComponentServer.h +++ b/ACEXML/compass/ComponentServer.h @@ -22,12 +22,12 @@ namespace Deployment class Compass_Export ComponentServer { public: - ComponentServer (ConfigValues* config); + ComponentServer (ConfigValues* config = 0); ~ComponentServer(); ServerActivator* get_server_activator (); - Container* create_container (ConfigValues* config) + Container* create_container (ConfigValues* config = 0) ACE_THROW_SPEC ((CreateFailure, InvalidConfiguration)); void remove_container (Container* cref) diff --git a/ACEXML/compass/ComponentServer.inl b/ACEXML/compass/ComponentServer.inl index bc29199b542..65dd132782a 100644 --- a/ACEXML/compass/ComponentServer.inl +++ b/ACEXML/compass/ComponentServer.inl @@ -14,14 +14,14 @@ ComponentServer::get_containers (void) return this->containers_; } -ACE_INLINE const ConfigValues& +ACE_INLINE const ConfigValues* ComponentServer::get_configuration (void) { return this->config_; } ACE_INLINE void -ComponentServer::set_configuration (const ConfigValues& config) +ComponentServer::set_configuration (ConfigValues* config) { this->config_ = config; } diff --git a/ACEXML/compass/Consumer.cpp b/ACEXML/compass/Consumer.cpp new file mode 100644 index 00000000000..95a919863ba --- /dev/null +++ b/ACEXML/compass/Consumer.cpp @@ -0,0 +1,183 @@ +// $Id$ + +#include "Consumer.h" +#include "orbsvcs/RtecEventChannelAdminC.h" +#include "orbsvcs/Event_Service_Constants.h" + +ACE_RCSID(EC_Examples, Consumer, "$Id$") + +extern "C" +int +createConsumer (int argc, char* argv[]) +{ + Consumer consumer; + return consumer.run (argc, argv); +} + +Consumer::Consumer (void) + : event_count_ (0), shutdown_ (0) +{ +} + +int +Consumer::run (int argc, char* argv[]) +{ +// int register_with_object_manager = 0; +// if (TAO_Singleton_Manager::instance ()->init ( +// register_with_object_manager) == -1) +// ACE_ERROR_RETURN ((LM_ERROR, +// "Consumer::init -- ORB pre-initialization " +// "failed.\n"), +// -1); // No exceptions available yet, so return +// // an error status. + + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + // Prepend a "dummy" program name argument to the Service + // Configurator argument vector. + int new_argc = argc + 1; + + CORBA::StringSeq new_argv (new_argc); + new_argv.length (new_argc); + + // Prevent the ORB from opening the Service Configurator file + // again since the Service Configurator file is already in the + // process of being opened. + new_argv[0] = CORBA::string_dup ("dummy"); + + // Copy the remaining arguments into the new argument vector. + for (int i = new_argc - argc, j = 0; + j < argc; + ++i, ++j) + new_argv[i] = CORBA::string_dup (argv[j]); + + // Initialize the ORB. + CORBA::ORB_var orb = CORBA::ORB_init (new_argc, + new_argv.get_buffer (), + "Consumer" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Do *NOT* make a copy because we don't want the ORB to outlive + // the run() method. + this->orb_ = orb.in (); + + CORBA::Object_var object = + orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + PortableServer::POA_var poa = + PortableServer::POA::_narrow (object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + PortableServer::POAManager_var poa_manager = + poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + TAO_Naming_Client naming_client; + + // Initialization of the naming service. + if (naming_client.init (orb.in ()) != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "(%P|%t) Unable to initialize " + "the TAO_Naming_Client. \n"), + -1); + + CosNaming::Name ec_name (1); + ec_name.length (1); + ec_name[0].id = CORBA::string_dup ("EventChannel"); + + CORBA::Object_var ec_obj = + naming_client->resolve (ec_name + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + RtecEventChannelAdmin::EventChannel_var event_channel = + RtecEventChannelAdmin::EventChannel::_narrow (ec_obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // The canonical protocol to connect to the EC + RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin = + event_channel->for_consumers (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + RtecEventChannelAdmin::ProxyPushSupplier_var supplier = + consumer_admin->obtain_push_supplier (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + RtecEventComm::PushConsumer_var consumer = + this->_this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Simple subscription, but usually the helper classes in + // $TAO_ROOT/orbsvcs/Event_Utils.h are a better way to do this. + RtecEventChannelAdmin::ConsumerQOS qos; + qos.dependencies.length (2); + RtecEventComm::EventHeader& h0 = + qos.dependencies[0].event.header; + h0.type = ACE_ES_DISJUNCTION_DESIGNATOR; + h0.source = ACE_ES_EVENT_SOURCE_ANY; + + RtecEventComm::EventHeader& h1 = + qos.dependencies[1].event.header; + h1.type = ACE_ES_EVENT_UNDEFINED; // first free event type + h1.source = ACE_ES_EVENT_SOURCE_ANY; + + supplier->connect_push_consumer (consumer.in (), qos + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Wait for events, using work_pending()/perform_work() may help + // or using another thread, this example is too simple for that. + orb->run(); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Consumer::run"); + return 1; + } + ACE_ENDTRY; +// if (TAO_Singleton_Manager::instance ()->fini () == -1) +// ACE_ERROR_RETURN ((LM_ERROR, +// "Consumer::fini -- ORB pre-termination failed."), +// -1); + ACE_DEBUG ((LM_DEBUG, "Consumer exiting...\n")); + return 0; +} + +void +Consumer::push (const RtecEventComm::EventSet& events + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + if (events.length () == 0) + { + ACE_DEBUG ((LM_DEBUG, + "Consumer (%P|%t) no events\n")); + return; + } + + this->event_count_ += events.length (); + if (this->event_count_ % 100 == 0) + { + ACE_DEBUG ((LM_DEBUG, + "Consumer (%P|%t): %d events received\n", + this->event_count_)); + } +} + +void +Consumer::disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->shutdown_ = 1; + this->orb_->destroy (ACE_ENV_ARG_PARAMETER); +} + +// **************************************************************** + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/ACEXML/compass/Consumer.h b/ACEXML/compass/Consumer.h new file mode 100644 index 00000000000..8f9e7738c5d --- /dev/null +++ b/ACEXML/compass/Consumer.h @@ -0,0 +1,64 @@ +/* -*- C++ -*- */ +// $Id$ +// +// ============================================================================ +// +// = LIBRARY +// ORBSVCS Real-time Event Channel examples +// +// = FILENAME +// Consumer +// +// = AUTHOR +// Carlos O'Ryan (coryan@cs.wustl.edu) +// +// ============================================================================ + +#ifndef CONSUMER_H +#define CONSUMER_H + +#include "orbsvcs/RtecEventCommS.h" +#include "orbsvcs/CosNamingS.h" +#include "orbsvcs/Naming/Naming_Utils.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class Consumer : public POA_RtecEventComm::PushConsumer +{ + // = TITLE + // Simple consumer object + // + // = DESCRIPTION + // This class is a consumer of events. + // It simply registers for one event type. + // +public: + Consumer (void); + // Constructor + + int run (int argc, char* argv[]); + // Run the test + + // = The RtecEventComm::PushConsumer methods + + virtual void push (const RtecEventComm::EventSet& events + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + virtual void disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)); + // The skeleton methods. + +private: + CORBA::ULong event_count_; + // Keep track of the number of events received. + + CORBA::Boolean shutdown_; + + CORBA::ORB_ptr orb_; + // The orb, just a pointer because the ORB does not outlive the + // run() method... +}; + +#endif /* CONSUMER_H */ diff --git a/ACEXML/compass/Container.h b/ACEXML/compass/Container.h index c41239bc9df..2665f6eba4c 100644 --- a/ACEXML/compass/Container.h +++ b/ACEXML/compass/Container.h @@ -23,7 +23,7 @@ namespace Deployment ~Container(); CCMHome* install_home (const UUID& id, const string& entrypt, - const ConfigValues* config) + const ConfigValues* config = 0) ACE_THROW_SPEC ((UnknownImplId, ImplEntryPointNotFound, InstallationFailure, InvalidConfiguration)); diff --git a/ACEXML/compass/Deployment.cpp b/ACEXML/compass/Deployment.cpp index 9bf839fd0b3..d256e85c997 100644 --- a/ACEXML/compass/Deployment.cpp +++ b/ACEXML/compass/Deployment.cpp @@ -4,14 +4,57 @@ #include "ACEXML/common/StreamFactory.h" #include "ACEXML/parser/parser/Parser.h" #include "ACEXML/compass/SoftPkgHandler.h" +#include "ACEXML/compass/PropertyFile_Handler.h" #include "ace/Get_Opt.h" +#include "ace/Auto_Ptr.h" +#include "ace/ARGV.h" +#include "ace/Thread_Manager.h" +#include "ace/DLL.h" +#include "ace/SString.h" + +static ACE_ARGV myargv; + +void* +create_dll (void* name) +{ + typedef int (*dll_func) (int, char**); + const ACE_TCHAR* dllname = ACE_reinterpret_cast (const ACE_TCHAR*, name); + if (dllname == 0) + { + ACE_ERROR ((LM_ERROR, "Trying to create a dll with null name")); + return (void*)-1; + } + ACE_DLL dll; + if (dll.open (dllname) == -1) + { + ACE_ERROR ((LM_ERROR, "Failed to open Service: %m\n")); + return (void*)-1; + } + + void *foo; + const ACE_TCHAR* create = "create"; + ACE_CString entrypoint (create); + entrypoint += dllname; + foo = dll.symbol (entrypoint.c_str()); + + // Cast the void* to long first. + long tmp = ACE_reinterpret_cast (long, foo); + dll_func factory = ACE_reinterpret_cast (dll_func, tmp); + if (factory == 0) + { + ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to resolve factory: %s: %m\n"), + dll.error ())); + return (void*)-1; + } + return (void*)factory (myargv.argc(), myargv.argv()); +} static void usage (const ACE_TCHAR* program) { ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Usage: %s [-l ]") - ACE_TEXT (" -l: Install components from filename") + ACE_TEXT ("Usage: %s [-l ]\n") + ACE_TEXT (" -l: Install components from \n"), program)); } @@ -39,19 +82,28 @@ ACE_TMAIN (int argc, char* argv[]) usage(argv[0]); return -1; } - const ACEXML_Char meta-inf[] = {'m', 'e', 't', 'a', '-', 'i', 'n', 'f'}; - const ACEXML_Char* path = 0; + const ACEXML_Char meta_inf[] = {'m', 'e', 't', 'a', '-', 'i', 'n', 'f', 0}; + ACEXML_Char* path = 0; size_t pos = ACE_OS::strlen (filename); - if ((ACEXML_Char* temp = ACE_OS::strrchr (filename, '.')) != 0) - pos = temp - filename + 1; - size_t len = pos + sizeof (meta-inf) + - sizeof (ACE_DIRECTORY_SEPARATOR_CHAR) + sizeof (ACE_TCHAR); + ACEXML_Char* basename = 0; + if ((basename = ACE_OS::strrchr (filename, '.')) != 0) + pos = basename - filename; + size_t len = pos + sizeof (meta_inf) + sizeof (ACE_TCHAR) * 2; ACE_NEW_RETURN (path, ACEXML_Char[len], -1); ACE_Auto_Basic_Array_Ptr cleanup_path (path); ACE_OS::strncpy (path, filename, pos); - path[pos++] = ACE_DIRECTORY_SEPARATOR_CHAR; - ACE_OS::strcpy (path + pos, meta-inf); + path[pos++] = '/'; + + // Store a copy for future use + ACEXML_Char* dirname = 0; + ACE_NEW_RETURN (dirname, ACEXML_Char[pos], -1); + ACE_Auto_Basic_Array_Ptr cleanup_dirname (dirname); + ACE_OS::memcpy (dirname, path, pos); + dirname[pos] = 0; + + ACE_OS::strcpy (path + pos, meta_inf); + ACEXML_StreamFactory factory; ACEXML_CharStream* stream = factory.create_stream (path); @@ -62,12 +114,12 @@ ACE_TMAIN (int argc, char* argv[]) return -1; } - ACEXML_DefaultHandler* handler = 0; - ACE_NEW_RETURN (handler, SoftPkgHandler (name), -1); - auto_ptr cleanup_handler (handler); + ACEXML_SoftPkgHandler* handler = 0; + ACE_NEW_RETURN (handler, ACEXML_SoftPkgHandler (path), -1); + auto_ptr cleanup_handler (handler); ACEXML_Parser parser; - ACEXML_InputSource input (stm); + ACEXML_InputSource input (stream); parser.setContentHandler (handler); parser.setDTDHandler (handler); @@ -81,9 +133,142 @@ ACE_TMAIN (int argc, char* argv[]) } ACEXML_CATCH (ACEXML_SAXException, ex) { - ACE_UNUSED_ARG (ex); + ex.print(); ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred. Exiting...\n"))); } ACEXML_ENDTRY; + const ACEXML_SoftPkg* pkg = handler->get_softpkg(); + pkg->dump(); + + ACEXML_Char temp[] = "acefileXXXXXX"; + if (mkdtemp (temp) == 0) + { + ACE_ERROR ((LM_ERROR, "Unable to create safe temp directory\n")); + return -1; + } + char* oldpath = ACE_OS::getenv ("LD_LIBRARY_PATH"); + size_t env_len = 0; + if (oldpath) + env_len = ACE_OS::strlen (oldpath); + env_len += 18; // For 'LD_LIBRARY_PATH=' + ':' + '\0' + ACEXML_Char pwd[MAXPATHLEN + 1]; + size_t size = sizeof (pwd); + if (ACE_OS::getcwd(pwd, size) == 0) + { + ACE_ERROR ((LM_ERROR, "Unable to set up environment for the Component" + "location: %m\n")); + return -1; + } + ACEXML_String temp_dir (pwd); + temp_dir += "/"; + temp_dir += temp; + ACEXML_Char* new_path = 0; + ACE_NEW_RETURN (new_path, ACEXML_Char[env_len + temp_dir.length()], -1); + int n = 0; + n += ACE_OS::sprintf (new_path, "LD_LIBRARY_PATH=%s", temp_dir.c_str()); + if (oldpath) + ACE_OS::sprintf (new_path + n, ":%s", oldpath); + ACE_DEBUG ((LM_DEBUG, "Added %s to environment\n", new_path)); + + if (ACE_OS::putenv (new_path) < 0) + { + ACE_ERROR ((LM_ERROR, "Unable to set up environment for the Component" + "location: %m\n")); + return -1; + } + + ACE_Thread_Manager* thr_mgr = ACE_Thread_Manager::instance(); + + const ACEXML_SoftPkg::Implementations& impls = pkg->get_impls(); + ACEXML_SoftPkg::Implementation** entry = 0; + ACEXML_SoftPkg::Implementations::const_iterator iter (impls); + for (; iter.next (entry); iter.advance()) + { + ACEXML_SoftPkg::Implementation* impl = *entry; + ACEXML_String dll_path = dirname + impl->code_.file_; + ACEXML_CharStream* dll = factory.create_stream (dll_path.c_str()); + if (!dll) + { + ACE_ERROR ((LM_ERROR, "Unable to create stream for the Component" + "location %s\n", dll_path.c_str())); + return -1; + } + ACEXML_String dsoname (temp); + dsoname += "/" + impl->code_.file_; + ACE_HANDLE dso = ACE_OS::open (dsoname.c_str(), + O_WRONLY| O_CREAT|O_EXCL, S_IRWXU); + if (dso == -1) + { + ACE_ERROR ((LM_ERROR, "Unable to create local copy %s : %m\n", + dsoname.c_str())); + return -1; + } + ACEXML_Char buf[65535]; + int bytes = 0; + while ((bytes = dll->read (buf, sizeof(buf))) > 0) + { + if (ACE_OS::write (dso, buf, bytes) != bytes) + { + ACE_ERROR ((LM_ERROR, "Unable to create dll %s: %m\n", + dsoname.c_str())); + return -1; + } + } + ACE_OS::close (dso); + + ACE_ARGV* pArgv = 0; + + if (impl->propfile_.file_.length()) + { + ACEXML_String path = dirname + impl->propfile_.file_; + ACEXML_CharStream* pstream = factory.create_stream (path.c_str()); + if (!pstream) + { + ACE_ERROR ((LM_ERROR, "Failed to create input stream from %s\n", + path.c_str())); + return -1; + } + ACEXML_PropertyFile_Handler* pHandler = 0; + ACE_NEW_RETURN (pHandler, + ACEXML_PropertyFile_Handler (path.c_str()) , -1); + auto_ptr cleanup_pHandler (pHandler); + ACEXML_InputSource property (pstream); + + ACEXML_Parser propParser; + propParser.setContentHandler (pHandler); + propParser.setDTDHandler (pHandler); + propParser.setErrorHandler (pHandler); + propParser.setEntityResolver (pHandler); + + ACEXML_TRY_NEW_ENV + { + propParser.parse (&property ACEXML_ENV_ARG_PARAMETER); + ACEXML_TRY_CHECK; + } + ACEXML_CATCH (ACEXML_SAXException, ex) + { + ex.print(); + ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Parser Exception....\n"))); + } + ACEXML_ENDTRY; + const ACEXML_Property* prop = pHandler->get_property(); + ACEXML_Char* list = prop->dump(); + ACE_Auto_Basic_Array_Ptr cleanup_list (list); + ACE_DEBUG ((LM_DEBUG, "Property obtained = %s\n", list)); + ACE_NEW_RETURN (pArgv, ACE_ARGV (list), -1); + } + if (pArgv) + myargv.add (pArgv->argv()); + else + myargv.add (argv); + if (thr_mgr->spawn (create_dll,(void*)impl->id_.c_str()) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("Unable to spawn dll %s\n"), + impl->id_.c_str()), -1); + } + ACE_OS::sleep (3); + } + thr_mgr->wait(); return 0; } diff --git a/ACEXML/compass/EC_Property.cpp b/ACEXML/compass/EC_Property.cpp index 181956a8bf8..f0f55803ec7 100644 --- a/ACEXML/compass/EC_Property.cpp +++ b/ACEXML/compass/EC_Property.cpp @@ -54,27 +54,48 @@ ACEXML_EC_Property::set (const ACEXML_String& property, const long value) } ACEXML_Char* -ACEXML_EC_Property::dump() +ACEXML_EC_Property::dump() const { ACEXML_String argv ("-ECDispatching"); - argv += this->ec_dispatching_ + '\x20'; + argv += " "; + argv += this->ec_dispatching_; + argv += " "; argv += "-ECFiltering"; - argv += this->ec_filtering_ + '\x20'; + argv += " "; + argv += this->ec_filtering_; + argv += " "; argv += "-ECSupplierFiltering"; - argv += this->ec_supplier_filtering_ + '\x20'; + argv += " "; + argv += this->ec_supplier_filtering_; + argv += " "; argv += "-ECProxyConsumerLock"; - argv += this->ec_proxy_consumer_lock_+ '\x20'; + argv += " "; + argv += this->ec_proxy_consumer_lock_; + argv += " "; argv += "-ECProxySupplierLock"; - argv += this->ec_proxy_supplier_lock_ + '\x20'; + argv += " "; + argv += this->ec_proxy_supplier_lock_; + argv += " "; argv += "-ECConsumerControl"; - argv += this->ec_consumer_control_ + '\x20'; + argv += " "; + argv += this->ec_consumer_control_; + argv += " "; argv += "-ECSupplierControl"; - argv += this->ec_supplier_control_ + '\x20'; + argv += " "; + argv += this->ec_supplier_control_; + argv += " "; argv += "-ECConsumerControlPeriod"; + argv += " "; char temp[20] = {0}; - ACE_OS::sprintf (temp, "%ld", this->ec_consumer_control_period_); - argv += temp + '\x20'; - ACE_OS::sprintf (temp, "%ld", this->ec_supplier_control_period_); - argv += temp + '\x20'; + int pos = ACE_OS::sprintf (temp, "%ld", this->ec_consumer_control_period_); + temp[pos] = 0; + argv += temp; + argv += " "; + argv += "-ECSupplierControlPeriod"; + argv += " "; + pos = ACE_OS::sprintf (temp, "%ld", this->ec_supplier_control_period_); + temp[pos] = 0; + argv += temp; + argv += " "; return argv.rep(); } diff --git a/ACEXML/compass/EC_Property.h b/ACEXML/compass/EC_Property.h index 7fc158ff73d..43ac9d5af0f 100644 --- a/ACEXML/compass/EC_Property.h +++ b/ACEXML/compass/EC_Property.h @@ -4,21 +4,23 @@ #define ACEXML_EC_PROPERTY_H #include "ace/pre.h" +#include "ACEXML/compass/Compass_Export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "ACEXML/common/XML_Types.h" +#include "ACEXML/compass/Property.h" -class ACEXML_EC_Property : public ACEXML_Property +class Compass_Export ACEXML_EC_Property : public ACEXML_Property { public: ACEXML_EC_Property(); virtual ~ACEXML_EC_Property(); virtual int set (const ACEXML_String& property, const ACEXML_String& value); virtual int set (const ACEXML_String& property, const long value); - virtual ACE_ARGV* dump() const; + virtual ACEXML_Char* dump() const; private: ACEXML_String ec_dispatching_; ACEXML_String ec_filtering_; diff --git a/ACEXML/compass/Makefile.Compass b/ACEXML/compass/Makefile.Compass index f058439cb63..c00b5bc8d31 100644 --- a/ACEXML/compass/Makefile.Compass +++ b/ACEXML/compass/Makefile.Compass @@ -9,12 +9,11 @@ SHLIB_UNCHECKED = libCompass.$(SOEXT) FILES = \ - Assembly \ + Property \ PropertyFile_Handler \ - AssemblyFactory \ - ComponentServer \ - ServerActivator \ - ConfigValue + SoftPkgHandler \ + SoftPkg \ + EC_Property LIB = $(LIB_UNCHECKED) SHLIB = $(SHLIB_UNCHECKED) diff --git a/ACEXML/compass/Makefile.Consumer b/ACEXML/compass/Makefile.Consumer new file mode 100644 index 00000000000..d30264737cd --- /dev/null +++ b/ACEXML/compass/Makefile.Consumer @@ -0,0 +1,266 @@ +#---------------------------------------------------------------------------- +# $Id$ +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +# Override default to make dependency generation work properly. +ifndef TAO_ROOT + TAO_ROOT = $(ACE_ROOT)/TAO +endif # ! TAO_ROOT + +MAKEFILE = Makefile.Consumer +SONAME = +SOVERSION = +LIB = libConsumer.a +SHLIB = libConsumer.$(SOEXT) +FILES = Consumer +LSRC = $(addsuffix .cpp,$(FILES)) + +LIBS += -lTAO_RTEvent -lTAO_RTSched -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_IORTable -lTAO_PortableServer -lTAO $(ACELIB) + +# TAO_ORBSVCS := $(shell sh $(ACE_ROOT)/bin/ace_components --orbsvcs) + +CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs \ + $(foreach svc, $(TAO_ORBSVCS), -DTAO_ORBSVCS_HAS_$(svc)) + +BUILD = $(VLIB) $(VSHLIB) + +#---------------------------------------------------------------------------- +# 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.lib.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +# To remake the Test_Client_Module source with xlC on AIX, it works +# best to wipe out any previously-created tempinc directory. +# The compiler/linker isn't too smart about instantiating templates... +ifdef TEMPINCDIR +COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) +endif + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Dependencies +#---------------------------------------------------------------------------- +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/Consumer.o .obj/Consumer.so .shobj/Consumer.o .shobj/Consumer.so: Consumer.cpp Consumer.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \ + $(ACE_ROOT)/ace/pre.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/String_Base.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/String_Base_Const.h \ + $(ACE_ROOT)/ace/String_Base.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Mem_Map.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/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/String_Base.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/NVList.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/AbstractBase.h \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(ACE_ROOT)/ace/Atomic_Op.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.cpp \ + $(ACE_ROOT)/ace/Atomic_Op_T.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Event/event_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ + $(ACE_ROOT)/ace/INET_Addr.h \ + $(ACE_ROOT)/ace/Addr.h \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ + $(ACE_ROOT)/ace/SOCK_Dgram.h \ + $(ACE_ROOT)/ace/SOCK.h \ + $(ACE_ROOT)/ace/IPC_SAP.h \ + $(ACE_ROOT)/ace/IPC_SAP.i \ + $(ACE_ROOT)/ace/SOCK.i \ + $(ACE_ROOT)/ace/SOCK_Dgram.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/nsconf.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Service_Constants.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.h + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/ACEXML/compass/Makefile.Deployment b/ACEXML/compass/Makefile.Deployment new file mode 100644 index 00000000000..c3b04638c42 --- /dev/null +++ b/ACEXML/compass/Makefile.Deployment @@ -0,0 +1,40 @@ +#---------------------------------------------------------------------------- +# GNU Makefile +#---------------------------------------------------------------------------- +MAKEFILE = Makefile.Deployment +DEPENDENCY_FILE = .depend.Makefile.Deployment +BIN_UNCHECKED = Deployment + + + +FILES = \ + Deployment + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU + +BIN = $(BIN_UNCHECKED) + +OBJS = $(addsuffix .o, $(notdir $(FILES))) +SRC = $(addsuffix .cpp, $(FILES)) +ACELIB = -lACE + +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +CPPFLAGS += -I../.. +LDFLAGS += -L../../ace + +LDLIBS = -lCompass -lACEXML_Parser -lACEXML -lzzip -lz + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- + +$(BIN): $(addprefix $(VDIR), $(OBJS)) + $(LINK.cc) $(LDFLAGS) $(CC_OUTPUT_FLAG) $@ $^ $(VLDLIBS) $(POSTLINK) + diff --git a/ACEXML/compass/Makefile.Service b/ACEXML/compass/Makefile.Service new file mode 100644 index 00000000000..42d6662beb8 --- /dev/null +++ b/ACEXML/compass/Makefile.Service @@ -0,0 +1,291 @@ +#---------------------------------------------------------------------------- +# $Id$ +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +# Override default to make dependency generation work properly. +ifndef TAO_ROOT + TAO_ROOT = $(ACE_ROOT)/TAO +endif # ! TAO_ROOT + +MAKEFILE = Makefile.Service +SONAME = +SOVERSION = +LIB = libService.a +SHLIB = libService.$(SOEXT) +FILES = Service +LSRC = $(addsuffix .cpp,$(FILES)) + +LIBS += -lTAO_RTEvent -lTAO_RTSched -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_IORTable -lTAO_PortableServer -lTAO $(ACELIB) + +# TAO_ORBSVCS := $(shell sh $(ACE_ROOT)/bin/ace_components --orbsvcs) + +CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs \ + $(foreach svc, $(TAO_ORBSVCS), -DTAO_ORBSVCS_HAS_$(svc)) + +BUILD = $(VLIB) $(VSHLIB) + +#---------------------------------------------------------------------------- +# 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.lib.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +# To remake the Test_Client_Module source with xlC on AIX, it works +# best to wipe out any previously-created tempinc directory. +# The compiler/linker isn't too smart about instantiating templates... +ifdef TEMPINCDIR +COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) +endif + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Dependencies +#---------------------------------------------------------------------------- +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/Service.o .obj/Service.so .shobj/Service.o .shobj/Service.so: Service.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Event_Channel.h \ + $(ACE_ROOT)/ace/pre.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Factory.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Event/event_export.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/Typecode.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/String_Base.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/String_Base_Const.h \ + $(ACE_ROOT)/ace/String_Base.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Mem_Map.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/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/String_Base.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/AbstractBase.h \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/DLL.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Defaults.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(ACE_ROOT)/ace/Atomic_Op.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.cpp \ + $(ACE_ROOT)/ace/Atomic_Op_T.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Default_Factory.h \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Array_Base.h \ + $(ACE_ROOT)/ace/Array_Base.cpp \ + $(ACE_ROOT)/ace/Array_Base.inl \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ + $(ACE_ROOT)/ace/INET_Addr.h \ + $(ACE_ROOT)/ace/Addr.h \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ + $(ACE_ROOT)/ace/SOCK_Dgram.h \ + $(ACE_ROOT)/ace/SOCK.h \ + $(ACE_ROOT)/ace/IPC_SAP.h \ + $(ACE_ROOT)/ace/IPC_SAP.i \ + $(ACE_ROOT)/ace/SOCK.i \ + $(ACE_ROOT)/ace/SOCK_Dgram.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/nsconf.h + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/ACEXML/compass/Makefile.Supplier b/ACEXML/compass/Makefile.Supplier new file mode 100644 index 00000000000..3833725a097 --- /dev/null +++ b/ACEXML/compass/Makefile.Supplier @@ -0,0 +1,266 @@ +#---------------------------------------------------------------------------- +# $Id$ +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +# Override default to make dependency generation work properly. +ifndef TAO_ROOT + TAO_ROOT = $(ACE_ROOT)/TAO +endif # ! TAO_ROOT + +MAKEFILE = Makefile.Supplier +SONAME = +SOVERSION = +LIB = libSupplier.a +SHLIB = libSupplier.$(SOEXT) +FILES = Supplier +LSRC = $(addsuffix .cpp,$(FILES)) + +LIBS += -lTAO_RTEvent -lTAO_RTSched -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_IORTable -lTAO_PortableServer -lTAO $(ACELIB) + +# TAO_ORBSVCS := $(shell sh $(ACE_ROOT)/bin/ace_components --orbsvcs) + +CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs \ + $(foreach svc, $(TAO_ORBSVCS), -DTAO_ORBSVCS_HAS_$(svc)) + +BUILD = $(VLIB) $(VSHLIB) + +#---------------------------------------------------------------------------- +# 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.lib.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +# To remake the Test_Client_Module source with xlC on AIX, it works +# best to wipe out any previously-created tempinc directory. +# The compiler/linker isn't too smart about instantiating templates... +ifdef TEMPINCDIR +COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc) +endif + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Dependencies +#---------------------------------------------------------------------------- +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/Supplier.o .obj/Supplier.so .shobj/Supplier.o .shobj/Supplier.so: Supplier.cpp Supplier.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \ + $(ACE_ROOT)/ace/pre.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/String_Base.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/String_Base_Const.h \ + $(ACE_ROOT)/ace/String_Base.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Mem_Map.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/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/String_Base.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/NVList.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/AbstractBase.h \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(ACE_ROOT)/ace/Atomic_Op.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.cpp \ + $(ACE_ROOT)/ace/Atomic_Op_T.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Event/event_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ + $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ + $(ACE_ROOT)/ace/INET_Addr.h \ + $(ACE_ROOT)/ace/Addr.h \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ + $(ACE_ROOT)/ace/SOCK_Dgram.h \ + $(ACE_ROOT)/ace/SOCK.h \ + $(ACE_ROOT)/ace/IPC_SAP.h \ + $(ACE_ROOT)/ace/IPC_SAP.i \ + $(ACE_ROOT)/ace/SOCK.i \ + $(ACE_ROOT)/ace/SOCK_Dgram.i \ + $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/nsconf.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Service_Constants.h \ + $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.h + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/ACEXML/compass/Makefile.shared b/ACEXML/compass/Makefile.shared new file mode 100644 index 00000000000..11621b0201a --- /dev/null +++ b/ACEXML/compass/Makefile.shared @@ -0,0 +1,354 @@ +#---------------------------------------------------------------------------- +# +# $Id$ +# +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +ifndef TAO_ROOT + TAO_ROOT = $(ACE_ROOT)/TAO +endif # ! TAO_ROOT +BIN = Test + +PSRC=$(addsuffix .cpp,$(BIN)) +LDLIBS = -lTAO +CONSUMER_LIB = libConsumer.$(SOEXT) +SUPPLIER_LIB = libSupplier.$(SOEXT) +SERVICE_LIB = libService.$(SOEXT) + +#---------------------------------------------------------------------------- +# 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 +include $(ACE_ROOT)/TAO/taoconfig.mk + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- + +all: $(CONSUMER_LIB) $(SUPPLIER_LIB) $(SERVICE_LIB) + +$(CONSUMER_LIB): + $(MAKE) -f Makefile.Consumer + +$(SERVICE_LIB): + $(MAKE) -f Makefile.Service + +$(SUPPLIER_LIB): + $(MAKE) -f Makefile.Supplier +realclean depend: + @for m in Makefile.Consumer Makefile.Supplier Makefile.Service; do \ + $(MAKE) -f $$m MAKEFILE=$$m $(@:.nested=); \ + done + +.PHONY: $(CONSUMER_LIB) $(SERVICE_LIB) $(SUPPLIER_LIB) + +#---------------------------------------------------------------------------- +# Dependencies +#---------------------------------------------------------------------------- +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/client.o .obj/client.so .shobj/client.o .shobj/client.so: client.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Time_Value.inl \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/DLL.h \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/String_Base.h \ + $(ACE_ROOT)/ace/String_Base_Const.h \ + $(ACE_ROOT)/ace/String_Base.i \ + $(ACE_ROOT)/ace/String_Base.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(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/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/Memory_Pool.i \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ + $(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/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(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/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread_Exit.h \ + $(ACE_ROOT)/ace/Thread_Control.h \ + $(ACE_ROOT)/ace/Thread_Control.inl \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Array_Base.h \ + $(ACE_ROOT)/ace/Array_Base.inl \ + $(ACE_ROOT)/ace/Array_Base.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(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/Framework_Component.h \ + $(ACE_ROOT)/ace/Framework_Component.inl \ + $(ACE_ROOT)/ace/Framework_Component_T.h \ + $(ACE_ROOT)/ace/Framework_Component_T.inl \ + $(ACE_ROOT)/ace/Framework_Component_T.cpp \ + $(ACE_ROOT)/ace/Thread_Manager.i + +.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Time_Value.inl \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/DLL.h \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/String_Base.h \ + $(ACE_ROOT)/ace/String_Base_Const.h \ + $(ACE_ROOT)/ace/String_Base.i \ + $(ACE_ROOT)/ace/String_Base.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(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/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/Memory_Pool.i \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ + $(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/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(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/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread_Exit.h \ + $(ACE_ROOT)/ace/Thread_Control.h \ + $(ACE_ROOT)/ace/Thread_Control.inl \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Array_Base.h \ + $(ACE_ROOT)/ace/Array_Base.inl \ + $(ACE_ROOT)/ace/Array_Base.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(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/Framework_Component.h \ + $(ACE_ROOT)/ace/Framework_Component.inl \ + $(ACE_ROOT)/ace/Framework_Component_T.h \ + $(ACE_ROOT)/ace/Framework_Component_T.inl \ + $(ACE_ROOT)/ace/Framework_Component_T.cpp \ + $(ACE_ROOT)/ace/Thread_Manager.i + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/ACEXML/compass/Property.cpp b/ACEXML/compass/Property.cpp new file mode 100644 index 00000000000..50021e0a974 --- /dev/null +++ b/ACEXML/compass/Property.cpp @@ -0,0 +1,9 @@ +// $Id$ + +#include "ACEXML/compass/Property.h" + +ACEXML_Property::ACEXML_Property() +{} + +ACEXML_Property::~ACEXML_Property() +{} diff --git a/ACEXML/compass/Property.h b/ACEXML/compass/Property.h index b9bcd7a0970..80d344ba42b 100644 --- a/ACEXML/compass/Property.h +++ b/ACEXML/compass/Property.h @@ -4,22 +4,25 @@ #define ACEXML_PROPERTY_H #include "ace/pre.h" +#include "ACEXML/compass/Compass_Export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "ACEXML/common/XML_Types.h" -#include "ace/ARGV.h" -class ACEXML_Property +class Compass_Export ACEXML_Property { public: ACEXML_Property(void); virtual ~ACEXML_Property(); - virtual set (const ACEXML_String& property, const ACEXML_String& value) = 0; - virtual ACE_ARGV* dump() const = 0; -} + virtual int set (const ACEXML_String& property, + const ACEXML_String& value) = 0; + virtual int set (const ACEXML_String& property, const long value) = 0; + virtual ACEXML_Char* dump() const = 0; +}; + #include "ace/post.h" diff --git a/ACEXML/compass/PropertyFile_Handler.cpp b/ACEXML/compass/PropertyFile_Handler.cpp index febeed540c7..afef6830ceb 100644 --- a/ACEXML/compass/PropertyFile_Handler.cpp +++ b/ACEXML/compass/PropertyFile_Handler.cpp @@ -1,11 +1,12 @@ // $Id$ -#include "PropertyFile_Handler.h" #include "ace/ACE.h" #include "ace/Log_Msg.h" +#include "ACEXML/compass/PropertyFile_Handler.h" +#include "ACEXML/compass/EC_Property.h" #if !defined (__ACEXML_INLINE__) -# include "PropertyFile_Handler.inl" +# include "ACEXML/compass/PropertyFile_Handler.inl" #endif /* __ACEXML_INLINE__ */ static const ACEXML_Char empty_string[] = {0}; @@ -22,18 +23,6 @@ ACEXML_PropertyFile_Handler::~ACEXML_PropertyFile_Handler (void) delete this->property_; } -const ACEXML_Property* -ACEXML_PropertyFile_Handler::get_property (void) const -{ - return this->property_; -} - -void -ACEXML_PropertyFile_Handler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ -} - void ACEXML_PropertyFile_Handler::startElement (const ACEXML_Char *, const ACEXML_Char *, @@ -81,26 +70,18 @@ ACEXML_PropertyFile_Handler::endElement (const ACEXML_Char *, ACEXML_ENV_ARG_DECL) ACE_THROW_SPEC ((ACEXML_SAXException)) { - if (this->name_ != qName) - { - ACE_ERROR ((LM_ERROR, "Mismatched element %s encountered\n", qName)); - ACEXML_SAXParseException* exception = 0; - ACE_NEW_NORETURN (exception, - ACEXML_SAXParseException ("Mismatched Element")); - ACEXML_ENV_RAISE (exception); - } - if (this->name_ == "description") + if (ACE_OS::strcmp (qName, "description") == 0) this->cdata_.clear(); - else if (this->name_ == "value") + else if (ACE_OS::strcmp (qName, "value") == 0) this->value_ = this->cdata_; - else if (this->name_ == "simple") + else if (ACE_OS::strcmp (qName, "simple") == 0) { if (this->atttype_ == "string") { if (this->property_->set (this->attname_, this->value_) != 0) { ACE_ERROR ((LM_ERROR, "Property %s = %s invalid\n", - this->attname_.c_str(), this->value.c_str())); + this->attname_.c_str(), this->value_.c_str())); ACEXML_SAXParseException* exception = 0; ACE_NEW_NORETURN (exception, ACEXML_SAXParseException ("Invalid Property")); @@ -109,18 +90,21 @@ ACEXML_PropertyFile_Handler::endElement (const ACEXML_Char *, } else if (this->atttype_ == "long") { - long value = ACE_OS::strtol (this->value_.c_str(), 10); + long value = ACE_OS::strtol (this->value_.c_str(), 0, 10); if (this->property_->set (this->attname_, value) != 0) - ACE_ERROR ((LM_ERROR, "Property %s = %ld invalid\n", - this->attname_.c_str(), value)); - ACEXML_SAXParseException* exception = 0; - ACE_NEW_NORETURN (exception, - ACEXML_SAXParseException ("Invalid Property")); - ACEXML_ENV_RAISE (exception); + { + ACE_ERROR ((LM_ERROR, "Property %s = %ld invalid\n", + this->attname_.c_str(), value)); + ACEXML_SAXParseException* exception = 0; + ACE_NEW_NORETURN (exception, + ACEXML_SAXParseException ("Invalid Property")); + ACEXML_ENV_RAISE (exception); + } } this->value_.clear(); this->cdata_.clear(); } + this->name_.clear(); return; } @@ -132,98 +116,10 @@ ACEXML_PropertyFile_Handler::characters (const ACEXML_Char *cdata, { if (this->cdata_.length()) this->cdata_ += cdata; - this->cdata_ = cdata; -} - -void -ACEXML_PropertyFile_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - -} - -void -ACEXML_PropertyFile_Handler::endPrefixMapping (const ACEXML_Char * - ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ -} - -void -ACEXML_PropertyFile_Handler::ignorableWhitespace (const ACEXML_Char *, - int, - int - ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - -} - -void -ACEXML_PropertyFile_Handler::processingInstruction (const ACEXML_Char *, - const ACEXML_Char * - ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - -} - -void -ACEXML_PropertyFile_Handler::setDocumentLocator (ACEXML_Locator * locator) -{ - this->locator_ = locator; -} - -void -ACEXML_PropertyFile_Handler::skippedEntity (const ACEXML_Char * - ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ -} - -void -ACEXML_PropertyFile_Handler::startPrefixMapping (const ACEXML_Char *, - const ACEXML_Char * - ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - -} - -// *** Methods inherited from ACEXML_DTDHandler. - -void -ACEXML_PropertyFile_Handler::notationDecl (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * - ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // No-op. -} - -void -ACEXML_PropertyFile_Handler::unparsedEntityDecl (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * - ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // No-op. + else + this->cdata_ = cdata; } -// Methods inherited from ACEXML_EnitityResolver. - -ACEXML_InputSource * -ACEXML_PropertyFile_Handler::resolveEntity (const ACEXML_Char *, - const ACEXML_Char * - ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // No-op. - return 0; -} // Methods inherited from ACEXML_ErrorHandler. diff --git a/ACEXML/compass/PropertyFile_Handler.h b/ACEXML/compass/PropertyFile_Handler.h index aed7d03e5d1..47c86719652 100644 --- a/ACEXML/compass/PropertyFile_Handler.h +++ b/ACEXML/compass/PropertyFile_Handler.h @@ -14,6 +14,7 @@ #define ACEXML_PROPERTYFILE_HANDLER_H #include "ace/pre.h" +#include "ACEXML/compass/Compass_Export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once @@ -30,7 +31,7 @@ * This SAX event handler try to regenerate the XML document it * reads with correct indentation. */ -class ACEXML_PropertyFile_Handler : public ACEXML_DefaultHandler +class Compass_Export ACEXML_PropertyFile_Handler : public ACEXML_DefaultHandler { public: /* @@ -186,6 +187,9 @@ private: }; #if defined (__ACEXML_INLINE__) -# include "PropertyFile_Handler.inl" +# include "ACEXML/compass/PropertyFile_Handler.inl" #endif /* __ACEXML_INLINE__ */ + +#include "ace/post.h" + #endif /* ACEXML_PROPERTYFILE_HANDLER_H */ diff --git a/ACEXML/compass/PropertyFile_Handler.inl b/ACEXML/compass/PropertyFile_Handler.inl index 77b4466a3cb..595fbe03614 100644 --- a/ACEXML/compass/PropertyFile_Handler.inl +++ b/ACEXML/compass/PropertyFile_Handler.inl @@ -1 +1,103 @@ -// -*- C++ -*- $Id$ +// $Id$ + +const ACEXML_Property* +ACEXML_PropertyFile_Handler::get_property (void) const +{ + return this->property_; +} + +void +ACEXML_PropertyFile_Handler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ +} + +void +ACEXML_PropertyFile_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + +} + +void +ACEXML_PropertyFile_Handler::endPrefixMapping (const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ +} + +void +ACEXML_PropertyFile_Handler::ignorableWhitespace (const ACEXML_Char *, + int, + int + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + +} + +void +ACEXML_PropertyFile_Handler::processingInstruction (const ACEXML_Char *, + const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + +} + +void +ACEXML_PropertyFile_Handler::setDocumentLocator (ACEXML_Locator * locator) +{ + this->locator_ = locator; +} + +void +ACEXML_PropertyFile_Handler::skippedEntity (const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ +} + +void +ACEXML_PropertyFile_Handler::startPrefixMapping (const ACEXML_Char *, + const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + +} + +// *** Methods inherited from ACEXML_DTDHandler. + +void +ACEXML_PropertyFile_Handler::notationDecl (const ACEXML_Char *, + const ACEXML_Char *, + const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + // No-op. +} + +void +ACEXML_PropertyFile_Handler::unparsedEntityDecl (const ACEXML_Char *, + const ACEXML_Char *, + const ACEXML_Char *, + const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + // No-op. +} + +// Methods inherited from ACEXML_EnitityResolver. + +ACEXML_InputSource * +ACEXML_PropertyFile_Handler::resolveEntity (const ACEXML_Char *, + const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + // No-op. + return 0; +} diff --git a/ACEXML/compass/ServerActivator.cpp b/ACEXML/compass/ServerActivator.cpp index 3f0faf1ab2c..a1594dc81c8 100644 --- a/ACEXML/compass/ServerActivator.cpp +++ b/ACEXML/compass/ServerActivator.cpp @@ -17,11 +17,11 @@ ServerActivator::ServerActivator() ServerActivator::~ServerActivator() { - ComponentServer* entry = 0; + ComponentServer** entry = 0; for (ComponentServers::iterator iter (*this->comp_servers_); iter.next (entry) != 0; iter->advance()) - delete entry; + delete *entry; } ComponentServer* diff --git a/ACEXML/compass/ServerActivator.h b/ACEXML/compass/ServerActivator.h index 1f2a2a2c4b9..637de028cbd 100644 --- a/ACEXML/compass/ServerActivator.h +++ b/ACEXML/compass/ServerActivator.h @@ -27,7 +27,7 @@ namespace Deployment public: friend class ACE_Singleton ; - ComponentServer* create_component_server (ConfigValues* config) + ComponentServer* create_component_server (ConfigValues* config = 0) ACE_THROW_SPEC ((CreateFailure, InvalidConfiguration)); void remove_component_server (ComponentServer* server) diff --git a/ACEXML/compass/Service.cpp b/ACEXML/compass/Service.cpp new file mode 100644 index 00000000000..9b84ccabde6 --- /dev/null +++ b/ACEXML/compass/Service.cpp @@ -0,0 +1,171 @@ +// $Id$ + +#include "Service.h" +#include "ace/Service_Repository.h" +#include "ace/ARGV.h" + +ACE_RCSID(EC_Examples, Service, "$Id$"); + +extern "C" +int +createService (int argc, char* argv[]) +{ + + if (ACE_Service_Config::process_directive ("dynamic EC_Factory Service_Object * TAO_RTEvent:_make_TAO_EC_Default_Factory() \"-ECDispatching reactive -ECFiltering basic -ECSupplierFiltering per-supplier -ECProxyConsumerLock thread -ECProxySupplierLock thread -ECConsumerControl reactive -ECSupplierControl reactive -ECConsumerControlPeriod 50000 -ECSupplierControlPeriod 50000\"") != 0) + { + + ACE_ERROR_RETURN ((LM_ERROR, + "%p\n", + "ERROR: Client unable to process the " + "Service Configurator directive"), + -1); + } + Service service; + return service.run (argc, argv); +} + +Service::Service() +{ + +} + +int +Service::run (int argc, char* argv[]) +{ +// int register_with_object_manager = 0; +// if (TAO_Singleton_Manager::instance ()->init ( +// register_with_object_manager) == -1) +// ACE_ERROR_RETURN ((LM_ERROR, +// "Service::init -- ORB pre-initialization " +// "failed.\n"), +// -1); // No exceptions available yet, so return +// // an error + + const ACE_Service_Type* service; + const ACE_TCHAR* factory = "EC_Factory"; + + if (ACE_Service_Repository::instance()->find (factory, &service) == -1) + ACE_ERROR_RETURN ((LM_ERROR, "Unable to locate EC_Factory"), -1); + + if (service->type()->init (argc, argv) != 0) + return -1; + + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + // Prepend a "dummy" program name argument to the Service + // Configurator argument vector. + int new_argc = argc + 1; + + CORBA::StringSeq new_argv (new_argc); + new_argv.length (new_argc); + + // Prevent the ORB from opening the Service Configurator file + // again since the Service Configurator file is already in the + // process of being opened. + new_argv[0] = CORBA::string_dup ("dummy"); + + // Copy the remaining arguments into the new argument vector. + for (int i = new_argc - argc, j = 0; + j < argc; + ++i, ++j) + new_argv[i] = CORBA::string_dup (argv[j]); + + // Initialize the ORB. + CORBA::ORB_var orb = CORBA::ORB_init (new_argc, + new_argv.get_buffer (), + "Service" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->orb_ = orb.in(); + + CORBA::Object_var object = + orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + PortableServer::POA_var poa = + PortableServer::POA::_narrow (object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + PortableServer::POAManager_var poa_manager = + poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + TAO_EC_Event_Channel_Attributes attributes (poa.in (), + poa.in ()); + + TAO_EC_Event_Channel ec_impl (attributes); + ec_impl.activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + RtecEventChannelAdmin::EventChannel_var event_channel = + ec_impl._this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + TAO_Naming_Client naming_client; + + // Initialization of the naming service. + if (naming_client.init (orb.in ()) != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "(%P|%t) Unable to initialize " + "the TAO_Naming_Client. \n"), + -1); + + CosNaming::Name ec_name (1); + ec_name.length (1); + ec_name[0].id = CORBA::string_dup ("EventChannel"); + ACE_TRY_CHECK; + + naming_client->bind (ec_name, event_channel.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + int done = 0; + + // Wait for events, using work_pending()/perform_work() may help + // or using another thread, this example is too simple for that. + + while (!done) + { + CORBA::Boolean pending = + orb->work_pending (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (pending) + { + orb->perform_work (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_TRY + { + CORBA::Object_var ec_obj = + naming_client->resolve (ec_name + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCH (CosNaming::NamingContext::NotFound, ex) + { + ACE_DEBUG ((LM_DEBUG, "EventChannel has been destroyed\n")); + done = 1; + break; + } + ACE_ENDTRY; + } + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Service"); + return 1; + } + ACE_ENDTRY; +// if (TAO_Singleton_Manager::instance ()->fini () == -1) +// ACE_ERROR_RETURN ((LM_ERROR, +// "Service::fini -- ORB pre-termination failed."), +// -1); + return 0; + +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/ACEXML/compass/Service.h b/ACEXML/compass/Service.h new file mode 100644 index 00000000000..b2e3db4226d --- /dev/null +++ b/ACEXML/compass/Service.h @@ -0,0 +1,36 @@ +// $Id$ + +#ifndef SERVICE_H +#define SERVICE_H + +#include "orbsvcs/RtecEventCommS.h" +#include "orbsvcs/Event/EC_Event_Channel.h" +#include "orbsvcs/Event/EC_Default_Factory.h" +#include "orbsvcs/CosNamingS.h" +#include "orbsvcs/Naming/Naming_Utils.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class Service +{ + // = TITLE + // Simple consumer object + // + // = DESCRIPTION + // This class is a consumer of events. + // It simply registers for one event type. + // +public: + Service (void); + // Constructor + + int run (int argc, char* argv[]); + // Run the test + +private: + CORBA::ORB_ptr orb_; +}; + +#endif /* CONSUMER_H */ diff --git a/ACEXML/compass/SoftPkg.cpp b/ACEXML/compass/SoftPkg.cpp index 56c6033c582..e0bbea4fc2c 100644 --- a/ACEXML/compass/SoftPkg.cpp +++ b/ACEXML/compass/SoftPkg.cpp @@ -3,54 +3,189 @@ #include "ACEXML/compass/SoftPkg.h" ACEXML_SoftPkg::ACEXML_SoftPkg() - : current_dep_ (0), current_impl_ (0) + : current_code_ (0), current_dep_ (0), current_impl_ (0) {} ACEXML_SoftPkg::~ACEXML_SoftPkg() { - Dependency* dep = 0; - Dependencies::iterator dep_iter (this->deps_); + Dependency** dep = 0; + DEP_ITERATOR dep_iter (this->deps_); for (; dep_iter.next (dep); dep_iter.advance()) - delete dep; - Implementation* impl = 0; - Implementations::iterator impl_iter (this->impls_); + delete *dep; + Implementation** impl = 0; + IMPL_ITERATOR impl_iter (this->impls_); for (; impl_iter.next (impl); impl_iter.advance()) - delete impl; + delete *impl; +} + +void +ACEXML_SoftPkg::dump (void)const +{ + ACE_DEBUG ((LM_DEBUG, "Name = %s\n", this->name_.c_str())); + ACE_DEBUG ((LM_DEBUG, "Version = %s\n", this->version_.c_str())); + ACE_DEBUG ((LM_DEBUG, "Package Type = %s\n", this->pkgtype_.c_str())); + ACE_DEBUG ((LM_DEBUG, "Title = %s\n", this->title_.c_str())); + ACE_DEBUG ((LM_DEBUG, "Description = %s\n", this->description_.c_str())); + this->propfile_.dump(); + Dependency** dep = 0; + Dependencies::const_iterator dep_iter (this->deps_); + for (; dep_iter.next (dep); dep_iter.advance()) + (*dep)->dump(); + Implementation** impl = 0; + Implementations::const_iterator impl_iter (this->impls_); + for (; impl_iter.next (impl); impl_iter.advance()) + (*impl)->dump(); +} + +void +ACEXML_SoftPkg::PropertyFile::dump(void)const +{ + ACE_DEBUG ((LM_DEBUG, " Property File = %s\n", this->file_.c_str())); +} + +void +ACEXML_SoftPkg::OperSys::dump(void)const +{ + ACE_DEBUG ((LM_DEBUG, " Operating System: \n Name = %s\n Version = %s\n", + this->name_.c_str(), this->version_.c_str())); +} +void +ACEXML_SoftPkg::Code::dump(void)const +{ + ACE_DEBUG ((LM_DEBUG, " Code: \n Type = %s\n File = %s\n " + "EntryPoint = %s\n", this->type_.c_str(), this->file_.c_str(), + this->func_.c_str())); +} +void +ACEXML_SoftPkg::Dependency::dump(void)const +{ + ACE_DEBUG ((LM_DEBUG, "Dependency: \n Type = %s\n File = %s\n ", + this->type_.c_str(), this->localfile_.c_str())); +} +void +ACEXML_SoftPkg::Implementation::dump(void)const +{ + ACE_DEBUG ((LM_DEBUG, "Implementation: \n Id = %s\n ", this->id_.c_str())); + this->os_.dump(); + ACE_DEBUG ((LM_DEBUG, "Processor = %s\n Compiler = %s\n ProgLang = %s\n", + this->cpu_.c_str(), this->compiler_.c_str(), + this->lang_.c_str())); + this->propfile_.dump(); + this->code_.dump(); } int -ACEXML_SoftPkg::add_impl (const ACEXML_String& id) +ACEXML_SoftPkg::start_element (const ACEXML_Char* element, + const ACEXML_String& id) { - Implementation* impl = 0; - ACE_NEW_RETURN (impl, Implementation, -1); - impl.id_ = id; - if (this->impls_.insert (impl) < 0) + if (ACE_OS::strcmp (element, "implementation") == 0) { - ACE_ERROR ((LM_ERROR, "Implementation already exists\n")); - return -1; + Implementation* impl = 0; + ACE_NEW_RETURN (impl, Implementation, -1); + impl->id_ = id; + if (this->impls_.insert (impl) < 0) + { + ACE_ERROR ((LM_ERROR, "Implementation already exists\n")); + return -1; + } + this->current_impl_ = impl; } + else if (ACE_OS::strcmp (element, "dependency") == 0) + { + Dependency* dep = 0; + ACE_NEW_RETURN (dep, Dependency, -1); + dep->type_ = id; + if (this->deps_.insert (dep) < 0) + { + ACE_ERROR ((LM_ERROR, "Dependency already exists\n")); + return -1; + } + this->current_dep_ = dep; + } + else if (ACE_OS::strcmp (element, "code") == 0) + { + if (!this->current_impl_) + { + ACE_ERROR ((LM_ERROR, "Code section outside of implementation\n")); + return -1; + } + this->current_code_ = &this->current_impl_->code_; + this->current_code_->type_ = id; + } + else + return -1; + return 0; +} +void +ACEXML_SoftPkg::end_element (const ACEXML_Char* element) +{ + if (ACE_OS::strcmp (element, "implementation") == 0) + this->current_impl_ = 0; + else if (ACE_OS::strcmp (element, "dependency") == 0) + this->current_dep_ = 0; + else if (ACE_OS::strcmp (element, "code") == 0) + this->current_code_ = 0; + return; +} +const ACEXML_SoftPkg::Implementations& +ACEXML_SoftPkg::get_impls (void) const +{ + return this->impls_; +} +const ACEXML_SoftPkg::Dependencies& +ACEXML_SoftPkg::get_deps (void) const +{ + return this->deps_; +} - int add_dep (const ACEXML_String& type); - Implementation* get_current_impl (void); - const ACE_Unbouded_Set& get_all_impl (void) const; -private: - ACEXML_String name_; - ACEXML_String version_; - ACEXML_String pkgtype_; - ACEXML_String title_; - ACEXML_String author_; - ACEXML_String company_; - ACEXML_String webpage_; - ACEXML_String description_; - Dependency* current_dep_; - Implementation* current_impl_; - ACE_Unbouded_Set deps_; - ACE_Unbouded_Set impls_; -}; - -#include "ace/post.h" - -#endif /* ACEXML_SOFTPKG_H */ +int +ACEXML_SoftPkg::set (const ACEXML_Char* element, + const ACEXML_String& attname, + const ACEXML_String& value) +{ + if (ACE_OS::strcmp (element, "softpkg") == 0) + { + if (attname == "name") + this->name_ = value; + else if (attname == "version") + this->version_ = value; + } + else if (ACE_OS::strcmp (element, "pkgtype") == 0) + this->pkgtype_ = value; + else if (ACE_OS::strcmp (element, "title") == 0) + this->title_ = value; + else if (ACE_OS::strcmp (element, "description") == 0) + this->description_ = value; + else if (ACE_OS::strcmp (element, "localfile") == 0) + this->current_dep_->localfile_ = value; + else if (ACE_OS::strcmp (element, "os") == 0) + { + if (attname == "name") + this->current_impl_->os_.name_ = value; + else + this->current_impl_->os_.version_ = value; + } + else if (ACE_OS::strcmp (element, "processor") == 0) + this->current_impl_->cpu_ = value; + else if (ACE_OS::strcmp (element, "compiler") == 0) + this->current_impl_->compiler_ = value; + else if (ACE_OS::strcmp (element, "programminglanguage") == 0) + this->current_impl_->lang_ = value; + else if (ACE_OS::strcmp (element, "fileinarchive") == 0) + { + if (this->current_code_) + this->current_code_->file_ = value; + else if (this->current_impl_) + this->current_impl_->propfile_.file_ = value; + else + this->propfile_.file_ = value; + } + else if (ACE_OS::strcmp (element, "entrypoint") == 0) + this->current_code_->func_ = value; + else + return -1; + return 0; +} diff --git a/ACEXML/compass/SoftPkg.h b/ACEXML/compass/SoftPkg.h index c16eb54f719..5cadaf5444c 100644 --- a/ACEXML/compass/SoftPkg.h +++ b/ACEXML/compass/SoftPkg.h @@ -4,6 +4,7 @@ #define ACEXML_SOFTPKG_H #include "ace/pre.h" +#include "ACEXML/compass/Compass_Export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once @@ -12,7 +13,7 @@ #include "ACEXML/common/XML_Types.h" #include "ace/Unbounded_Set.h" -class ACEXML_SoftPkg +class Compass_Export ACEXML_SoftPkg { public: typedef ACEXML_String Localfile; @@ -21,23 +22,31 @@ public: typedef ACEXML_String Processor; typedef ACEXML_String Compiler; typedef ACEXML_String ProgLang; - typedef PropertyFile Fileinarchive; + + struct PropertyFile + { + Fileinarchive file_; + void dump(void) const; + }; struct Dependency { ACEXML_String type_; - localfile localfile_; + Localfile localfile_; + void dump(void) const; }; struct OperSys { ACEXML_String name_; ACEXML_String version_; + void dump(void) const; }; struct Code { ACEXML_String type_; Fileinarchive file_; EntryPoint func_; + void dump(void) const; }; struct Implementation { @@ -48,29 +57,35 @@ public: ProgLang lang_; PropertyFile propfile_; Code code_; + void dump(void) const; }; - typedef ACE_Unbouded_Set Dependencies; - typedef ACE_Unbouded_Set Implementations; + typedef ACE_Unbounded_Set Dependencies; + typedef ACE_Unbounded_Set_Iterator DEP_ITERATOR; + typedef ACE_Unbounded_Set Implementations; + typedef ACE_Unbounded_Set_Iterator IMPL_ITERATOR; ACEXML_SoftPkg(); ~ACEXML_SoftPkg(); - int add_impl (const ACEXML_String& id); - int add_dep (const ACEXML_String& type); - Implementation* get_current_impl (void); - const ACE_Unbouded_Set& get_all_impl (void) const; + int start_element (const ACEXML_Char* element, const ACEXML_String& id); + void end_element (const ACEXML_Char* element); + const Implementations& get_impls (void) const; + const Dependencies& get_deps (void) const; + int set (const ACEXML_Char* element, + const ACEXML_String& attname, + const ACEXML_String& value); + void dump(void) const; private: ACEXML_String name_; ACEXML_String version_; ACEXML_String pkgtype_; ACEXML_String title_; - ACEXML_String author_; - ACEXML_String company_; - ACEXML_String webpage_; ACEXML_String description_; + PropertyFile propfile_; + Code* current_code_; Dependency* current_dep_; Implementation* current_impl_; - Implementations deps_; - Dependencies impls_; + Implementations impls_; + Dependencies deps_; }; #include "ace/post.h" diff --git a/ACEXML/compass/SoftPkgHandler.cpp b/ACEXML/compass/SoftPkgHandler.cpp new file mode 100644 index 00000000000..cf5c0512f7c --- /dev/null +++ b/ACEXML/compass/SoftPkgHandler.cpp @@ -0,0 +1,211 @@ +// $Id$ + +#include "ACEXML/compass/SoftPkgHandler.h" +#include "ace/ACE.h" +#include "ace/Log_Msg.h" + +#if !defined (__ACEXML_INLINE__) +# include "ACEXML/compass/SoftPkgHandler.inl" +#endif /* __ACEXML_INLINE__ */ + +static const ACEXML_Char empty_string[] = {0}; + +ACEXML_SoftPkgHandler::ACEXML_SoftPkgHandler (const ACEXML_Char* filename) + : fileName_(ACE::strnew (filename)), locator_ (0), softpkg_ (0) +{ + // no-op +} + +ACEXML_SoftPkgHandler::~ACEXML_SoftPkgHandler (void) +{ + delete [] this->fileName_; + delete this->softpkg_; +} + +void +ACEXML_SoftPkgHandler::startElement (const ACEXML_Char *, + const ACEXML_Char *, + const ACEXML_Char *qName, + ACEXML_Attributes *alist + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + ACEXML_SAXParseException* exception = 0; + if (!this->softpkg_) + { + ACE_NEW_NORETURN (this->softpkg_, ACEXML_SoftPkg); + if (!this->softpkg_) + { + ACE_ERROR ((LM_ERROR, "Unable to allocate memory for %s\n", + qName)); + return; + } + } + if (ACE_OS::strcmp (qName, "softpkg") == 0 + || ACE_OS::strcmp (qName, "os") == 0 + || ACE_OS::strcmp (qName, "processor") == 0 + || ACE_OS::strcmp (qName, "compiler") == 0 + || ACE_OS::strcmp (qName, "programminglanguage") == 0 + || ACE_OS::strcmp (qName, "fileinarchive") == 0 + || ACE_OS::strcmp (qName, "localfile") == 0) + { + for (size_t i = 0; i < alist->getLength (); ++i) + { + if (this->softpkg_->set (qName, alist->getQName (i), + alist->getValue (i)) < 0) + { + ACE_ERROR ((LM_ERROR, "Unable to set value for element %s\n", + qName)); + ACE_NEW_NORETURN (exception, + ACEXML_SAXParseException ("Set value")); + ACEXML_ENV_RAISE (exception); + } + } + } + else if (ACE_OS::strcmp (qName, "dependency") == 0 || + ACE_OS::strcmp (qName, "implementation") == 0 || + ACE_OS::strcmp (qName, "code") == 0) + { + if (this->softpkg_->start_element (qName, alist->getValue (0U)) < 0) + { + ACE_ERROR ((LM_ERROR, "Invalid element %s encountered\n", + qName)); + ACE_NEW_NORETURN (exception, + ACEXML_SAXParseException ("Invalid Element")); + ACEXML_ENV_RAISE (exception); + } + } + else if (ACE_OS::strcmp (qName, "pkgtype") == 0 + || ACE_OS::strcmp (qName, "title") == 0 + || ACE_OS::strcmp (qName, "description") == 0 + || ACE_OS::strcmp (qName, "propertyfile") == 0 + || ACE_OS::strcmp (qName, "entrypoint") == 0) + return; + else + { + ACE_ERROR ((LM_ERROR, "Unknown element %s encountered\n", qName)); + ACEXML_SAXParseException* exception = 0; + ACE_NEW_NORETURN (exception, + ACEXML_SAXParseException ("Unknown Element")); + ACEXML_ENV_RAISE (exception); + } + return; +} + +void +ACEXML_SoftPkgHandler::endElement (const ACEXML_Char *, + const ACEXML_Char *, + const ACEXML_Char *qName + ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + if (ACE_OS::strcmp (qName, "pkgtype") == 0 + || ACE_OS::strcmp (qName, "title") == 0 + || ACE_OS::strcmp (qName, "description") == 0 + || ACE_OS::strcmp (qName, "propertyfile") == 0 + || ACE_OS::strcmp (qName, "entrypoint") == 0) + { + if (this->cdata_.length()) + { + ACEXML_String temp; + if (this->softpkg_->set (qName, temp, this->cdata_) < 0) + { + ACE_ERROR ((LM_ERROR, "Invalid content in %s\n", qName)); + ACEXML_SAXParseException* exception = 0; + ACE_NEW_NORETURN (exception, + ACEXML_SAXParseException ("Invalid Content")); + ACEXML_ENV_RAISE (exception); + } + this->cdata_.clear(); + } +// else +// { +// ACE_ERROR ((LM_ERROR, "Empty element %s encountered\n", qName)); +// ACEXML_SAXParseException* exception = 0; +// ACE_NEW_NORETURN (exception, +// ACEXML_SAXParseException ("Empty Element")); +// ACEXML_ENV_RAISE (exception); +// } + } + else if (ACE_OS::strcmp (qName, "dependency") == 0 || + ACE_OS::strcmp (qName, "implementation") == 0 || + ACE_OS::strcmp (qName, "code") == 0) + { + this->softpkg_->end_element (qName); + } + else if (ACE_OS::strcmp (qName, "softpkg") == 0 + || ACE_OS::strcmp (qName, "os") == 0 + || ACE_OS::strcmp (qName, "processor") == 0 + || ACE_OS::strcmp (qName, "compiler") == 0 + || ACE_OS::strcmp (qName, "programminglanguage") == 0 + || ACE_OS::strcmp (qName, "fileinarchive") == 0 + || ACE_OS::strcmp (qName, "localfile") == 0) + + return; + else + { + ACE_ERROR ((LM_ERROR, "Unknown element %s encountered\n", qName)); + ACEXML_SAXParseException* exception = 0; + ACE_NEW_NORETURN (exception, + ACEXML_SAXParseException ("Unknown Element")); + ACEXML_ENV_RAISE (exception); + } + return; +} + +void +ACEXML_SoftPkgHandler::characters (const ACEXML_Char *cdata, + int, int + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + if (this->cdata_.length()) + this->cdata_ += cdata; + else + this->cdata_ = cdata; +} + + +// Methods inherited from ACEXML_ErrorHandler. + +/* + * Receive notification of a recoverable error. + */ +void +ACEXML_SoftPkgHandler::error (ACEXML_SAXParseException & ex + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ", + (this->locator_->getSystemId() == 0 + ? this->fileName_ : this->locator_->getSystemId()), + this->locator_->getLineNumber(), + this->locator_->getColumnNumber())); + ex.print(); +} + +void +ACEXML_SoftPkgHandler::fatalError (ACEXML_SAXParseException & ex + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ", + (this->locator_->getSystemId() == 0 + ? this->fileName_ : this->locator_->getSystemId()), + this->locator_->getLineNumber(), + this->locator_->getColumnNumber())); + ex.print(); +} + +void +ACEXML_SoftPkgHandler::warning (ACEXML_SAXParseException & ex + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ", + (this->locator_->getSystemId() == 0 + ? this->fileName_ : this->locator_->getSystemId()), + this->locator_->getLineNumber(), + this->locator_->getColumnNumber())); + ex.print(); +} diff --git a/ACEXML/compass/SoftPkgHandler.h b/ACEXML/compass/SoftPkgHandler.h new file mode 100644 index 00000000000..887b72ebf62 --- /dev/null +++ b/ACEXML/compass/SoftPkgHandler.h @@ -0,0 +1,191 @@ +// $Id$ + +//============================================================================= +/** + * @file SoftPkgHandler.h + * + * $Id$ + * + * @author Krishnakumar B + */ +//============================================================================= + +#ifndef ACEXML_SOFTPKG_HANDLER_H +#define ACEXML_SOFTPKG_HANDLER_H + +#include "ace/pre.h" +#include "ACEXML/compass/Compass_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ACEXML/common/DefaultHandler.h" +#include "ACEXML/compass/SoftPkg.h" + +/** + * @class ACEXML_SoftPkgHandler + * + * @brief ACEXML_SoftPkgHandler is an example SAX event handler. + * + * This SAX event handler try to regenerate the XML document it + * reads with correct indentation. + */ +class Compass_Export ACEXML_SoftPkgHandler : public ACEXML_DefaultHandler +{ +public: + /* + * Default constructor. + */ + ACEXML_SoftPkgHandler (const ACEXML_Char* name); + + /* + * Default destructor. + */ + virtual ~ACEXML_SoftPkgHandler (void); + + // Methods inherited from ACEXML_ContentHandler. + + /* + * Receive notification of character data. + */ + virtual void characters (const ACEXML_Char *ch, int start, + int length ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * Receive notification of the end of a document. + */ + virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * Receive notification of the end of an element. + */ + virtual void endElement (const ACEXML_Char *namespaceURI, + const ACEXML_Char *localName, + const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * End the scope of a prefix-URI mapping. + */ + virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * Receive notification of ignorable whitespace in element content. + */ + virtual void ignorableWhitespace (const ACEXML_Char *ch, int start, + int length ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * Receive notification of a processing instruction. + */ + virtual void processingInstruction (const ACEXML_Char *target, + const ACEXML_Char *data + ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * Receive an object for locating the origin of SAX document events. + */ + virtual void setDocumentLocator (ACEXML_Locator *locator) ; + + /* + * Receive notification of a skipped entity. + */ + virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) + ; + + /* + * Receive notification of the beginning of a document. + */ + virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * Receive notification of the beginning of an element. + */ + virtual void startElement (const ACEXML_Char *namespaceURI, + const ACEXML_Char *localName, + const ACEXML_Char *qName, + ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * Begin the scope of a prefix-URI Namespace mapping. + */ + virtual void startPrefixMapping (const ACEXML_Char *prefix, + const ACEXML_Char *uri ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + // *** Methods inherited from ACEXML_DTDHandler. + + /* + * Receive notification of a notation declaration event. + */ + virtual void notationDecl (const ACEXML_Char *name, + const ACEXML_Char *publicId, + const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * Receive notification of an unparsed entity declaration event. + */ + virtual void unparsedEntityDecl (const ACEXML_Char *name, + const ACEXML_Char *publicId, + const ACEXML_Char *systemId, + const ACEXML_Char *notationName + ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + // Methods inherited from ACEXML_EnitityResolver. + + /* + * Allow the application to resolve external entities. + */ + virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId, + const ACEXML_Char *systemId + ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + // Methods inherited from ACEXML_ErrorHandler. + + /* + * Receive notification of a recoverable error. + */ + virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * Receive notification of a non-recoverable error. + */ + virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + /* + * Receive notification of a warning. + */ + virtual void warning (ACEXML_SAXParseException &exception + ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + virtual const ACEXML_SoftPkg* get_softpkg(void) const; + +private: + ACEXML_Char* fileName_; + ACEXML_Locator* locator_; + ACEXML_SoftPkg* softpkg_; + ACEXML_String cdata_; +}; + +#if defined (__ACEXML_INLINE__) +#include "ACEXML/compass/SoftPkgHandler.inl" +#endif /* __ACEXML_INLINE__ */ + +#include "ace/post.h" + +#endif /* ACEXML_SOFTPKG_HANDLER_H */ diff --git a/ACEXML/compass/SoftPkgHandler.inl b/ACEXML/compass/SoftPkgHandler.inl new file mode 100644 index 00000000000..733ede135dc --- /dev/null +++ b/ACEXML/compass/SoftPkgHandler.inl @@ -0,0 +1,104 @@ +// $Id$ + +const ACEXML_SoftPkg* +ACEXML_SoftPkgHandler::get_softpkg (void) const +{ + return this->softpkg_; +} + +void +ACEXML_SoftPkgHandler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ +} + +void +ACEXML_SoftPkgHandler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + +} + +void +ACEXML_SoftPkgHandler::endPrefixMapping (const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ +} + +void +ACEXML_SoftPkgHandler::ignorableWhitespace (const ACEXML_Char *cdata, + int, + int + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + if (this->cdata_.length()) + this->cdata_ += cdata; +} + +void +ACEXML_SoftPkgHandler::processingInstruction (const ACEXML_Char *, + const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + +} + +void +ACEXML_SoftPkgHandler::setDocumentLocator (ACEXML_Locator * locator) +{ + this->locator_ = locator; +} + +void +ACEXML_SoftPkgHandler::skippedEntity (const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ +} + +void +ACEXML_SoftPkgHandler::startPrefixMapping (const ACEXML_Char *, + const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + +} + +// *** Methods inherited from ACEXML_DTDHandler. + +void +ACEXML_SoftPkgHandler::notationDecl (const ACEXML_Char *, + const ACEXML_Char *, + const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + // No-op. +} + +void +ACEXML_SoftPkgHandler::unparsedEntityDecl (const ACEXML_Char *, + const ACEXML_Char *, + const ACEXML_Char *, + const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + // No-op. +} + +// Methods inherited from ACEXML_EnitityResolver. + +ACEXML_InputSource * +ACEXML_SoftPkgHandler::resolveEntity (const ACEXML_Char *, + const ACEXML_Char * + ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + // No-op. + return 0; +} diff --git a/ACEXML/compass/Supplier.cpp b/ACEXML/compass/Supplier.cpp new file mode 100644 index 00000000000..29b240cd4f9 --- /dev/null +++ b/ACEXML/compass/Supplier.cpp @@ -0,0 +1,185 @@ +// $Id$ + +#include "Supplier.h" +#include "orbsvcs/RtecEventChannelAdminC.h" +#include "orbsvcs/Event_Service_Constants.h" + +ACE_RCSID(EC_Examples, Supplier, "$Id$"); + +extern "C" +int +createSupplier (int argc, char* argv[]) +{ + Supplier supplier; + return supplier.run (argc, argv); +} + +Supplier::Supplier (void) +{ +} + +int +Supplier::run (int argc, char* argv[]) +{ + +// int register_with_object_manager = 0; +// if (TAO_Singleton_Manager::instance ()->init ( +// register_with_object_manager) == -1) +// ACE_ERROR_RETURN ((LM_ERROR, +// "Supplier::init -- ORB pre-initialization " +// "failed.\n"), +// -1); // No exceptions available yet, so return +// // an error status. + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + // Prepend a "dummy" program name argument to the Service + // Configurator argument vector. + int new_argc = argc + 1; + + CORBA::StringSeq new_argv (new_argc); + new_argv.length (new_argc); + + // Prevent the ORB from opening the Service Configurator file + // again since the Service Configurator file is already in the + // process of being opened. + new_argv[0] = CORBA::string_dup ("dummy"); + + // Copy the remaining arguments into the new argument vector. + for (int i = new_argc - argc, j = 0; + j < argc; + ++i, ++j) + new_argv[i] = CORBA::string_dup (argv[j]); + + // Initialize the ORB. + CORBA::ORB_var orb = CORBA::ORB_init (new_argc, + new_argv.get_buffer (), + "Consumer" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::Object_var object = + orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + PortableServer::POA_var poa = + PortableServer::POA::_narrow (object.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + PortableServer::POAManager_var poa_manager = + poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + TAO_Naming_Client naming_client; + + // Initialization of the naming service. + if (naming_client.init (orb.in ()) != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "(%P|%t) Unable to initialize " + "the TAO_Naming_Client. \n"), + -1); + + CosNaming::Name ec_name (1); + ec_name.length (1); + ec_name[0].id = CORBA::string_dup ("EventChannel"); + + CORBA::Object_var ec_obj = + naming_client->resolve (ec_name + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + RtecEventChannelAdmin::EventChannel_var event_channel = + RtecEventChannelAdmin::EventChannel::_narrow (ec_obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // The canonical protocol to connect to the EC + RtecEventChannelAdmin::SupplierAdmin_var supplier_admin = + event_channel->for_suppliers (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + RtecEventChannelAdmin::ProxyPushConsumer_var consumer = + supplier_admin->obtain_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + RtecEventComm::PushSupplier_var supplier = + this->_this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Simple publication, but usually the helper classes in + // $TAO_ROOT/orbsvcs/Event_Utils.h are a better way to do this. + RtecEventChannelAdmin::SupplierQOS qos; + qos.publications.length (1); + RtecEventComm::EventHeader& h0 = + qos.publications[0].event.header; + h0.type = ACE_ES_EVENT_UNDEFINED; // first free event type + h0.source = 1; // first free event source + + consumer->connect_push_supplier (supplier.in (), qos + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Push the events... + ACE_Time_Value sleep_time (0, 30000); // 10 milliseconds + + RtecEventComm::EventSet event (1); + event.length (1); + event[0].header.type = ACE_ES_EVENT_UNDEFINED; + event[0].header.source = 1; + event[0].header.ttl = 1; + + for (int i = 0; i != 2000; ++i) + { + consumer->push (event ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_OS::sleep (sleep_time); + } + ACE_OS::sleep (3); + + // Disconnect from the EC + consumer->disconnect_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_DEBUG ((LM_DEBUG, "Push Consumer disconnected\n")); + + naming_client->unbind (ec_name ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Destroy the EC.... + event_channel->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_DEBUG ((LM_DEBUG, "Destroying the EventChannel\n")); + + // Deactivate this object... + PortableServer::ObjectId_var id = + poa->servant_to_id (this ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + poa->deactivate_object (id.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Destroy the POA + poa->destroy (1, 0 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Supplier::run"); + return 1; + } + ACE_ENDTRY; +// if (TAO_Singleton_Manager::instance ()->fini () == -1) +// ACE_ERROR_RETURN ((LM_ERROR, +// "Supplier::fini -- ORB pre-termination failed."), +// -1); + ACE_DEBUG ((LM_DEBUG, "Supplier exiting...\n")); + return 0; +} + +void +Supplier::disconnect_push_supplier (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/ACEXML/compass/Supplier.h b/ACEXML/compass/Supplier.h new file mode 100644 index 00000000000..e8a3a4d546e --- /dev/null +++ b/ACEXML/compass/Supplier.h @@ -0,0 +1,51 @@ +/* -*- C++ -*- */ +// $Id$ +// +// ============================================================================ +// +// = LIBRARY +// ORBSVCS Real-time Event Channel examples +// +// = FILENAME +// Supplier +// +// = AUTHOR +// Carlos O'Ryan (coryan@cs.wustl.edu) +// +// ============================================================================ + +#ifndef SUPPLIER_H +#define SUPPLIER_H + +#include "orbsvcs/RtecEventCommS.h" +#include "orbsvcs/CosNamingS.h" +#include "orbsvcs/Naming/Naming_Utils.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class Supplier : public POA_RtecEventComm::PushSupplier +{ + // = TITLE + // Simple supplier object + // + // = DESCRIPTION + // This class is a supplier of events. + // It simply publishes one event type. + // +public: + Supplier (void); + // Constructor + + int run (int argc, char* argv[]); + // Run the test + + // = The RtecEventComm::PushSupplier methods + + virtual void disconnect_push_supplier (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)); + // The skeleton methods. +}; + +#endif /* SUPPLIER_H */ diff --git a/ACEXML/compass/Test.cpp b/ACEXML/compass/Test.cpp new file mode 100644 index 00000000000..36eb658f6f1 --- /dev/null +++ b/ACEXML/compass/Test.cpp @@ -0,0 +1,88 @@ +// $Id$ + +#include "ace/Thread_Manager.h" +#include "ace/DLL.h" +#include "ace/ARGV.h" +#include "ace/SString.h" +#include "tao/ORB_Core.h" + +static int myargc = 0; +static ACE_ARGV myargv; + +void* +create_dll (void* name) +{ + typedef int (*dll_func) (int, char**); + const ACE_TCHAR* dllname = ACE_reinterpret_cast (const ACE_TCHAR*, name); + if (dllname == 0) + { + ACE_ERROR ((LM_ERROR, "Trying to create a dll with null name")); + return (void*)-1; + } + ACE_DLL dll; + if (dll.open (dllname) == -1) + { + ACE_ERROR ((LM_ERROR, "Failed to open Service: %m\n")); + return (void*)-1; + } + + void *foo; + const ACE_TCHAR* create = "create"; + ACE_CString entrypoint (create); + entrypoint += dllname; + foo = dll.symbol (entrypoint.c_str()); + + // Cast the void* to long first. + long tmp = ACE_reinterpret_cast (long, foo); + dll_func factory = ACE_reinterpret_cast (dll_func, tmp); + if (factory == 0) + { + ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to resolve factory: %s: %m\n"), + dll.error ())); + return (void*)-1; + } + ACE_ARGV serviceargv; + if (ACE_OS::strcmp (dllname, "Service") == 0) + { + serviceargv.add (myargv.argv()); +// serviceargv.add ("-ORBsvcconf"); +// serviceargv.add ("ec.conf"); + return (void*)factory (serviceargv.argc(), serviceargv.argv()); + } + return (void*)factory (myargc, myargv.argv()); +} + +int +main (int argc, char* argv[]) +{ + myargc = argc; + myargv.add (argv); + + const ACE_TCHAR* services[] = { "Service", "Supplier", "Consumer" }; + + ACE_Thread_Manager* thr_mgr = ACE_Thread_Manager::instance(); + +// if (TAO_Singleton_Manager::instance ()->init (0) == -1) +// ACE_ERROR_RETURN ((LM_ERROR, +// "Test::init -- ORB pre-initialization " +// "failed.\n"), +// -1); // No exceptions available yet, so return +// // an error status. + for (size_t i = 0; i < 3; ++i) + { + if (thr_mgr->spawn (create_dll,(void*)services[i]) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("Unable to spawn dll %s\n"), + services[i]), -1); + } + ACE_OS::sleep (3); + } +// if (TAO_Singleton_Manager::instance ()->fini () == -1) +// ACE_ERROR_RETURN ((LM_ERROR, +// "Test::fini -- ORB pre-termination " +// "failed."), +// -1); + thr_mgr->wait(); + return 0; +} diff --git a/ACEXML/compass/compass.mpc b/ACEXML/compass/compass.mpc index 5ddc6a9baab..decc796cb82 100644 --- a/ACEXML/compass/compass.mpc +++ b/ACEXML/compass/compass.mpc @@ -3,4 +3,19 @@ project (Compass) : acelib { sharedname = Compass dllflags = COMPASS_BUILD libs = ACEXML ACEXML_Parser zzip z + Source_Files { + Property.cpp + PropertyFile_Handler.cpp + SoftPkgHandler.cpp + SoftPkg.cpp + EC_Property.cpp + } +} + +project (Deployment) : aceexe { + exename = Deployment + libs = Compass ACEXML_Parser ACEXML zzip z + Source_Files { + Deployment.cpp + } } diff --git a/ACEXML/compass/meta-inf b/ACEXML/compass/meta-inf index f52a318b2ef..bf5736a92bd 100644 --- a/ACEXML/compass/meta-inf +++ b/ACEXML/compass/meta-inf @@ -3,14 +3,11 @@ CORBA Component EventChannel - DOC group - - A simple Event Channel test - + diff --git a/ACEXML/parser/parser/Entity_Manager.i b/ACEXML/parser/parser/Entity_Manager.i index 26da9ad15d9..54a86169946 100644 --- a/ACEXML/parser/parser/Entity_Manager.i +++ b/ACEXML/parser/parser/Entity_Manager.i @@ -43,7 +43,7 @@ ACEXML_Entity_Manager::resolve_entity (const ACEXML_Char* ref, ACEXML_INLINE int ACEXML_Entity_Manager::reset (void) { - return this->entities_.close(); + return this->entities_.unbind_all(); } diff --git a/ACEXML/parser/parser/Parser.cpp b/ACEXML/parser/parser/Parser.cpp index 5ab019ed062..7bf9919cdac 100644 --- a/ACEXML/parser/parser/Parser.cpp +++ b/ACEXML/parser/parser/Parser.cpp @@ -40,13 +40,13 @@ ACEXML_Parser::ACEXML_Parser (void) external_subset_ (0), external_entity_ (0), has_pe_refs_ (0), + standalone_ (0), + external_dtd_ (0), + internal_dtd_ (0), simple_parsing_ (0), validate_ (1), namespaces_(1), - namespace_prefixes_ (0), - standalone_ (0), - external_dtd_ (0), - internal_dtd_ (0) + namespace_prefixes_ (0) { } @@ -3242,14 +3242,22 @@ ACEXML_Parser::parse_processing_instruction (ACEXML_ENV_SINGLE_ARG_DECL) void ACEXML_Parser::reset (void) { + this->dtd_handler_ = 0; + this->entity_resolver_ = 0; + this->content_handler_ = 0; + this->error_handler_ = 0; + this->doctype_ = 0; if (this->ctx_stack_.pop (this->current_) == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("Mismatched push/pop of Context stack"))); + this->current_ = 0; + ACEXML_Char* temp = 0; while (this->GE_reference_.pop (temp) != -1) ; while (this->PE_reference_.pop (temp) != -1) ; this->obstack_.release(); + this->alt_stack_.release(); this->xml_namespace_.reset(); this->nested_namespace_ = 0; this->internal_GE_.reset(); diff --git a/ACEXML/parser/parser/Parser.h b/ACEXML/parser/parser/Parser.h index c5c01bac0d8..6bb009b5bce 100644 --- a/ACEXML/parser/parser/Parser.h +++ b/ACEXML/parser/parser/Parser.h @@ -871,6 +871,15 @@ private: /// T => Internal DTD has parameter entity references int has_pe_refs_; + /// If set, the document is a standalone XML document + int standalone_; + + /// If set, the document has an external DTD subset + int external_dtd_; + + /// If set, the document has an internal DTD + int internal_dtd_; + /// Feature flags /// If set, the parser should parse a document without a prolog int simple_parsing_; @@ -885,15 +894,6 @@ private: /// of attributes of an element. int namespace_prefixes_; - /// If set, the document is a standalone XML document - int standalone_; - - /// If set, the document has an external DTD subset - int external_dtd_; - - /// If set, the document has an internal DTD - int internal_dtd_; - }; #if defined (__ACEXML_INLINE__) -- cgit v1.2.1