summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-12-02 12:37:37 +0000
committerkitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-12-02 12:37:37 +0000
commit31ed0a579d76c6fc37433f1f2674caf33c990942 (patch)
treeecf6fc1ef6ace75cd7c925041a8521071f529d24
parent8ec2f7d6281c69b6dc3554f861f6bb1e4d1bea5b (diff)
downloadATCD-31ed0a579d76c6fc37433f1f2674caf33c990942.tar.gz
ChangeLogTag: Mon Nov 25 04:25:15 2002 Krishnakumar B <kitty@cs.wustl.edu>
-rw-r--r--ACEXML/common/ZipCharStream.cpp5
-rw-r--r--ACEXML/compass/ComponentInstallation.cpp56
-rw-r--r--ACEXML/compass/ComponentInstallation.h3
-rw-r--r--ACEXML/compass/ComponentServer.cpp12
-rw-r--r--ACEXML/compass/ComponentServer.h4
-rw-r--r--ACEXML/compass/ComponentServer.inl4
-rw-r--r--ACEXML/compass/Consumer.cpp183
-rw-r--r--ACEXML/compass/Consumer.h64
-rw-r--r--ACEXML/compass/Container.h2
-rw-r--r--ACEXML/compass/Deployment.cpp215
-rw-r--r--ACEXML/compass/EC_Property.cpp45
-rw-r--r--ACEXML/compass/EC_Property.h6
-rw-r--r--ACEXML/compass/Makefile.Compass9
-rw-r--r--ACEXML/compass/Makefile.Consumer266
-rw-r--r--ACEXML/compass/Makefile.Deployment40
-rw-r--r--ACEXML/compass/Makefile.Service291
-rw-r--r--ACEXML/compass/Makefile.Supplier266
-rw-r--r--ACEXML/compass/Makefile.shared354
-rw-r--r--ACEXML/compass/Property.cpp9
-rw-r--r--ACEXML/compass/Property.h13
-rw-r--r--ACEXML/compass/PropertyFile_Handler.cpp142
-rw-r--r--ACEXML/compass/PropertyFile_Handler.h8
-rw-r--r--ACEXML/compass/PropertyFile_Handler.inl104
-rw-r--r--ACEXML/compass/ServerActivator.cpp4
-rw-r--r--ACEXML/compass/ServerActivator.h2
-rw-r--r--ACEXML/compass/Service.cpp171
-rw-r--r--ACEXML/compass/Service.h36
-rw-r--r--ACEXML/compass/SoftPkg.cpp205
-rw-r--r--ACEXML/compass/SoftPkg.h43
-rw-r--r--ACEXML/compass/SoftPkgHandler.cpp211
-rw-r--r--ACEXML/compass/SoftPkgHandler.h191
-rw-r--r--ACEXML/compass/SoftPkgHandler.inl104
-rw-r--r--ACEXML/compass/Supplier.cpp185
-rw-r--r--ACEXML/compass/Supplier.h51
-rw-r--r--ACEXML/compass/Test.cpp88
-rw-r--r--ACEXML/compass/compass.mpc15
-rw-r--r--ACEXML/compass/meta-inf5
-rw-r--r--ACEXML/parser/parser/Entity_Manager.i2
-rw-r--r--ACEXML/parser/parser/Parser.cpp16
-rw-r--r--ACEXML/parser/parser/Parser.h18
40 files changed, 3181 insertions, 267 deletions
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<ComponentInstallation, ACE_SYNCH_MUTEX> 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 <filename>]")
- ACE_TEXT (" -l: Install components from filename")
+ ACE_TEXT ("Usage: %s [-l <filename>]\n")
+ ACE_TEXT (" -l: Install components from <filename>\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<ACEXML_Char> 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<ACEXML_Char> 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<ACEXML_DefaultHandler> cleanup_handler (handler);
+ ACEXML_SoftPkgHandler* handler = 0;
+ ACE_NEW_RETURN (handler, ACEXML_SoftPkgHandler (path), -1);
+ auto_ptr<ACEXML_SoftPkgHandler> 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<ACEXML_PropertyFile_Handler> 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<ACEXML_Char> 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 <ServerActivator, ACE_SYNCH_MUTEX>;
- 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<Implementation*>& 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<Dependency*> deps_;
- ACE_Unbouded_Set<Implementation*> 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<Dependency*> Dependencies;
- typedef ACE_Unbouded_Set<Implementation*> Implementations;
+ typedef ACE_Unbounded_Set<Dependency*> Dependencies;
+ typedef ACE_Unbounded_Set_Iterator<Dependency*> DEP_ITERATOR;
+ typedef ACE_Unbounded_Set<Implementation*> Implementations;
+ typedef ACE_Unbounded_Set_Iterator<Implementation*> 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<Implementation*>& 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 <kitty@cs.wustl.edu>
+ */
+//=============================================================================
+
+#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 @@
<softpkg name="EventChannelPkg" version="0.1">
<pkgtype>CORBA Component</pkgtype>
<title>EventChannel</title>
- <author> <company>DOC group </company>
- <webpage href="http://www.cs.wustl.edu/~doc"/>
- </author>
<description>A simple Event Channel test </description>
<dependency type="DSO" >
<localfile name="libTAO.so"/>
</dependency>
- <implementation id="EventChannel" >
+ <implementation id="Service" >
<os name="Linux" version="2,4,0,0" />
<processor name="x86" />
<compiler name="gcc" />
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__)