diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2009-06-01 18:23:45 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2009-06-01 18:23:45 +0000 |
commit | 9c5a6f34cd042eed0c03d0e1368ccd8cb0194ddc (patch) | |
tree | e722e8b485dd99aaa9efa8679bdde6eb1b71ed76 /modules/CIAO/examples/DevGuideExamples | |
parent | dc25598c5fe36d33b5ff9e94a59e90f79cf42dba (diff) | |
download | ATCD-9c5a6f34cd042eed0c03d0e1368ccd8cb0194ddc.tar.gz |
branching/tagging
Diffstat (limited to 'modules/CIAO/examples/DevGuideExamples')
79 files changed, 5242 insertions, 0 deletions
diff --git a/modules/CIAO/examples/DevGuideExamples/CIAO.mwc b/modules/CIAO/examples/DevGuideExamples/CIAO.mwc new file mode 100644 index 00000000000..dd297256b34 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/CIAO.mwc @@ -0,0 +1,5 @@ +// -*- MPC -*- +// $Id$ + +workspace { +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.cidl b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.cidl new file mode 100644 index 00000000000..d980177be03 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.cidl @@ -0,0 +1,24 @@ +// $Id$ + +/** + * @file Administrator.cidl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef ADMINISTRATOR_CIDL +#define ADMINISTRATOR_CIDL + +#include "Administrator.idl" + +composition session Administrator_Impl +{ + home executor AdministratorHome_Exec + { + implements AdministratorHome; + manages Administrator_Exec; + }; +}; + +#endif + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl new file mode 100644 index 00000000000..67bb016e157 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl @@ -0,0 +1,24 @@ +// $Id$ + +/** + * @file Administrator.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef ADMINISTRATOR_IDL +#define ADMINISTRATOR_IDL + +#include <Components.idl> +#include "Runnable.idl" +#include "Publication.idl" + +component Administrator { + uses multiple Runnable runnables; + uses multiple Publication content; +}; + +home AdministratorHome manages Administrator {}; + +#endif + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc new file mode 100644 index 00000000000..97156d338ec --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc @@ -0,0 +1,116 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Messenger Administrator" + +project(Messenger_Administrator_idl_gen) : ciaoidldefaults, anytypecode, avoids_ace_for_tao { + custom_only = 1 + idlflags += -Wb,stub_export_macro=ADMINISTRATOR_STUB_Export \ + -Wb,stub_export_include=Administrator_stub_export.h \ + -Wb,skel_export_macro=ADMINISTRATOR_SVNT_Export \ + -Wb,skel_export_include=Administrator_svnt_export.h + + IDL_Files { + Administrator.idl + } +} + +project(Messenger_Administrator_cidl_gen) : ciaocidldefaults, ciaoidldefaults, avoids_ace_for_tao { + custom_only = 1 + cidlflags += --svnt-export-macro ADMINISTRATOR_SVNT_Export \ + --svnt-export-include Administrator_svnt_export.h + idlflags += -Wb,export_macro=ADMINISTRATOR_EXEC_Export \ + -Wb,export_include=Administrator_exec_export.h \ + -SS + + CIDL_Files { + Administrator.cidl + } + + IDL_Files { + AdministratorE.idl + } +} + +project(Messenger_Administrator_stub) : ccm_stub, avoids_ace_for_tao { + after += Messenger_Administrator_idl_gen Messenger_stub + libs += Messenger_stub + + sharedname = Administrator_stub + dynamicflags = ADMINISTRATOR_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + AdministratorC.cpp + } + + Header_Files { + AdministratorC.h + Administrator_stub_export.h + } + + Inline_Files { + AdministratorC.inl + } +} + +project(Messenger_Administrator_exec) : ciao_executor, avoids_ace_for_tao { + after += Messenger_Administrator_cidl_gen Messenger_Administrator_stub + sharedname = Administrator_exec + libs += Administrator_stub Messenger_stub + + dynamicflags = ADMINISTRATOR_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + AdministratorEC.cpp + Administrator_exec_i.cpp + } + + Header_Files { + AdministratorEC.h + Administrator_exec_i.h + Administrator_exec_export.h + } + + Inline_Files { + AdministratorEC.inl + } +} + + +project(Messenger_Administrator_svnt) : ciao_servant, avoids_ace_for_tao { + after += Messenger_svnt Messenger_Administrator_exec + sharedname = Administrator_svnt + libs += Administrator_exec \ + Administrator_stub \ + Messenger_svnt \ + Messenger_stub + + dynamicflags = ADMINISTRATOR_SVNT_BUILD_DLL + + CIDL_Files { + } + + IDL_Files { + } + + Source_Files { + AdministratorS.cpp + Administrator_svnt.cpp + } + + Header_Files { + AdministratorS.h + Administrator_svnt.h + Administrator_svnt_export.h + } + + Inline_Files { + AdministratorS.inl + } +} + + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp new file mode 100644 index 00000000000..15378b35b78 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp @@ -0,0 +1,120 @@ +// $Id$ + +/** + * @file Administrator_Client.cpp + * + * Do NOT put this file in a project; it is included by + * Administrator_Client_IDL2.cpp and Administrator_Client_IDL3.cpp + * This file will not build on its own. + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#include "ace/Get_Opt.h" +#include <iostream> + +const ACE_TCHAR* ior = ACE_TEXT ("file://Messenger.ior"); + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + ior = get_opts.optarg; + break; + + case '?': + default: + std::cerr << "usage: " << argv[0] << " -k <ior>" << std::endl; + return -1; + break; + } + return 0; +} + +int +svc( Runnable_ptr runnable, Publication_ptr publication ) +{ + enum SelectionType { START=1, STOP, CHANGE_PERIOD, CHANGE_TEXT, EXIT }; + + bool done = false; + do { + std::cout << "\nWhat do you want to do to the Messenger(s)?" << std::endl; + std::cout << START << ". Start" << std::endl; + std::cout << STOP << ". Stop" << std::endl; + std::cout << CHANGE_PERIOD << ". Change Publication Period" << std::endl; + std::cout << CHANGE_TEXT << ". Change Publication Text" << std::endl; + std::cout << EXIT << ". Exit" << std::endl; + + char selection_text[10]; + std::cout << "Please enter a selection: "; + std::cin.getline( selection_text, sizeof(selection_text) ); + int selection = ACE_OS::atoi(selection_text); + + switch (selection) { + case START: { + runnable->start(); + break; + } + case STOP: { + runnable->stop(); + break; + } + case CHANGE_PERIOD: { + char period[10]; + std::cout << "Please enter a new period in seconds: "; + std::cin.getline( period, sizeof( period ) ); + publication->period( ACE_OS::atoi(period) ); + break; + } + case CHANGE_TEXT: { + char buffer[1024]; + std::cout << "Please enter new text: "; + std::cin.getline( buffer, sizeof(buffer) ); + publication->text( buffer ); + break; + } + case EXIT: { + done = true; + break; + } + default: + std::cout << "Please enter a valid option" << std::endl; + } + } while ( !done ); + + return 0; +} + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + if (parse_args (argc, argv) != 0) { + return 1; + } + + try { + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + // get Messenger object + CORBA::Object_var obj = orb->string_to_object(ior); + Messenger_var messenger = Messenger::_narrow (obj.in()); + + Runnable_var runnable = messenger->provide_control(); + Publication_var publication = messenger->provide_content (); + + svc( runnable.in(), publication.in() ); + + return 0; + } + catch(const CORBA::Exception& ex) { + std::cerr << "Caught CORBA::Exception: " << std::endl << ex << std::endl; + } + + return 1; +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp new file mode 100644 index 00000000000..399faa40389 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp @@ -0,0 +1,10 @@ +// $Id$ + +/** + * @file Administrator_Client_IDL2.cpp + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#include "idl2/Messenger_IDL2C.h" +#include "Administrator_Client.cpp" diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc new file mode 100644 index 00000000000..e67cd4b30ba --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc @@ -0,0 +1,45 @@ +// $Id$ + +project(Administrator_Client_IDL2_Compile): taoidl3toidl2defaults, avoids_ace_for_tao { + // ensures that only idl3-to-idl2 processing is performed + custom_only = 1 + + idl3toidl2flags += -I. -o idl2 + + IDL3TOIDL2_Files { + gendir = idl2 + Runnable.idl + Publication.idl + Message.idl + History.idl + Administrator.idl + Messenger.idl + } +} + +project(Administrator_Client_IDL2): ccm_stub, valuetype, avoids_ace_for_tao { + after += Administrator_Client_IDL2_Compile + + exename = Administrator_Client_IDL2 + idlflags += -Sm -Iidl2 -o idl2 -SS + + IDL_Files { + gendir = idl2 + idl2/Runnable_IDL2.idl + idl2/Publication_IDL2.idl + idl2/Message_IDL2.idl + idl2/History_IDL2.idl + idl2/Administrator_IDL2.idl + idl2/Messenger_IDL2.idl + } + + Source_Files { + Administrator_Client_IDL2.cpp + idl2/Administrator_IDL2C.cpp + idl2/Messenger_IDL2C.cpp + idl2/Publication_IDL2C.cpp + idl2/Runnable_IDL2C.cpp + idl2/History_IDL2C.cpp + idl2/Message_IDL2C.cpp + } +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp new file mode 100644 index 00000000000..6e83b57165f --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp @@ -0,0 +1,10 @@ +// $Id$ + +/** + * @file Administrator_Client_IDL3.cpp + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#include "MessengerC.h" +#include "Administrator_Client.cpp" diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc new file mode 100644 index 00000000000..b044b2d2eee --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc @@ -0,0 +1,29 @@ +// $Id$ + +// @file Administrator_Client_IDL3.mpc +// +// @author Don Busch <busch_d@ociweb.com> + +project(Administrator_Client_IDL3): ccm_stub, valuetype, avoids_ace_for_tao { + after += Messenger_stub + libs += Messenger_stub + after += Administrator_Client_IDL2_Compile + + exename = Administrator_Client_IDL3 + + IDL_Files { + // IDL stubs are linked from the Messenger_stub library; + // this empty section prevents all of the IDL stub code from + // being linked into this executable as well + } + + Header_Files { + // this empty section prevents all of the header files + // being includes in this project + } + + Source_Files { + Administrator_Client_IDL3.cpp + } +} + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_export.h new file mode 100644 index 00000000000..6cfb8385b61 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ADMINISTRATOR_EXEC +// ------------------------------ +#ifndef ADMINISTRATOR_EXEC_EXPORT_H +#define ADMINISTRATOR_EXEC_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ADMINISTRATOR_EXEC_HAS_DLL) +# define ADMINISTRATOR_EXEC_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ADMINISTRATOR_EXEC_HAS_DLL */ + +#if !defined (ADMINISTRATOR_EXEC_HAS_DLL) +# define ADMINISTRATOR_EXEC_HAS_DLL 1 +#endif /* ! ADMINISTRATOR_EXEC_HAS_DLL */ + +#if defined (ADMINISTRATOR_EXEC_HAS_DLL) && (ADMINISTRATOR_EXEC_HAS_DLL == 1) +# if defined (ADMINISTRATOR_EXEC_BUILD_DLL) +# define ADMINISTRATOR_EXEC_Export ACE_Proper_Export_Flag +# define ADMINISTRATOR_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ADMINISTRATOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ADMINISTRATOR_EXEC_BUILD_DLL */ +# define ADMINISTRATOR_EXEC_Export ACE_Proper_Import_Flag +# define ADMINISTRATOR_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ADMINISTRATOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ADMINISTRATOR_EXEC_BUILD_DLL */ +#else /* ADMINISTRATOR_EXEC_HAS_DLL == 1 */ +# define ADMINISTRATOR_EXEC_Export +# define ADMINISTRATOR_EXEC_SINGLETON_DECLARATION(T) +# define ADMINISTRATOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ADMINISTRATOR_EXEC_HAS_DLL == 1 */ + +// Set ADMINISTRATOR_EXEC_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ADMINISTRATOR_EXEC_NTRACE) +# if (ACE_NTRACE == 1) +# define ADMINISTRATOR_EXEC_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ADMINISTRATOR_EXEC_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ADMINISTRATOR_EXEC_NTRACE */ + +#if (ADMINISTRATOR_EXEC_NTRACE == 1) +# define ADMINISTRATOR_EXEC_TRACE(X) +#else /* (ADMINISTRATOR_EXEC_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ADMINISTRATOR_EXEC_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ADMINISTRATOR_EXEC_NTRACE == 1) */ + +#endif /* ADMINISTRATOR_EXEC_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp new file mode 100644 index 00000000000..84af7a536da --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp @@ -0,0 +1,260 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Administrator_exec_i.h" +#include "ciao/CIAO_common.h" + +// MY CODE +#include <iostream> +#include <string> + +namespace CIDL_Administrator_Impl +{ + //================================================================== + // Component Executor Implementation Class: Administrator_exec_i + //================================================================== + + Administrator_exec_i::Administrator_exec_i (void) + { + } + + Administrator_exec_i::~Administrator_exec_i (void) + { + } + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + // Operations from Components::SessionComponent + + void + Administrator_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::CCM_Administrator_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Administrator_exec_i::ccm_activate () + { + // Your code here. + + // MY CODE + ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_activate\n" ))); + + // Activate the Task + this->activate(); + } + + void + Administrator_exec_i::ccm_passivate () + { + // Your code here. + + // MY CODE + ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_passivate\n" ))); + } + + void + Administrator_exec_i::ccm_remove () + { + // Your code here. + ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_remove\n"))); + } + + void + Administrator_exec_i::configuration_complete (void) + { + ACE_DEBUG ((LM_INFO, ACE_TEXT("configuration_complete\n"))); + } + + // Overridden from ACE_Task_Base + int + Administrator_exec_i::svc() + { + enum SelectionType { START=1, STOP, CHANGE_PERIOD, CHANGE_TEXT,EXIT }; + + bool done = false; + do { + std::cout << "\nWhat do you want to do to the Messenger(s)?" << std::endl; + std::cout << START << ". Start" << std::endl; + std::cout << STOP << ". Stop" << std::endl; + std::cout << CHANGE_PERIOD << ". Change Publication Period" << std::endl; + std::cout << CHANGE_TEXT << ". Change Publication Text" << std::endl; + std::cout << EXIT << ". Exit" << std::endl; + + char selection_text[10]; + std::cout << "Please enter a selection: "; + std::cin.getline( selection_text, sizeof(selection_text) ); + int selection = ACE_OS::atoi(selection_text); + + switch (selection) { + case START: + startPublishing(); + break; + case STOP: + stopPublishing(); + break; + case CHANGE_PERIOD: + changePublicationPeriod(); + break; + case CHANGE_TEXT: + changePublicationText(); + break; + case EXIT: { + done = true; + break; + } + default: + std::cout << "Please enter a valid option" << std::endl; + } + } while ( !done ); + + return 0; + } + + void Administrator_exec_i::startPublishing() + { + // Get the attached Runnable facet(s) + ::Administrator::runnablesConnections_var connections = + this->context_->get_connections_runnables(); + + std::cout << "Starting Publication" << std::endl; + for ( CORBA::ULong i = 0; i < connections->length(); ++i ) { + Runnable_var runnable = (*connections)[i].objref; + runnable->start(); + } + } + + void Administrator_exec_i::stopPublishing() + { + // Get the attached Runnable facet(s) + ::Administrator::runnablesConnections_var connections = + this->context_->get_connections_runnables(); + + std::cout << "Stopping Publication" << std::endl; + for ( CORBA::ULong i = 0; i < connections->length(); ++i ) { + Runnable_var runnable = (*connections)[i].objref; + runnable->stop(); + } + } + + void Administrator_exec_i::changePublicationPeriod() + { + // Get the attached Publication facet(s) + ::Administrator::contentConnections_var contents = + this->context_->get_connections_content(); + + char period[10]; + std::cout << "Please enter a new period in seconds: "; + std::cin.getline( period, sizeof( period ) ); + for ( CORBA::ULong i = 0; i < contents->length(); ++i ) { + Publication_var publication = (*contents)[i].objref; + publication->period( ACE_OS::atoi(period) ); + } + } + + void Administrator_exec_i::changePublicationText() + { + // Get the attached Publication facet(s) + ::Administrator::contentConnections_var contents = + this->context_->get_connections_content(); + + char buffer[1024]; + std::cout << "Please enter new text: "; + std::cin.getline( buffer, sizeof(buffer) ); + for ( CORBA::ULong i = 0; i < contents->length(); ++i ) { + Publication_var publication = (*contents)[i].objref; + publication->text( buffer ); + } + } + + extern "C" ADMINISTRATOR_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Administrator_Impl (void) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN (retval, + Administrator_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; + } + + //================================================================== + // Home Executor Implementation Class: AdministratorHome_exec_i + //================================================================== + + AdministratorHome_exec_i::AdministratorHome_exec_i (void) + { + } + + AdministratorHome_exec_i::~AdministratorHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + AdministratorHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Administrator_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" ADMINISTRATOR_EXEC_Export ::Components::HomeExecutorBase_ptr + create_AdministratorHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + AdministratorHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h new file mode 100644 index 00000000000..405202583c7 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h @@ -0,0 +1,112 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_ADMINISTRATOR_EXEC_H +#define CIAO_ADMINISTRATOR_EXEC_H + +#include /**/ "ace/pre.h" + +#include "AdministratorEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Administrator_exec_export.h" +#include "tao/LocalObject.h" + +#include "ace/Task.h" + +namespace CIDL_Administrator_Impl +{ + class ADMINISTRATOR_EXEC_Export Administrator_exec_i + : public virtual Administrator_Exec, + public virtual ::CORBA::LocalObject, + public virtual ACE_Task_Base + { + public: + Administrator_exec_i (void); + virtual ~Administrator_exec_i (void); + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + // Operations from Components::SessionComponent + + virtual void + set_session_context ( + ::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (void); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + // Overridden from ACE_Task_Base + int svc(); + + private: + + void startPublishing(); + void stopPublishing(); + void changePublicationPeriod(); + void changePublicationText(); + + ::CCM_Administrator_Context_var context_; + }; + + extern "C" ADMINISTRATOR_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Administrator_Impl (void); + + class ADMINISTRATOR_EXEC_Export AdministratorHome_exec_i + : public virtual AdministratorHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + AdministratorHome_exec_i (void); + virtual ~AdministratorHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" ADMINISTRATOR_EXEC_Export ::Components::HomeExecutorBase_ptr + create_AdministratorHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_ADMINISTRATOR_EXEC_H */ diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_stub_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_stub_export.h new file mode 100644 index 00000000000..22b4ec62ce4 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ADMINISTRATOR_STUB +// ------------------------------ +#ifndef ADMINISTRATOR_STUB_EXPORT_H +#define ADMINISTRATOR_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ADMINISTRATOR_STUB_HAS_DLL) +# define ADMINISTRATOR_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ADMINISTRATOR_STUB_HAS_DLL */ + +#if !defined (ADMINISTRATOR_STUB_HAS_DLL) +# define ADMINISTRATOR_STUB_HAS_DLL 1 +#endif /* ! ADMINISTRATOR_STUB_HAS_DLL */ + +#if defined (ADMINISTRATOR_STUB_HAS_DLL) && (ADMINISTRATOR_STUB_HAS_DLL == 1) +# if defined (ADMINISTRATOR_STUB_BUILD_DLL) +# define ADMINISTRATOR_STUB_Export ACE_Proper_Export_Flag +# define ADMINISTRATOR_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ADMINISTRATOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ADMINISTRATOR_STUB_BUILD_DLL */ +# define ADMINISTRATOR_STUB_Export ACE_Proper_Import_Flag +# define ADMINISTRATOR_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ADMINISTRATOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ADMINISTRATOR_STUB_BUILD_DLL */ +#else /* ADMINISTRATOR_STUB_HAS_DLL == 1 */ +# define ADMINISTRATOR_STUB_Export +# define ADMINISTRATOR_STUB_SINGLETON_DECLARATION(T) +# define ADMINISTRATOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ADMINISTRATOR_STUB_HAS_DLL == 1 */ + +// Set ADMINISTRATOR_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ADMINISTRATOR_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define ADMINISTRATOR_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ADMINISTRATOR_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ADMINISTRATOR_STUB_NTRACE */ + +#if (ADMINISTRATOR_STUB_NTRACE == 1) +# define ADMINISTRATOR_STUB_TRACE(X) +#else /* (ADMINISTRATOR_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ADMINISTRATOR_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ADMINISTRATOR_STUB_NTRACE == 1) */ + +#endif /* ADMINISTRATOR_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_svnt_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_svnt_export.h new file mode 100644 index 00000000000..6c79eef8299 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ADMINISTRATOR_SVNT +// ------------------------------ +#ifndef ADMINISTRATOR_SVNT_EXPORT_H +#define ADMINISTRATOR_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ADMINISTRATOR_SVNT_HAS_DLL) +# define ADMINISTRATOR_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ADMINISTRATOR_SVNT_HAS_DLL */ + +#if !defined (ADMINISTRATOR_SVNT_HAS_DLL) +# define ADMINISTRATOR_SVNT_HAS_DLL 1 +#endif /* ! ADMINISTRATOR_SVNT_HAS_DLL */ + +#if defined (ADMINISTRATOR_SVNT_HAS_DLL) && (ADMINISTRATOR_SVNT_HAS_DLL == 1) +# if defined (ADMINISTRATOR_SVNT_BUILD_DLL) +# define ADMINISTRATOR_SVNT_Export ACE_Proper_Export_Flag +# define ADMINISTRATOR_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ADMINISTRATOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ADMINISTRATOR_SVNT_BUILD_DLL */ +# define ADMINISTRATOR_SVNT_Export ACE_Proper_Import_Flag +# define ADMINISTRATOR_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ADMINISTRATOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ADMINISTRATOR_SVNT_BUILD_DLL */ +#else /* ADMINISTRATOR_SVNT_HAS_DLL == 1 */ +# define ADMINISTRATOR_SVNT_Export +# define ADMINISTRATOR_SVNT_SINGLETON_DECLARATION(T) +# define ADMINISTRATOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ADMINISTRATOR_SVNT_HAS_DLL == 1 */ + +// Set ADMINISTRATOR_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ADMINISTRATOR_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define ADMINISTRATOR_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ADMINISTRATOR_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ADMINISTRATOR_SVNT_NTRACE */ + +#if (ADMINISTRATOR_SVNT_NTRACE == 1) +# define ADMINISTRATOR_SVNT_TRACE(X) +#else /* (ADMINISTRATOR_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ADMINISTRATOR_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ADMINISTRATOR_SVNT_NTRACE == 1) */ + +#endif /* ADMINISTRATOR_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl new file mode 100644 index 00000000000..c83cadf03bb --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl @@ -0,0 +1,19 @@ +// $Id$ + +/** + * @file History.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef HISTORY_IDL +#define HISTORY_IDL + +#include "Message.idl" + +interface History { + Messages get_all(); + Message get_latest(); +}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp new file mode 100644 index 00000000000..7689075fccb --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp @@ -0,0 +1,96 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "History_exec_i.h" +#include "ciao/CIAO_common.h" + +namespace CIDL_Messenger_Impl +{ + //================================================================== + // Facet Executor Implementation Class: History_exec_i + //================================================================== + + History_exec_i::History_exec_i (void) + { + } + + History_exec_i::~History_exec_i (void) + { + } + + // Operations from ::History + + ::Messages * + History_exec_i::get_all () + { + // Your code here. + + // MY CODE + ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_); + + ACE_DEBUG((LM_INFO, ACE_TEXT("History_i::get_all\n") )); + + // create a Messages sequence, set its length + ::Messages* retval = new ::Messages(); + retval->length( this->messages_.size() ); + + // iterate through the MessageList, copying messages into the return sequence + CORBA::ULong i = 0; + for ( MessageList::iterator messageItr = this->messages_.begin(); + messageItr != this->messages_.end(); + ++messageItr ) + { + // because the MessageList contains Message_vars, reference counting + // upon assignment into the sequence is handled properly for us. + (*retval)[i++] = *messageItr; + } + return retval; + } + + ::Message * + History_exec_i::get_latest () + { + // Your code here. + + // MY CODE + ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_); + + ACE_DEBUG((LM_INFO, ACE_TEXT("History_i::get_latest\n") )); + + // just get the last message from the history. because the MessageList + // contains Message_vars, _var to _var assigmnent handles the reference + // counting properly for us. + ::Message_var retval = this->messages_.back(); + return retval._retn(); + } + + // MY CODE + void + History_exec_i::add( ::Message* message ) + { + ACE_Guard<TAO_SYNCH_MUTEX> guard(lock_); + + // bump up the reference count; we don't own it. + // the _var in the STL list takes ownership of the "copy" + message->_add_ref(); + this->messages_.push_back( message ); + } +} + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h new file mode 100644 index 00000000000..6594ebb2505 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h @@ -0,0 +1,70 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_HISTORY_EXEC_H +#define CIAO_HISTORY_EXEC_H + +#include /**/ "ace/pre.h" + +#include "MessengerEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Messenger_exec_export.h" +#include "tao/LocalObject.h" + +// MY CODE +#include <list> +#include "ace/Thread_Mutex.h" + +namespace CIDL_Messenger_Impl +{ + class MESSENGER_EXEC_Export History_exec_i + : public virtual ::CCM_History, + public virtual ::CORBA::LocalObject + { + public: + History_exec_i (void); + virtual ~History_exec_i (void); + + // Operations from ::History + + virtual ::Messages *get_all (); + + virtual ::Message *get_latest (); + + // MY CODE + + void add( ::Message* message); + + private: + TAO_SYNCH_MUTEX lock_; + + typedef std::list< ::Message_var> MessageList; + MessageList messages_; + }; +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_HISTORY_EXEC_H */ + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl new file mode 100644 index 00000000000..2e3aee687b0 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl @@ -0,0 +1,21 @@ +// $Id$ + +/** + * @file Message.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef MESSAGE_IDL +#define MESSAGE_IDL + +#include <Components.idl> + +eventtype Message { + public string subject; + public string user; + public string text; +}; +typedef sequence<Message> Messages; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.cidl b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.cidl new file mode 100644 index 00000000000..08559aafe0e --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.cidl @@ -0,0 +1,24 @@ +// $Id$ + +/** + * @file Messenger.cidl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef MESSENGER_CIDL +#define MESSENGER_CIDL + +#include "Messenger.idl" + +composition session Messenger_Impl +{ + home executor MessengerHome_Exec + { + implements MessengerHome; + manages Messenger_Exec; + }; +}; + +#endif + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl new file mode 100644 index 00000000000..518dcfee754 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl @@ -0,0 +1,30 @@ +// $Id$ + +/** + * @file Messenger.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef MESSENGER_IDL +#define MESSENGER_IDL + +#include <Components.idl> +#include "Runnable.idl" +#include "Publication.idl" +#include "Message.idl" +#include "History.idl" + +component Messenger { + attribute string subject; + + provides Runnable control; + provides Publication content; + + publishes Message message_publisher; + provides History message_history; +}; + +home MessengerHome manages Messenger {}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc new file mode 100644 index 00000000000..5c3023be9e2 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc @@ -0,0 +1,146 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl Messenger" + +project(Messenger_idl_gen) : ciaoidldefaults, anytypecode, avoids_ace_for_tao { + custom_only = 1 + idlflags += -Wb,stub_export_macro=MESSENGER_STUB_Export \ + -Wb,stub_export_include=Messenger_stub_export.h \ + -Wb,skel_export_macro=MESSENGER_SVNT_Export \ + -Wb,skel_export_include=Messenger_svnt_export.h + + IDL_Files { + Runnable.idl + Publication.idl + Message.idl + History.idl + Messenger.idl + } +} + +project(Messenger_cidl_gen) : ciaocidldefaults, ciaoidldefaults, avoids_ace_for_tao { + custom_only = 1 + cidlflags += --svnt-export-macro MESSENGER_SVNT_Export \ + --svnt-export-include Messenger_svnt_export.h + idlflags += -Wb,export_macro=MESSENGER_EXEC_Export \ + -Wb,export_include=Messenger_exec_export.h \ + -SS + + CIDL_Files { + Messenger.cidl + } + + IDL_Files { + MessengerE.idl + } +} + +project(Messenger_stub) : ccm_stub, avoids_ace_for_tao { + after += Messenger_idl_gen + + sharedname = Messenger_stub + dynamicflags = MESSENGER_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + RunnableC.cpp + PublicationC.cpp + MessageC.cpp + HistoryC.cpp + MessengerC.cpp + } + + Header_Files { + RunnableC.h + PublicationC.h + MessageC.h + HistoryC.h + MessengerC.h + Messenger_stub_export.h + } + + Inline_Files { + RunnableC.inl + PublicationC.inl + MessageC.inl + HistoryC.inl + MessengerC.inl + } +} + +project(Messenger_exec) : ciao_executor, avoids_ace_for_tao { + after += Messenger_cidl_gen Messenger_stub + sharedname = Messenger_exec + libs += Messenger_stub + + dynamicflags = MESSENGER_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + MessengerEC.cpp + Messenger_exec_i.cpp + Publication_exec_i.cpp + History_exec_i.cpp + Runnable_exec_i.cpp + } + + Header_Files { + MessengerEC.h + Messenger_exec_i.h + Publication_exec_i.h + History_exec_i.h + Runnable_exec_i.h + Messenger_exec_export.h + } + + Inline_Files { + MessengerEC.inl + } +} + +project(Messenger_svnt) : ciao_servant, avoids_ace_for_tao { + after += Messenger_exec + sharedname = Messenger_svnt + libs += Messenger_exec \ + Messenger_stub + + dynamicflags = MESSENGER_SVNT_BUILD_DLL + + CIDL_Files { + } + + IDL_Files { + } + + Source_Files { + RunnableS.cpp + PublicationS.cpp + MessageS.cpp + HistoryS.cpp + MessengerS.cpp + Messenger_svnt.cpp + } + + Header_Files { + RunnableS.h + PublicationS.h + MessageS.h + HistoryS.h + MessengerS.h + Messenger_svnt.h + Messenger_svnt_export.h + } + + Inline_Files { + RunnableS.inl + PublicationS.inl + MessageS.inl + HistoryS.inl + MessengerS.inl + } +} + + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_export.h new file mode 100644 index 00000000000..7aa56acc1c9 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl MESSENGER_EXEC +// ------------------------------ +#ifndef MESSENGER_EXEC_EXPORT_H +#define MESSENGER_EXEC_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (MESSENGER_EXEC_HAS_DLL) +# define MESSENGER_EXEC_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && MESSENGER_EXEC_HAS_DLL */ + +#if !defined (MESSENGER_EXEC_HAS_DLL) +# define MESSENGER_EXEC_HAS_DLL 1 +#endif /* ! MESSENGER_EXEC_HAS_DLL */ + +#if defined (MESSENGER_EXEC_HAS_DLL) && (MESSENGER_EXEC_HAS_DLL == 1) +# if defined (MESSENGER_EXEC_BUILD_DLL) +# define MESSENGER_EXEC_Export ACE_Proper_Export_Flag +# define MESSENGER_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define MESSENGER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* MESSENGER_EXEC_BUILD_DLL */ +# define MESSENGER_EXEC_Export ACE_Proper_Import_Flag +# define MESSENGER_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define MESSENGER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* MESSENGER_EXEC_BUILD_DLL */ +#else /* MESSENGER_EXEC_HAS_DLL == 1 */ +# define MESSENGER_EXEC_Export +# define MESSENGER_EXEC_SINGLETON_DECLARATION(T) +# define MESSENGER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* MESSENGER_EXEC_HAS_DLL == 1 */ + +// Set MESSENGER_EXEC_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (MESSENGER_EXEC_NTRACE) +# if (ACE_NTRACE == 1) +# define MESSENGER_EXEC_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define MESSENGER_EXEC_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !MESSENGER_EXEC_NTRACE */ + +#if (MESSENGER_EXEC_NTRACE == 1) +# define MESSENGER_EXEC_TRACE(X) +#else /* (MESSENGER_EXEC_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define MESSENGER_EXEC_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (MESSENGER_EXEC_NTRACE == 1) */ + +#endif /* MESSENGER_EXEC_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp new file mode 100644 index 00000000000..b38d0fd383e --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp @@ -0,0 +1,254 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Messenger_exec_i.h" +#include "ciao/CIAO_common.h" + +// MY CODE +#include "ace/OS.h" +#include "History_exec_i.h" +#include "Runnable_exec_i.h" +#include "Publication_exec_i.h" + +namespace CIDL_Messenger_Impl +{ + //================================================================== + // Component Executor Implementation Class: Messenger_exec_i + //================================================================== + + Messenger_exec_i::Messenger_exec_i () + : subject_( "Test Subject" ), + user_( "ciao_user" ) + { + this->control_ = new Runnable_exec_i(); + this->history_ = new History_exec_i(); + this->content_ = new Publication_exec_i( + "The quick brown fox jumped over the lazy dog", + 2 ); + } + + Messenger_exec_i::~Messenger_exec_i (void) + { + this->control_->_remove_ref(); + this->history_->_remove_ref(); + this->content_->_remove_ref(); + } + + // MY CODE + int Messenger_exec_i::svc() { + + ACE_DEBUG((LM_INFO, ACE_TEXT("svc()\n"))); + + while (1) + { + ACE_OS::sleep( this->content_->period() ); + + // get the run_lock from the Runnable executor; we have an + // agreement with the Runnable executor that we must posess the + // run_lock to publish + ACE_Guard<TAO_SYNCH_MUTEX> guard( this->control_->get_run_lock() ); + + // create a message to publish + ::Message_var msg = new ::OBV_Message(); + msg->subject( this->subject() ); + msg->text( this->content_->text() ); + msg->user( CORBA::string_dup( this->user_.c_str() ) ); + + // add the message to the message history + this->history_->add( msg.in() ); + + ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::svc: publishing message\n") )); + + // publish to all interested consumers + this->context_->push_message_publisher( msg.in() ); + + ACE_DEBUG((LM_INFO, + ACE_TEXT("Published Message on subject %s\n User %s\n Text %s\n"), + msg->subject(), + msg->user(), + msg->text() )); + } + + ACE_DEBUG((LM_INFO, ACE_TEXT("svc(): Gracefully stopping publication\n"))); + return 0; + } + + // Supported or inherited operations. + + // Attribute operations. + + char* + Messenger_exec_i::subject () + { + return CORBA::string_dup( this->subject_.c_str() ); + } + + void + Messenger_exec_i::subject ( const char* subject) + { + this->subject_ = CORBA::string_dup( subject ); + } + + // Port operations. + + ::CCM_Runnable_ptr + Messenger_exec_i::get_control () + { + // Your code here. + + // MY CODE + + // bump up ref count because we give up ownership when we return this + this->control_->_add_ref(); + return this->control_; + } + + ::CCM_Publication_ptr + Messenger_exec_i::get_content () + { + // Your code here. + + // MY CODE + + // bump up ref count because we give up ownership when we return this + this->content_->_add_ref(); + return this->content_; + } + + ::CCM_History_ptr + Messenger_exec_i::get_message_history () + { + // Your code here. + + // MY CODE + + // bump up ref count because we give up ownership when we return this + this->history_->_add_ref(); + return this->history_; + } + + // Operations from Components::SessionComponent + + void + Messenger_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::CCM_Messenger_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Messenger_exec_i::configuration_complete () + { + /* Your code here. */ + } + + void + Messenger_exec_i::ccm_activate () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_activate\n"))); + this->activate(); + } + + void + Messenger_exec_i::ccm_passivate () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_passivate\n"))); + } + + void + Messenger_exec_i::ccm_remove () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_remove\n"))); + } + + + extern "C" MESSENGER_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Messenger_Impl (void) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN (retval, + Messenger_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; + } + + //================================================================== + // Home Executor Implementation Class: MessengerHome_exec_i + //================================================================== + + MessengerHome_exec_i::MessengerHome_exec_i (void) + { + } + + MessengerHome_exec_i::~MessengerHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + MessengerHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Messenger_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" MESSENGER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_MessengerHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + MessengerHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h new file mode 100644 index 00000000000..0f9122ceafb --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h @@ -0,0 +1,129 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_MESSENGER_EXEC_H +#define CIAO_MESSENGER_EXEC_H + +#include /**/ "ace/pre.h" + +#include "Messenger_svnt.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Messenger_exec_export.h" +#include "tao/LocalObject.h" + +// MY CODE +#include <string> +#include "ace/Task.h" + +namespace CIDL_Messenger_Impl +{ + class Runnable_exec_i; + class Publication_exec_i; + class History_exec_i; + + class MESSENGER_EXEC_Export Messenger_exec_i + : public virtual Messenger_Exec, + public virtual ::CORBA::LocalObject, + public virtual ACE_Task_Base + { + public: + Messenger_exec_i (void); + virtual ~Messenger_exec_i (void); + + // Supported or inherited operations. + + // Attribute operations. + + virtual char *subject (); + + virtual void subject (const char * subject); + + // Port operations. + + virtual ::CCM_Runnable_ptr get_control (); + + virtual ::CCM_Publication_ptr get_content (); + + virtual ::CCM_History_ptr get_message_history (); + + // Operations from Components::SessionComponent + + virtual void set_session_context ( ::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (void); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + // MY CODE + virtual int svc(); + + private: + ::CCM_Messenger_Context_var context_; + + // MY CODE + Runnable_exec_i* control_; + Publication_exec_i* content_; + History_exec_i* history_; + + std::string subject_; + const std::string user_; + }; + + extern "C" MESSENGER_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Messenger_Impl (void); + + class MESSENGER_EXEC_Export MessengerHome_exec_i + : public virtual MessengerHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + MessengerHome_exec_i (void); + virtual ~MessengerHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" MESSENGER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_MessengerHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_MESSENGER_EXEC_H */ + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_stub_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_stub_export.h new file mode 100644 index 00000000000..7e4502b434f --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl MESSENGER_STUB +// ------------------------------ +#ifndef MESSENGER_STUB_EXPORT_H +#define MESSENGER_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (MESSENGER_STUB_HAS_DLL) +# define MESSENGER_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && MESSENGER_STUB_HAS_DLL */ + +#if !defined (MESSENGER_STUB_HAS_DLL) +# define MESSENGER_STUB_HAS_DLL 1 +#endif /* ! MESSENGER_STUB_HAS_DLL */ + +#if defined (MESSENGER_STUB_HAS_DLL) && (MESSENGER_STUB_HAS_DLL == 1) +# if defined (MESSENGER_STUB_BUILD_DLL) +# define MESSENGER_STUB_Export ACE_Proper_Export_Flag +# define MESSENGER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define MESSENGER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* MESSENGER_STUB_BUILD_DLL */ +# define MESSENGER_STUB_Export ACE_Proper_Import_Flag +# define MESSENGER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define MESSENGER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* MESSENGER_STUB_BUILD_DLL */ +#else /* MESSENGER_STUB_HAS_DLL == 1 */ +# define MESSENGER_STUB_Export +# define MESSENGER_STUB_SINGLETON_DECLARATION(T) +# define MESSENGER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* MESSENGER_STUB_HAS_DLL == 1 */ + +// Set MESSENGER_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (MESSENGER_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define MESSENGER_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define MESSENGER_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !MESSENGER_STUB_NTRACE */ + +#if (MESSENGER_STUB_NTRACE == 1) +# define MESSENGER_STUB_TRACE(X) +#else /* (MESSENGER_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define MESSENGER_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (MESSENGER_STUB_NTRACE == 1) */ + +#endif /* MESSENGER_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_svnt_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_svnt_export.h new file mode 100644 index 00000000000..088b1c1ccbc --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl MESSENGER_SVNT +// ------------------------------ +#ifndef MESSENGER_SVNT_EXPORT_H +#define MESSENGER_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (MESSENGER_SVNT_HAS_DLL) +# define MESSENGER_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && MESSENGER_SVNT_HAS_DLL */ + +#if !defined (MESSENGER_SVNT_HAS_DLL) +# define MESSENGER_SVNT_HAS_DLL 1 +#endif /* ! MESSENGER_SVNT_HAS_DLL */ + +#if defined (MESSENGER_SVNT_HAS_DLL) && (MESSENGER_SVNT_HAS_DLL == 1) +# if defined (MESSENGER_SVNT_BUILD_DLL) +# define MESSENGER_SVNT_Export ACE_Proper_Export_Flag +# define MESSENGER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define MESSENGER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* MESSENGER_SVNT_BUILD_DLL */ +# define MESSENGER_SVNT_Export ACE_Proper_Import_Flag +# define MESSENGER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define MESSENGER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* MESSENGER_SVNT_BUILD_DLL */ +#else /* MESSENGER_SVNT_HAS_DLL == 1 */ +# define MESSENGER_SVNT_Export +# define MESSENGER_SVNT_SINGLETON_DECLARATION(T) +# define MESSENGER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* MESSENGER_SVNT_HAS_DLL == 1 */ + +// Set MESSENGER_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (MESSENGER_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define MESSENGER_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define MESSENGER_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !MESSENGER_SVNT_NTRACE */ + +#if (MESSENGER_SVNT_NTRACE == 1) +# define MESSENGER_SVNT_TRACE(X) +#else /* (MESSENGER_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define MESSENGER_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (MESSENGER_SVNT_NTRACE == 1) */ + +#endif /* MESSENGER_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl new file mode 100644 index 00000000000..43cf29228cc --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl @@ -0,0 +1,17 @@ +// $Id$ + +/** + * @file Publication.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef PUBLICATION_IDL +#define PUBLICATION_IDL + +interface Publication { + attribute string text; + attribute unsigned short period; +}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp new file mode 100644 index 00000000000..d8ff6aaa794 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp @@ -0,0 +1,82 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Publication_exec_i.h" +#include "ciao/CIAO_common.h" + +namespace CIDL_Messenger_Impl +{ + //================================================================== + // Facet Executor Implementation Class: Publication_exec_i + //================================================================== + + Publication_exec_i::Publication_exec_i ( + const char* text, CORBA::UShort period) + : text_( text ), + period_( period) + { + } + + Publication_exec_i::~Publication_exec_i (void) + { + } + + // Operations from ::Publication + + char* + Publication_exec_i::text () + { + ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_); + + return CORBA::string_dup( this->text_.c_str() ); + } + + void + Publication_exec_i::text ( + const char* text) + { + ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_); + + this->text_ = text; + ACE_DEBUG((LM_INFO, ACE_TEXT("publication text changed to %C\n"), text )); + } + + CORBA::UShort + Publication_exec_i::period () + { + ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_); + + return this->period_; + } + + void + Publication_exec_i::period (CORBA::UShort period) + { + ACE_Guard<TAO_SYNCH_MUTEX> guard( this->lock_ ); + + if ( period > 0 ) { + this->period_ = period; + ACE_DEBUG((LM_INFO, ACE_TEXT("publication period changed to %d seconds\n"), period )); + } else { + ACE_DEBUG((LM_INFO, ACE_TEXT("ignoring a negative period of %d\n"), period )); + } + } +} + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h new file mode 100644 index 00000000000..f49245980ad --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h @@ -0,0 +1,70 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_PUBLICATION_EXEC_H +#define CIAO_PUBLICATION_EXEC_H + +#include /**/ "ace/pre.h" + +#include "MessengerEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Messenger_exec_export.h" +#include "tao/LocalObject.h" + +// MY CODE +#include <string> +#include "ace/Thread_Mutex.h" + +namespace CIDL_Messenger_Impl +{ + class MESSENGER_EXEC_Export Publication_exec_i + : public virtual ::CCM_Publication, + public virtual ::CORBA::LocalObject + { + public: + Publication_exec_i (const char* text, CORBA::UShort period); + virtual ~Publication_exec_i (void); + + // Operations from ::Publication + + virtual char* text (); + + virtual void text ( const char* text); + + virtual CORBA::UShort period (); + + virtual void period ( CORBA::UShort period); + + private: + std::string text_; + CORBA::UShort period_; + + TAO_SYNCH_MUTEX lock_; + }; +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_PUBLICATION_EXEC_H */ + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.cidl b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.cidl new file mode 100644 index 00000000000..1deaf19ed2d --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.cidl @@ -0,0 +1,23 @@ +// $Id$ + +/** + * @file Receiver.cidl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef RECEIVER_CIDL +#define RECEIVER_CIDL + +#include "Receiver.idl" + +composition session Receiver_Impl +{ + home executor ReceiverHome_Exec + { + implements ReceiverHome; + manages Receiver_Exec; + }; +}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl new file mode 100644 index 00000000000..2d22feceb70 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl @@ -0,0 +1,23 @@ +// $Id$ + +/** + * @file Receiver.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef RECEIVER_IDL +#define RECEIVER_IDL + +#include <Components.idl> +#include "Message.idl" +#include "History.idl" + +component Receiver { + consumes Message message_consumer; + uses History message_history; +}; + +home ReceiverHome manages Receiver {}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc new file mode 100644 index 00000000000..19f4e42a94b --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc @@ -0,0 +1,115 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Messenger Receiver" + +project(Messenger_Receiver_idl_gen) : ciaoidldefaults, anytypecode, avoids_ace_for_tao { + custom_only = 1 + idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export \ + -Wb,stub_export_include=Receiver_stub_export.h \ + -Wb,skel_export_macro=RECEIVER_SVNT_Export \ + -Wb,skel_export_include=Receiver_svnt_export.h + + IDL_Files { + Receiver.idl + } +} + +project(Messenger_Receiver_cidl_gen) : ciaocidldefaults, ciaoidldefaults, avoids_ace_for_tao { + custom_only = 1 + cidlflags += --svnt-export-macro RECEIVER_SVNT_Export \ + --svnt-export-include Receiver_svnt_export.h + + CIDL_Files { + Receiver.cidl + } + + IDL_Files { + ReceiverE.idl + } +} + +project(Messenger_Receiver_stub) : ccm_stub, avoids_ace_for_tao { + after += Messenger_Receiver_idl_gen Messenger_stub + libs += Messenger_stub + + sharedname = Receiver_stub + dynamicflags = RECEIVER_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverC.cpp + } + + Header_Files { + ReceiverC.h + Receiver_stub_export.h + } + + Inline_Files { + ReceiverC.inl + } +} + +project(Messenger_Receiver_exec) : ciao_executor, avoids_ace_for_tao { + after += Messenger_Receiver_cidl_gen Messenger_Receiver_stub + sharedname = Receiver_exec + libs += Receiver_stub Messenger_stub + + dynamicflags = RECEIVER_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverEC.cpp + Receiver_exec_i.cpp + } + + Header_Files { + ReceiverEC.h + Receiver_exec_i.h + Receiver_exec_export.h + } + + Inline_Files { + ReceiverEC.inl + } +} + + +project(Messenger_Receiver_svnt) : ciao_servant, avoids_ace_for_tao { + after += Messenger_svnt Messenger_Receiver_exec + sharedname = Receiver_svnt + libs += Receiver_exec \ + Receiver_stub \ + Messenger_svnt \ + Messenger_stub + + dynamicflags = RECEIVER_SVNT_BUILD_DLL + + CIDL_Files { + } + + IDL_Files { + } + + Source_Files { + ReceiverEC.cpp + ReceiverS.cpp + Receiver_svnt.cpp + } + + Header_Files { + ReceiverEC.h + ReceiverS.h + Receiver_svnt.h + Receiver_svnt_export.h + } + + Inline_Files { + ReceiverS.inl + } +} + + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_export.h new file mode 100644 index 00000000000..9ae7b9ce799 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl RECEIVER_EXEC +// ------------------------------ +#ifndef RECEIVER_EXEC_EXPORT_H +#define RECEIVER_EXEC_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEIVER_EXEC_HAS_DLL) +# define RECEIVER_EXEC_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && RECEIVER_EXEC_HAS_DLL */ + +#if !defined (RECEIVER_EXEC_HAS_DLL) +# define RECEIVER_EXEC_HAS_DLL 1 +#endif /* ! RECEIVER_EXEC_HAS_DLL */ + +#if defined (RECEIVER_EXEC_HAS_DLL) && (RECEIVER_EXEC_HAS_DLL == 1) +# if defined (RECEIVER_EXEC_BUILD_DLL) +# define RECEIVER_EXEC_Export ACE_Proper_Export_Flag +# define RECEIVER_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define RECEIVER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* RECEIVER_EXEC_BUILD_DLL */ +# define RECEIVER_EXEC_Export ACE_Proper_Import_Flag +# define RECEIVER_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define RECEIVER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* RECEIVER_EXEC_BUILD_DLL */ +#else /* RECEIVER_EXEC_HAS_DLL == 1 */ +# define RECEIVER_EXEC_Export +# define RECEIVER_EXEC_SINGLETON_DECLARATION(T) +# define RECEIVER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* RECEIVER_EXEC_HAS_DLL == 1 */ + +// Set RECEIVER_EXEC_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (RECEIVER_EXEC_NTRACE) +# if (ACE_NTRACE == 1) +# define RECEIVER_EXEC_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define RECEIVER_EXEC_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !RECEIVER_EXEC_NTRACE */ + +#if (RECEIVER_EXEC_NTRACE == 1) +# define RECEIVER_EXEC_TRACE(X) +#else /* (RECEIVER_EXEC_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define RECEIVER_EXEC_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (RECEIVER_EXEC_NTRACE == 1) */ + +#endif /* RECEIVER_EXEC_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp new file mode 100644 index 00000000000..25873719be4 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp @@ -0,0 +1,177 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Receiver_exec_i.h" +#include "ciao/CIAO_common.h" + +namespace CIDL_Receiver_Impl +{ + //================================================================== + // Component Executor Implementation Class: Receiver_exec_i + //================================================================== + + Receiver_exec_i::Receiver_exec_i (void) + { + } + + Receiver_exec_i::~Receiver_exec_i (void) + { + } + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + void + Receiver_exec_i::push_message_consumer (::Message * ev) + { + /* Your code here. */ + + // MY CODE + + CORBA::String_var subject = ev->subject(); + CORBA::String_var user = ev->user(); + CORBA::String_var text = ev->text(); + + ACE_DEBUG((LM_INFO, + ACE_TEXT("Received Message:\n Subject: %s\n User: %s\n Text: %s\n"), + subject.in(), + user.in(), + text.in() )); + + // Use the history to (inefficiently) get the total number of messages + // published on this item so far + ::History_var history = + this->context_->get_connection_message_history(); + ::Messages_var messages = history->get_all(); + ACE_DEBUG((LM_INFO, + ACE_TEXT(" Subject \"%s\" has published %d messages so far\n"), + subject.in(), + messages->length() )); + } + + // Operations from Components::SessionComponent + + void + Receiver_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::CCM_Receiver_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Receiver_exec_i::configuration_complete () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::configuration_complete\n"))); + } + + void + Receiver_exec_i::ccm_activate () + { + // Your code here. + ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_activate\n"))); + } + + void + Receiver_exec_i::ccm_passivate () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_passivate\n"))); + } + + void + Receiver_exec_i::ccm_remove () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_remove\n"))); + } + + extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Receiver_Impl (void) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN (retval, + Receiver_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; + } + + //================================================================== + // Home Executor Implementation Class: ReceiverHome_exec_i + //================================================================== + + ReceiverHome_exec_i::ReceiverHome_exec_i (void) + { + } + + ReceiverHome_exec_i::~ReceiverHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + ReceiverHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Receiver_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_ReceiverHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + ReceiverHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h new file mode 100644 index 00000000000..1d257f45b31 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h @@ -0,0 +1,102 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_RECEIVER_EXEC_H +#define CIAO_RECEIVER_EXEC_H + +#include /**/ "ace/pre.h" + +#include "ReceiverEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Receiver_exec_export.h" +#include "tao/LocalObject.h" + +namespace CIDL_Receiver_Impl +{ + class RECEIVER_EXEC_Export Receiver_exec_i + : public virtual Receiver_Exec, + public virtual ::CORBA::LocalObject + { + public: + Receiver_exec_i (void); + virtual ~Receiver_exec_i (void); + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + virtual void push_message_consumer (::Message *ev); + + // Operations from Components::SessionComponent + + virtual void + set_session_context (::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + private: + ::CCM_Receiver_Context_var context_; + }; + + extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Receiver_Impl (void); + + class RECEIVER_EXEC_Export ReceiverHome_exec_i + : public virtual ReceiverHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + ReceiverHome_exec_i (void); + virtual ~ReceiverHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_ReceiverHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_RECEIVER_EXEC_H */ + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_stub_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_stub_export.h new file mode 100644 index 00000000000..ad411db973f --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl RECEIVER_STUB +// ------------------------------ +#ifndef RECEIVER_STUB_EXPORT_H +#define RECEIVER_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEIVER_STUB_HAS_DLL) +# define RECEIVER_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && RECEIVER_STUB_HAS_DLL */ + +#if !defined (RECEIVER_STUB_HAS_DLL) +# define RECEIVER_STUB_HAS_DLL 1 +#endif /* ! RECEIVER_STUB_HAS_DLL */ + +#if defined (RECEIVER_STUB_HAS_DLL) && (RECEIVER_STUB_HAS_DLL == 1) +# if defined (RECEIVER_STUB_BUILD_DLL) +# define RECEIVER_STUB_Export ACE_Proper_Export_Flag +# define RECEIVER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define RECEIVER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* RECEIVER_STUB_BUILD_DLL */ +# define RECEIVER_STUB_Export ACE_Proper_Import_Flag +# define RECEIVER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define RECEIVER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* RECEIVER_STUB_BUILD_DLL */ +#else /* RECEIVER_STUB_HAS_DLL == 1 */ +# define RECEIVER_STUB_Export +# define RECEIVER_STUB_SINGLETON_DECLARATION(T) +# define RECEIVER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* RECEIVER_STUB_HAS_DLL == 1 */ + +// Set RECEIVER_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (RECEIVER_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define RECEIVER_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define RECEIVER_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !RECEIVER_STUB_NTRACE */ + +#if (RECEIVER_STUB_NTRACE == 1) +# define RECEIVER_STUB_TRACE(X) +#else /* (RECEIVER_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define RECEIVER_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (RECEIVER_STUB_NTRACE == 1) */ + +#endif /* RECEIVER_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_svnt_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_svnt_export.h new file mode 100644 index 00000000000..51ed45dc299 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl RECEIVER_SVNT +// ------------------------------ +#ifndef RECEIVER_SVNT_EXPORT_H +#define RECEIVER_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEIVER_SVNT_HAS_DLL) +# define RECEIVER_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && RECEIVER_SVNT_HAS_DLL */ + +#if !defined (RECEIVER_SVNT_HAS_DLL) +# define RECEIVER_SVNT_HAS_DLL 1 +#endif /* ! RECEIVER_SVNT_HAS_DLL */ + +#if defined (RECEIVER_SVNT_HAS_DLL) && (RECEIVER_SVNT_HAS_DLL == 1) +# if defined (RECEIVER_SVNT_BUILD_DLL) +# define RECEIVER_SVNT_Export ACE_Proper_Export_Flag +# define RECEIVER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define RECEIVER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* RECEIVER_SVNT_BUILD_DLL */ +# define RECEIVER_SVNT_Export ACE_Proper_Import_Flag +# define RECEIVER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define RECEIVER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* RECEIVER_SVNT_BUILD_DLL */ +#else /* RECEIVER_SVNT_HAS_DLL == 1 */ +# define RECEIVER_SVNT_Export +# define RECEIVER_SVNT_SINGLETON_DECLARATION(T) +# define RECEIVER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* RECEIVER_SVNT_HAS_DLL == 1 */ + +// Set RECEIVER_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (RECEIVER_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define RECEIVER_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define RECEIVER_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !RECEIVER_SVNT_NTRACE */ + +#if (RECEIVER_SVNT_NTRACE == 1) +# define RECEIVER_SVNT_TRACE(X) +#else /* (RECEIVER_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define RECEIVER_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (RECEIVER_SVNT_NTRACE == 1) */ + +#endif /* RECEIVER_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl new file mode 100644 index 00000000000..61515b7c17a --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl @@ -0,0 +1,17 @@ +// $Id$ + +/** + * @file Runnable.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef RUNNABLE_IDL +#define RUNNABLE_IDL + +interface Runnable { + void start(); + void stop(); +}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp new file mode 100644 index 00000000000..564f432121c --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp @@ -0,0 +1,61 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Runnable_exec_i.h" +#include "ciao/CIAO_common.h" + +namespace CIDL_Messenger_Impl +{ + //================================================================== + // Facet Executor Implementation Class: Runnable_exec_i + //================================================================== + + Runnable_exec_i::Runnable_exec_i () + { + // initially in "stopped" state + this->stop(); + } + + Runnable_exec_i::~Runnable_exec_i (void) + { + // don't own anything + } + + // Operations from ::Runnable + + void + Runnable_exec_i::start () + { + this->run_lock_.release(); + } + + void + Runnable_exec_i::stop () + { + this->run_lock_.acquire(); + } + + TAO_SYNCH_MUTEX& + Runnable_exec_i::get_run_lock () + { + return this->run_lock_; + } +} + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h new file mode 100644 index 00000000000..71c394204ed --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h @@ -0,0 +1,65 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_RUNNABLE_EXEC_H +#define CIAO_RUNNABLE_EXEC_H + +#include /**/ "ace/pre.h" + +#include "Messenger_svnt.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Messenger_exec_export.h" + +// MY CODE +#include "tao/LocalObject.h" +#include "ace/Thread_Mutex.h" + +namespace CIDL_Messenger_Impl +{ + class MESSENGER_EXEC_Export Runnable_exec_i + : public virtual ::CCM_Runnable, + public virtual ::CORBA::LocalObject + { + public: + Runnable_exec_i (); + virtual ~Runnable_exec_i (void); + + // Operations from ::Runnable + + virtual void start (); + + virtual void stop (); + + // MY CODE + TAO_SYNCH_MUTEX& get_run_lock(); + + private: + TAO_SYNCH_MUTEX run_lock_; + }; +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_RUNNABLE_EXEC_H */ + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc new file mode 100644 index 00000000000..caae6351bbc --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc @@ -0,0 +1,18 @@ +// -*- MPC -*- +// $Id$ + +project(Messenger_StaticDAnCE) { + exename = Messenger_StaticDAnCE + requires += dummy_label + + libs += Receiver_stub Administrator_stub Messenger_stub + libs += Receiver_svnt Administrator_svnt Messenger_svnt + libs += Receiver_exec Administrator_exec Messenger_exec + libpaths += .. + + after += Receiver_exec Administrator_exec Messenger_exec + + Source_Files { + StaticDAnCEApp.cpp + } +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt new file mode 100644 index 00000000000..71cfbcf947f --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt @@ -0,0 +1,35 @@ +// $Id$ + +plan.h +------- +generated by running +$CIAO_ROOT/DAnCE/StaticConfiguration/StaticDAnCEParser -p + ../descriptors/Application-flattened.cdp + +Messenger_StaticDAnCE.mpc +------------------------- +started with a copy of StaticDAnCEApp.mpc.tmpl from + $CIAO_ROOT/DAnCE/StaticConfiguration +changed project name and exe name +replaces example libs with libs built in the .. directory +added the after += line + +StaticDAnCEApp.cpp +------------------ +copied from StaticDAnCEApp.cpp.tmpl in $CIAO_ROOT/DAnCE/StaticConfiguration + +run_test.pl +----------- +a modified copy of the ../descriptors/run_test.pl script that uses the static +application in place of the NodeManager to run the Messenger_Node (port 44000) + +To run the test on the target, start the Messenger_StaticDAnCE executable +(with -ORBEndpoint iiop://:44000) first on the target. +Then comment out the spawning of process NA4 in the run_test.pl script. +Also modify the final line of ../descriptors/ApplicationNodeMap.dat to +replace host with the hostname or IP address of the target system. + +Known issues: +- During shutodwn the Execution_Manager will print out some exceptions when +it tries to communicate with the Messenger_StaticDAnCE process that has +already terminated. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp new file mode 100644 index 00000000000..daf16e8cbba --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp @@ -0,0 +1,102 @@ +// $Id$ + +#include "Container_Base.h" +#include "NodeManager/NodeManager_Impl.h" +#include "ace/OS_NS_stdio.h" +#include "ace/streams.h" +#include "ace/Get_Opt.h" +#include "tao/IORTable/IORTable.h" +#include "tao/CDR.h" +#include "plan.h" + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + // Initialize the ORB so that CORBA::Any will work + // + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv); + try + { + // Get reference to Root POA. + CORBA::Object_var obj + = orb->resolve_initial_references ("RootPOA"); + + PortableServer::POA_var poa + = PortableServer::POA::_narrow (obj.in ()); + + // Activate POA manager + PortableServer::POAManager_var mgr + = poa->the_POAManager (); + + mgr->activate (); + + int homes_table_size = + sizeof (homes_table)/sizeof(HomeAttributes); + + CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map; + CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP homesvnt_creator_fptr_map; + CIAO::Static_Config_EntryPoints_Maps static_config_entrypoints_maps; + static_config_entrypoints_maps.home_creator_funcptr_map_ = &home_creator_fptr_map; + static_config_entrypoints_maps.home_servant_creator_funcptr_map_ = &homesvnt_creator_fptr_map; + + int i=0; + for (i=0; i<homes_table_size; ++i) + { + home_creator_fptr_map.bind (homes_table[i].executor_entrypt_, + homes_table[i].executor_fptr_); + + homesvnt_creator_fptr_map.bind (homes_table[i].servant_entrypt_, + homes_table[i].servant_fptr_); + } + + CIAO::Static_NodeManager_Impl *static_node_manager_impl; + // Create and install the CIAO Daemon servant + + ACE_DEBUG ((LM_DEBUG, "creating static_node_manager\n")); + + static_node_manager_impl = + new CIAO::Static_NodeManager_Impl("NodeManager", + orb.in (), + poa.in (), + "", //exe location + "", //exe options + 0, //spawn delay + &static_config_entrypoints_maps); + + static_node_manager_impl->init (); + + CORBA::Object_var table_object = + orb->resolve_initial_references ("IORTable"); + + IORTable::Table_var adapter = + IORTable::Table::_narrow (table_object.in ()); + + if (CORBA::is_nil (adapter.in ())) + ACE_ERROR_RETURN ((LM_ERROR, "Nil IORTable\n"), -1); + + CIAO::NodeManagerDaemon_var manager = + static_node_manager_impl->_this (); + + CORBA::String_var str = + orb->object_to_string (manager.in ()); + + adapter->bind ("NodeManager", + str.in ()); + + // Run the main event loop for the ORB. + orb->run (); + + poa->destroy (1, 1); + + orb->destroy (); + } + catch (CORBA::Exception& ex) + { + ex._tao_print_exception ("Caught CORBA Exception: "); + return -1; + } + + return 0; +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h new file mode 100644 index 00000000000..a5732221e75 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h @@ -0,0 +1,47 @@ +// $Id$ + +#include "Session_Container.h" + +extern "C" ::Components::HomeExecutorBase_ptr create_MessengerHome_Impl (void); +extern "C" ::PortableServer::Servant create_MessengerHome_Servant + (::Components::HomeExecutorBase_ptr p, + ::CIAO::Session_Container *c, + const char* + ); +extern "C" ::Components::HomeExecutorBase_ptr create_ReceiverHome_Impl (void); +extern "C" ::PortableServer::Servant create_ReceiverHome_Servant + (::Components::HomeExecutorBase_ptr p, + ::CIAO::Session_Container *c, + const char* + ); +extern "C" ::Components::HomeExecutorBase_ptr create_ReceiverHome_Impl (void); +extern "C" ::PortableServer::Servant create_ReceiverHome_Servant + (::Components::HomeExecutorBase_ptr p, + ::CIAO::Session_Container *c, + const char* + ); +extern "C" ::Components::HomeExecutorBase_ptr create_AdministratorHome_Impl (void); +extern "C" ::PortableServer::Servant create_AdministratorHome_Servant + (::Components::HomeExecutorBase_ptr p, + ::CIAO::Session_Container *c, + const char* + ); +struct HomeAttributes +{ + char const * component_instance_name_; + /// Specify the entrypoint to component executor DLL. + char const * executor_entrypt_; + ::CIAO::HomeFactory executor_fptr_; + /// Specify the entrypoint to component servant DLL. + char const * servant_entrypt_; + ::CIAO::ServantFactory servant_fptr_; +}; +/// Homes +HomeAttributes homes_table[]= +{ + {"Messenger_Instance", "create_MessengerHome_Impl", create_MessengerHome_Impl, "create_MessengerHome_Servant", create_MessengerHome_Servant}, + {"First_Receiver_Instance", "create_ReceiverHome_Impl", create_ReceiverHome_Impl, "create_ReceiverHome_Servant", create_ReceiverHome_Servant}, + {"Second_Receiver_Instance", "create_ReceiverHome_Impl", create_ReceiverHome_Impl, "create_ReceiverHome_Servant", create_ReceiverHome_Servant}, + {"Administrator_Instance", "create_AdministratorHome_Impl", create_AdministratorHome_Impl, "create_AdministratorHome_Servant", create_AdministratorHome_Servant} +}; + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl new file mode 100755 index 00000000000..e7e707f253d --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl @@ -0,0 +1,110 @@ +# $Id$ + +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +use Env (ACE_ROOT); +use lib "$ACE_ROOT/bin"; +use PerlACE::Run_Test; + +$emior= PerlACE::LocalFile ("em.ior"); +unlink $emior; +$plior= PerlACE::LocalFile ("pl.ior"); +unlink $plior; + +if (defined $ENV{'CIAO_ROOT'}) { + $CIAO_ROOT = $ENV{'CIAO_ROOT'}; +} +else { + $CIAO_ROOT = $ACE_ROOT/TAO/CIAO; +} + +$NA = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); +$NA_cmd = $NA->Executable (); + +$NA1 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager", + "-ORBEndpoint iiop://localhost:11000 -s $NA_cmd"); + +$NA2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager", + "-ORBEndpoint iiop://localhost:22000 -s $NA_cmd"); + +$NA3 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager", + "-ORBEndpoint iiop://localhost:33000 -s $NA_cmd"); + +$NA4 = new PerlACE::Process ("Messenger_StaticDAnCE", + "-ORBEndpoint iiop://:44000"); + +# Each Node Manager lauches a Node Application process. +open(STDIN, "<../descriptors/admin.dat"); +$Ret1 = $NA1->Spawn (); +if($Ret1 == -1) { + print STDERR "ERROR: Administrator returned <$Ret1>\n" +} + +$Ret2 = $NA2->Spawn (); +if($Ret2 == -1) { + print STDERR "ERROR: Receiver 1 returned <$Ret2>\n" +} + +$Ret3 = $NA3->Spawn (); +if($Ret3 == -1) { + print STDERR "ERROR: Receiver 2 returned <$Ret3>\n" +} + +$Ret4 = $NA4->Spawn (); +if($Ret4 == -1) { + print STDERR "ERROR: Messenger returned <$Ret4>\n" +} + +#Start an Execution Manager +$EM = new PerlACE::Process ("$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager", "-o $emior -i ../descriptors/ApplicationNodeMap.dat"); + +$Ret5 = $EM->Spawn (); +if($Ret5 == -1) { + print STDERR "ERROR: Execution Manager returned <$Ret5>\n" +} + +if (PerlACE::waitforfile_timed ($emior, 5) == -1) { + print STDERR "ERROR: cannot find file <$emior>\n"; + $EM->Kill(); + unlink $emior; + exit 1; +} + +sleep(5); +#Start the plan launcher +$EX = new PerlACE::Process ("$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher", + "-p ../descriptors/Application-flattened.cdp ". + "-k file://$emior -o $plior"); + +#Stop the plan launcher +$EX2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher", + "-k file://$emior -i file://$plior"); + +$Ret6 = $EX->Spawn (); +if($Ret6 == -1) { + print STDERR "ERROR: plan launcher returned <$Ret6>\n" +} + +sleep(10); + +$Ret7 = $EX2->Spawn (); +if($Ret7 == -1) { + print STDERR "ERROR: plan launcher (shutdown) returned <$Ret7>\n" +} + +sleep(5); +$EX2->Kill(); +$EX->Kill(); +$EM->Kill(); + +$NA1->Kill(); +$NA2->Kill(); +$NA3->Kill(); +$NA4->Kill(); + +unlink $emior; +unlink $plior; + +exit 0; diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd new file mode 100644 index 00000000000..23ba49bb84c --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentInterfaceDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Administrator Component</label> + <specificType>IDL:Administrator:1.0</specificType> + <supportedType>IDL:Administrator:1.0</supportedType> + <idlFile>Administrator.idl</idlFile> + + <port> + <name>runnables</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>true</optional> + <provider>false</provider> + <supportedType>IDL:Runnable:1.0</supportedType> + <specificType>IDL:Runnable:1.0</specificType> + <kind>MultiplexReceptacle</kind> + </port> + + <port> + <name>content</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>true</optional> + <provider>false</provider> + <supportedType>IDL:Publication:1.0</supportedType> + <specificType>IDL:Publication:1.0</specificType> + <kind>MultiplexReceptacle</kind> + </port> + + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This CCD describes the Administrator's interface</string> + </value> + </value> + </infoProperty> + +</Deployment:ComponentInterfaceDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid new file mode 100644 index 00000000000..af9e9a4c677 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentImplementationDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Administrator Implementation</label> + <implements href="Administrator.ccd"/> + <monolithicImpl> + <primaryArtifact> + <name>Administrator_Stub</name> + <referencedArtifact href="Administrator_Stub.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Administrator_Svnt</name> + <referencedArtifact href="Administrator_Svnt.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Administrator_Exec</name> + <referencedArtifact href="Administrator_Exec.iad"/> + </primaryArtifact> + </monolithicImpl> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Administrator.ior</string> + </value> + </value> + </configProperty> +</Deployment:ComponentImplementationDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd new file mode 100644 index 00000000000..972966462e6 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentPackageDescription +xmlns:Deployment="http://www.omg.org/Deployment" +xmlns:xmi="http://www.omg.org/XMI" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Administrator Component</label> + <realizes href="Administrator.ccd"/> + <implementation> + <name>AdministratorImpl</name> + <referencedImplementation href="Administrator.cid"/> + </implementation> + +</Deployment:ComponentPackageDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad new file mode 100644 index 00000000000..81b7a16da7a --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Administrator Executor Artifact</label> + <location>Administrator_exec</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Administrator_Stub</name> + <referencedArtifact href="Administrator_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createAdministratorHome_Impl</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Administrator's executor library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad new file mode 100644 index 00000000000..931fc371710 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Administrator Stub Artifact</label> + <location>Administrator_stub</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Messenger_Stub</name> + <referencedArtifact href="Messenger_Stub.iad"/> + </dependsOn> + + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Administrator's stub library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad new file mode 100644 index 00000000000..6774a107ef0 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Administrator Servant Artifact</label> + <location>Administrator_svnt</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Administrator_Stub</name> + <referencedArtifact href="Administrator_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createAdministratorHome_Servant</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Administrator's servant library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp new file mode 100644 index 00000000000..d01ec12e2db --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp @@ -0,0 +1,255 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:deploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Messenger Deployment Plan</label> + + <!-- realizes --> + + <!-- implementation* --> + + <implementation id="MessengerImpl"> <!-- from Messenger.cpd --> + <name>MessengerImpl</name> + <source></source> + <!-- from Messenger.cid --> + <artifact>Messenger_Stub</artifact> + <artifact>Messenger_Svnt</artifact> + <artifact>Messenger_Exec</artifact> + </implementation> + + <implementation id="ReceiverImpl"> <!-- from Receiver.cpd --> + <name>ReceiverImpl</name> + <source></source> + <artifact>Receiver_Stub</artifact> + <artifact>Receiver_Svnt</artifact> + <artifact>Receiver_Exec</artifact> + </implementation> + + <implementation id="AdministratorImpl"> <!-- from Administrator.cpd --> + <name>AdministratorImpl</name> + <source></source> + <artifact>Administrator_Stub</artifact> + <artifact>Administrator_Svnt</artifact> + <artifact>Administrator_Exec</artifact> + </implementation> + + <!-- instance* --> + + <instance id="Messenger_Instance_ID"> + <name>Messenger_Instance</name> + <node>Messenger_Node</node> + <source></source> + <implementation>MessengerImpl</implementation> + </instance> + <instance id="First_Receiver_Instance_ID"> + <name>First_Receiver_Instance</name> + <node>First_Receiver_Node</node> + <source></source> + <implementation>ReceiverImpl</implementation> + </instance> + <instance id="Second_Receiver_Instance_ID"> + <name>Second_Receiver_Instance</name> + <node>Second_Receiver_Node</node> + <source></source> + <implementation>ReceiverImpl</implementation> + </instance> + <instance id="Administrator_Instance_ID"> + <name>Administrator_Instance</name> + <node>Administrator_Node</node> + <source></source> + <implementation>AdministratorImpl</implementation> + </instance> + + <!-- connection* --> + + <connection> + <name>Messenger_to_First_Receiver_Publish</name> + <internalEndpoint> + <portName>message_publisher</portName> + <kind>EventPublisher</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>message_consumer</portName> + <kind>EventConsumer</kind> + <instance>First_Receiver_Instance_ID</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_First_Receiver_History</name> + <internalEndpoint> + <portName>message_history</portName> + <kind>Facet</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>message_history</portName> + <kind>SimplexReceptacle</kind> + <instance>First_Receiver_Instance_ID</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Second_Receiver_Publish</name> + <internalEndpoint> + <portName>message_publisher</portName> + <kind>EventPublisher</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>message_consumer</portName> + <kind>EventConsumer</kind> + <instance>Second_Receiver_Instance_ID</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Second_Receiver_History</name> + <internalEndpoint> + <portName>message_history</portName> + <kind>Facet</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>message_history</portName> + <kind>SimplexReceptacle</kind> + <instance>Second_Receiver_Instance_ID</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Administrator_Control</name> + <internalEndpoint> + <portName>control</portName> + <kind>Facet</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>runnables</portName> + <kind>SimplexReceptacle</kind> + <instance>Administrator_Instance_ID</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Administrator_Content</name> + <internalEndpoint> + <portName>content</portName> + <kind>Facet</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>content</portName> + <kind>SimplexReceptacle</kind> + <instance>Administrator_Instance_ID</instance> + </internalEndpoint> + </connection> + + <!-- artifact* (exec, svnt) --> + + <artifact id="Messenger_Stub"> + <name>Messenger_Stub</name> + <source></source> + <node></node> + <location>Messenger_stub</location> + </artifact> + <artifact id="Messenger_Svnt"> + <name>Messenger_Svnt</name> + <source></source> + <node></node> + <location>Messenger_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_MessengerHome_Servant</string></value> + </value> + </execParameter> + </artifact> + <artifact id="Messenger_Exec"> + <name>Messenger_Exec</name> + <source></source> + <node></node> + <location>Messenger_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_MessengerHome_Impl</string></value> + </value> + </execParameter> + </artifact> + + <artifact id="Receiver_Stub"> + <name>Receiver_Stub</name> + <source></source> + <node></node> + <location>Receiver_stub</location> + </artifact> + <artifact id="Receiver_Svnt"> + <name>Receiver_Svnt</name> + <source></source> + <node></node> + <location>Receiver_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_ReceiverHome_Servant</string></value> + </value> + </execParameter> + </artifact> + <artifact id="Receiver_Exec"> + <name>Receiver_Exec</name> + <source></source> + <node></node> + <location>Receiver_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_ReceiverHome_Impl</string></value> + </value> + </execParameter> + </artifact> + + <artifact id="Administrator_Stub"> + <name>Administrator_Stub</name> + <source></source> + <node></node> + <location>Administrator_stub</location> + </artifact> + <artifact id="Administrator_Svnt"> + <name>Administrator_Svnt</name> + <source></source> + <node></node> + <location>Administrator_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_AdministratorHome_Servant</string></value> + </value> + </execParameter> + </artifact> + <artifact id="Administrator_Exec"> + <name>Administrator_Exec</name> + <source></source> + <node></node> + <location>Administrator_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_AdministratorHome_Impl</string></value> + </value> + </execParameter> + </artifact> + + +</Deployment:deploymentPlan> + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp new file mode 100644 index 00000000000..9e774373c2f --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:DeploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Deployment Plan</label> + <instance xmi:id="Messenger_Instance_ID"> + <name>Messenger_Instance</name> + <node>Messenger_Node</node> + </instance> + <instance xmi:id="First_Receiver_Instance_ID"> + <name>First_Receiver_Instance</name> + <node>First_Receiver_Node</node> + </instance> + <instance xmi:id="Second_Receiver_Instance_ID"> + <name>Second_Receiver_Instance</name> + <node>Second_Receiver_Node</node> + </instance> + <instance xmi:id="Administrator_Instance_ID"> + <name>Administrator_Instance</name> + <node>Administrator_Node</node> + </instance> +</Deployment:DeploymentPlan> + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd new file mode 100644 index 00000000000..70635a4850b --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:PackageConfiguration +xmlns:Deployment="http://www.omg.org/Deployment" +xmlns:xmi="http://www.omg.org/XMI" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Application Configuration</label> + <basePackage href="MessengerAssembly.cpd"/> + + <!-- CIAO does not yet pay attention to this --> + <configProperty> + <name>subject</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>My Subject</string> + </value> + </value> + </configProperty> +</Deployment:PackageConfiguration> + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat new file mode 100644 index 00000000000..91fbbfd4d20 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat @@ -0,0 +1,5 @@ +Administrator_Node corbaloc:iiop:localhost:11000/Administrator_Node.NodeManager +First_Receiver_Node corbaloc:iiop:localhost:22000/First_Receiver_Node.NodeManager +Second_Receiver_Node corbaloc:iiop:localhost:33000/Second_Receiver_Node.NodeManager +Messenger_Node corbaloc:iiop:localhost:44000/Messenger_Node.NodeManager + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd new file mode 100644 index 00000000000..ae9bc21965d --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd @@ -0,0 +1,776 @@ +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:Deployment="http://www.omg.org/Deployment" + targetNamespace="http://www.omg.org/Deployment"> + + <xsd:import namespace="http://www.omg.org/XMI" schemaLocation="XMI.xsd" /> + + + <xsd:complexType name="Any"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="type" type="Deployment:DataType"/> + <xsd:element name="value" type="Deployment:DataValue"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Any" type="Deployment:Any"/> + <xsd:complexType name="DataType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="kind" type="Deployment:TCKind"/> + <xsd:element name="enum" type="Deployment:EnumType"/> + <xsd:element name="objref" type="Deployment:ObjrefType"/> + <xsd:element name="boundedString" type="Deployment:BoundedStringType"/> + <xsd:element name="fixed" type="Deployment:FixedType"/> + <xsd:element name="array" type="Deployment:ArrayType"/> + <xsd:element name="sequence" type="Deployment:SequenceType"/> + <xsd:element name="alias" type="Deployment:AliasType"/> + <xsd:element name="struct" type="Deployment:StructType"/> + <xsd:element name="value" type="Deployment:ValueType"/> + <xsd:element name="union" type="Deployment:UnionType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="DataType" type="Deployment:DataType"/> + <xsd:complexType name="DataValue"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="short" type="xsd:short"/> + <xsd:element name="long" type="xsd:int"/> + <xsd:element name="ushort" type="xsd:unsignedShort"/> + <xsd:element name="ulong" type="xsd:unsignedInt"/> + <xsd:element name="float" type="xsd:float"/> + <xsd:element name="double" type="xsd:double"/> + <xsd:element name="boolean" type="xsd:boolean"/> + <xsd:element name="octet" type="xsd:unsignedByte"/> + <xsd:element name="opaque" type="xsd:base64Binary"/> + <xsd:element name="objref" type="xsd:string"/> + <xsd:element name="enum" type="xsd:string"/> + <xsd:element name="string" type="xsd:string"/> + <xsd:element name="longlong" type="xsd:long"/> + <xsd:element name="ulonglong" type="xsd:unsignedLong"/> + <xsd:element name="longdouble" type="xsd:double"/> + <xsd:element name="fixed" type="xsd:string"/> + <xsd:element name="any" type="Deployment:Any"/> + <xsd:element name="typecode" type="Deployment:DataType"/> + <xsd:element name="element" type="Deployment:DataValue"/> + <xsd:element name="discriminator" type="Deployment:DataValue"/> + <xsd:element name="value" type="Deployment:DataValue"/> + <xsd:element name="boxedValue" type="Deployment:DataValue"/> + <xsd:element name="member" type="Deployment:NamedValue"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="DataValue" type="Deployment:DataValue"/> + + + <xsd:complexType name="EnumType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="member" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="EnumType" type="Deployment:EnumType"/> + <xsd:complexType name="ObjrefType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + + + <xsd:element name="ObjrefType" type="Deployment:ObjrefType"/> + <xsd:complexType name="BoundedStringType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="bound" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="BoundedStringType" type="Deployment:BoundedStringType"/> + <xsd:complexType name="FixedType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="digits" type="xsd:string"/> + <xsd:element name="scale" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="FixedType" type="Deployment:FixedType"/> + <xsd:complexType name="ArrayType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="length" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ArrayType" type="Deployment:ArrayType"/> + <xsd:complexType name="SequenceType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="bound" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SequenceType" type="Deployment:SequenceType"/> + <xsd:complexType name="AliasType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="AliasType" type="Deployment:AliasType"/> + <xsd:complexType name="StructType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="member" type="Deployment:StructMemberType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="StructType" type="Deployment:StructType"/> + <xsd:complexType name="StructMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="StructMemberType" type="Deployment:StructMemberType"/> + <xsd:complexType name="ValueType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="modifier" type="xsd:string"/> + <xsd:element name="baseType" type="Deployment:DataType"/> + <xsd:element name="member" type="Deployment:ValueMemberType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ValueType" type="Deployment:ValueType"/> + <xsd:complexType name="ValueMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="visibility" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ValueMemberType" type="Deployment:ValueMemberType"/> + <xsd:complexType name="UnionType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="default" type="Deployment:UnionMemberType"/> + <xsd:element name="discriminatorType" type="Deployment:DataType"/> + <xsd:element name="member" type="Deployment:UnionMemberType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="UnionType" type="Deployment:UnionType"/> + <xsd:complexType name="UnionMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + <xsd:element name="label" type="Deployment:DataValue"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="UnionMemberType" type="Deployment:UnionMemberType"/> + <xsd:complexType name="NamedValue"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="value" type="Deployment:DataValue"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="NamedValue" type="Deployment:NamedValue"/> + <xsd:complexType name="Bridge"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="connect" type="Deployment:Interconnect"/> + <xsd:element name="resource" type="Deployment:Resource"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Bridge" type="Deployment:Bridge"/> + <xsd:complexType name="Interconnect"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="connection" type="Deployment:Bridge"/> + <xsd:element name="connect" type="Deployment:Node"/> + <xsd:element name="resource" type="Deployment:Resource"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Interconnect" type="Deployment:Interconnect"/> + <xsd:complexType name="Node"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="connection" type="Deployment:Interconnect"/> + <xsd:element name="sharedResource" type="Deployment:SharedResource"/> + <xsd:element name="resource" type="Deployment:Resource"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Node" type="Deployment:Node"/> + <xsd:complexType name="Resource"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Resource" type="Deployment:Resource"/> + <xsd:complexType name="SharedResource"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="node" type="Deployment:Node"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SharedResource" type="Deployment:SharedResource"/> + <xsd:complexType name="Domain"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="sharedResource" type="Deployment:SharedResource"/> + <xsd:element name="node" type="Deployment:Node"/> + <xsd:element name="interconnect" type="Deployment:Interconnect"/> + <xsd:element name="bridge" type="Deployment:Bridge"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Domain" type="Deployment:Domain"/> + <xsd:complexType name="PlanPropertyMapping"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="externalName" type="xsd:string"/> + <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PlanPropertyMapping" type="Deployment:PlanPropertyMapping"/> + <xsd:complexType name="PlanSubcomponentPropertyReference"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="propertyName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PlanSubcomponentPropertyReference" type="Deployment:PlanSubcomponentPropertyReference"/> + <xsd:complexType name="PlanSubcomponentPortEndpoint"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="portName" type="xsd:string"/> + <xsd:element name="provider" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PlanSubcomponentPortEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/> + <xsd:complexType name="PlanConnectionDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement"/> + <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/> + <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/> + <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/> + <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PlanConnectionDescription" type="Deployment:PlanConnectionDescription"/> + <xsd:complexType name="InstanceDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="node" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription"/> + <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="InstanceDeploymentDescription" type="Deployment:InstanceDeploymentDescription"/> + <xsd:complexType name="MonolithicDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/> + <xsd:element name="execParameter" type="Deployment:Property"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="MonolithicDeploymentDescription" type="Deployment:MonolithicDeploymentDescription"/> + <xsd:complexType name="ArtifactDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="location" type="xsd:string"/> + <xsd:element name="node" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="execParameter" type="Deployment:Property"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement"/> + <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ArtifactDeploymentDescription" type="Deployment:ArtifactDeploymentDescription"/> + + + <xsd:complexType name="DeploymentPlan"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/> + <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/> + <xsd:element name="connection" type="Deployment:PlanConnectionDescription"/> + <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/> + <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="DeploymentPlan" type="Deployment:DeploymentPlan"/> + + + <xsd:complexType name="ResourceDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ResourceDeploymentDescription" type="Deployment:ResourceDeploymentDescription"/> + <xsd:complexType name="InstanceResourceDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="InstanceResourceDeploymentDescription" type="Deployment:InstanceResourceDeploymentDescription"/> + <xsd:complexType name="ConnectionResourceDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="targetName" type="xsd:string"/> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ConnectionResourceDeploymentDescription" type="Deployment:ConnectionResourceDeploymentDescription"/> + <xsd:complexType name="Capability"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Capability" type="Deployment:Capability"/> + <xsd:complexType name="ComponentPropertyDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentPropertyDescription" type="Deployment:ComponentPropertyDescription"/> + <xsd:complexType name="ComponentPortDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="specificType" type="xsd:string"/> + <xsd:element name="supportedType" type="xsd:string"/> + <xsd:element name="provider" type="xsd:string"/> + <xsd:element name="exclusiveProvider" type="xsd:string"/> + <xsd:element name="exclusiveUser" type="xsd:string"/> + <xsd:element name="optional" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentPortDescription" type="Deployment:ComponentPortDescription"/> + <xsd:complexType name="ComponentInterfaceDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="specificType" type="xsd:string"/> + <xsd:element name="supportedType" type="xsd:string"/> + <xsd:element name="idlFile" type="xsd:string"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + <xsd:element name="port" type="Deployment:ComponentPortDescription"/> + <xsd:element name="property" type="Deployment:ComponentPropertyDescription"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/> + <xsd:complexType name="ImplementationArtifactDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="location" type="xsd:string"/> + <xsd:element name="execParameter" type="Deployment:Property"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement"/> + <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ImplementationArtifactDescription" type="Deployment:ImplementationArtifactDescription"/> + <xsd:complexType name="MonolithicImplementationDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="execParameter" type="Deployment:Property"/> + <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact"/> + <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="MonolithicImplementationDescription" type="Deployment:MonolithicImplementationDescription"/> + <xsd:complexType name="AssemblyPropertyMapping"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="externalName" type="xsd:string"/> + <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="AssemblyPropertyMapping" type="Deployment:AssemblyPropertyMapping"/> + <xsd:complexType name="SubcomponentPropertyReference"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="propertyName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SubcomponentPropertyReference" type="Deployment:SubcomponentPropertyReference"/> + <xsd:complexType name="SubcomponentPortEndpoint"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="portName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SubcomponentPortEndpoint" type="Deployment:SubcomponentPortEndpoint"/> + <xsd:complexType name="AssemblyConnectionDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement"/> + <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/> + <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint"/> + <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="AssemblyConnectionDescription" type="Deployment:AssemblyConnectionDescription"/> + <xsd:complexType name="SubcomponentInstantiationDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="package" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + <xsd:element name="selectRequirement" type="Deployment:Requirement"/> + <xsd:element name="reference" type="Deployment:ComponentPackageReference"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SubcomponentInstantiationDescription" type="Deployment:SubcomponentInstantiationDescription"/> + <xsd:complexType name="ComponentAssemblyDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/> + <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription"/> + <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentAssemblyDescription" type="Deployment:ComponentAssemblyDescription"/> + <xsd:complexType name="ComponentImplementationDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription"/> + <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/> + <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + <xsd:element name="capability" type="Deployment:Capability"/> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentImplementationDescription" type="Deployment:ComponentImplementationDescription"/> + <xsd:complexType name="ComponentPackageReference"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="requiredUUID" type="xsd:string"/> + <xsd:element name="requiredName" type="xsd:string"/> + <xsd:element name="requiredType" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentPackageReference" type="Deployment:ComponentPackageReference"/> + <xsd:complexType name="ComponentPackageDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentPackageDescription" type="Deployment:ComponentPackageDescription"/> + <xsd:complexType name="PackageConfiguration"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/> + <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="reference" type="Deployment:ComponentPackageReference"/> + <xsd:element name="selectRequirement" type="Deployment:Requirement"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PackageConfiguration" type="Deployment:PackageConfiguration"/> + <xsd:complexType name="PackagedComponentImplementation"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PackagedComponentImplementation" type="Deployment:PackagedComponentImplementation"/> + <xsd:complexType name="NamedImplementationArtifact"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="NamedImplementationArtifact" type="Deployment:NamedImplementationArtifact"/> + <xsd:complexType name="ImplementationRequirement"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/> + <xsd:element name="resourcePort" type="xsd:string"/> + <xsd:element name="componentPort" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="property" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ImplementationRequirement" type="Deployment:ImplementationRequirement"/> + <xsd:complexType name="RequirementSatisfier"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="RequirementSatisfier" type="Deployment:RequirementSatisfier"/> + <xsd:complexType name="SatisfierProperty"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/> + <xsd:element name="value" type="Deployment:Any"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SatisfierProperty" type="Deployment:SatisfierProperty"/> + <xsd:complexType name="Requirement"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="property" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Requirement" type="Deployment:Requirement"/> + <xsd:complexType name="Property"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="value" type="Deployment:Any"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Property" type="Deployment:Property"/> + <xsd:complexType name="ExternalReferenceEndpoint"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="location" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ExternalReferenceEndpoint" type="Deployment:ExternalReferenceEndpoint"/> + <xsd:complexType name="ComponentExternalPortEndpoint"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="portName" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentExternalPortEndpoint" type="Deployment:ComponentExternalPortEndpoint"/> + <xsd:complexType name="ImplementationDependency"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="requiredType" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ImplementationDependency" type="Deployment:ImplementationDependency"/> + <xsd:complexType name="TopLevelPackageDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="package" type="Deployment:PackageConfiguration"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="TopLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/> + <xsd:simpleType name="TCKind"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="tk_null"/> + <xsd:enumeration value="tk_void"/> + <xsd:enumeration value="tk_short"/> + <xsd:enumeration value="tk_long"/> + <xsd:enumeration value="tk_ushort"/> + <xsd:enumeration value="tk_ulong"/> + <xsd:enumeration value="tk_float"/> + <xsd:enumeration value="tk_double"/> + <xsd:enumeration value="tk_boolean"/> + <xsd:enumeration value="tk_char"/> + <xsd:enumeration value="tk_octet"/> + <xsd:enumeration value="tk_any"/> + <xsd:enumeration value="tk_TypeCode"/> + <xsd:enumeration value="tk_Principal"/> + <xsd:enumeration value="tk_objref"/> + <xsd:enumeration value="tk_struct"/> + <xsd:enumeration value="tk_union"/> + <xsd:enumeration value="tk_enum"/> + <xsd:enumeration value="tk_string"/> + <xsd:enumeration value="tk_sequence"/> + <xsd:enumeration value="tk_array"/> + <xsd:enumeration value="tk_alias"/> + <xsd:enumeration value="tk_except"/> + <xsd:enumeration value="tk_longlong"/> + <xsd:enumeration value="tk_ulonglong"/> + <xsd:enumeration value="tk_longdouble"/> + <xsd:enumeration value="tk_wchar"/> + <xsd:enumeration value="tk_wstring"/> + <xsd:enumeration value="tk_wfixed"/> + <xsd:enumeration value="tk_value"/> + <xsd:enumeration value="tk_value_box"/> + <xsd:enumeration value="tk_native"/> + <xsd:enumeration value="tk_abstract_interface"/> + <xsd:enumeration value="tk_local_interface"/> + <xsd:enumeration value="tk_component"/> + <xsd:enumeration value="tk_home"/> + <xsd:enumeration value="tk_event"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:simpleType name="ResourceUsageKind"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="None"/> + <xsd:enumeration value="InstanceUsesResource"/> + <xsd:enumeration value="ResourceUsesInstance"/> + <xsd:enumeration value="PortUsesResource"/> + <xsd:enumeration value="ResourceUsesPort"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:simpleType name="CCMComponentPortKind"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="Facet"/> + <xsd:enumeration value="SimplexReceptacle"/> + <xsd:enumeration value="MultiplexReceptacle"/> + <xsd:enumeration value="EventEmitter"/> + <xsd:enumeration value="EventPublisher"/> + <xsd:enumeration value="EventConsumer"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:simpleType name="SatisfierPropertyKind"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="Quantity"/> + <xsd:enumeration value="Capacity"/> + <xsd:enumeration value="Minimum"/> + <xsd:enumeration value="Maximum"/> + <xsd:enumeration value="Attribute"/> + <xsd:enumeration value="Selection"/> + </xsd:restriction> + </xsd:simpleType> +</xsd:schema> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd new file mode 100644 index 00000000000..54a8c1f5a82 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<Deployment:Domain + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> +<label>Messenger Application Domain</label> +<node> + <name>Messenger_Node</name> + <label>Messenger's Node</label> +</node> +<node> + <name>First_Receiver_Node</name> + <label>First Receiver's Node</label> +</node> +<node> + <name>Second_Receiver_Node</name> + <label>Second Receiver's Node</label> +</node> +<node> + <name>Administrator_Node</name> + <label>Administrator's Node</label> +</node> +</Deployment:Domain> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad new file mode 100644 index 00000000000..d861613c157 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>ACE/TAO/CIAO Libraries</label> + <location>$ACE_ROOT/lib/ACE</location> + <location>$ACE_ROOT/lib/TAO</location> + <location>$ACE_ROOT/lib/CIAO_Client</location> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd new file mode 100644 index 00000000000..cf79d7fb9f7 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentInterfaceDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Component</label> + <specificType>IDL:Messenger:1.0</specificType> + <idlFile>Messenger.idl</idlFile> + + <property> + <name>subject</name> + <type> + <kind>tk_string</kind> + </type> + </property> + + <port> + <name>control</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>true</optional> + <provider>true</provider> + <supportedType>IDL:Runnable:1.0</supportedType> + <specificType>IDL:Runnable:1.0</specificType> + <kind>Facet</kind> + </port> + + <port> + <name>content</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>true</optional> + <provider>true</provider> + <supportedType>IDL:Publication:1.0</supportedType> + <specificType>IDL:Publication:1.0</specificType> + <kind>Facet</kind> + </port> + + <port> + <name>message_publisher</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>true</optional> + <provider>false</provider> + <supportedType>IDL:Message:1.0</supportedType> + <specificType>IDL:Message:1.0</specificType> + <kind>EventPublisher</kind> + </port> + + <port> + <name>message_history</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>true</optional> + <provider>true</provider> + <supportedType>IDL:History:1.0</supportedType> + <specificType>IDL:History:1.0</specificType> + <kind>Facet</kind> + </port> + + <!-- Default value for subject property, can be overridden. + CIAO does not process this (yet) + --> + <configProperty> + <name>subject</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Default Subject</string> + </value> + </value> + </configProperty> + + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This CCD describes the Messenger's interface</string> + </value> + </value> + </infoProperty> + +</Deployment:ComponentInterfaceDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid new file mode 100644 index 00000000000..c4e934f1ee2 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentImplementationDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Implementation</label> + <implements href="Messenger.ccd"/> + <monolithicImpl> + <primaryArtifact> + <name>Messenger_Stub</name> + <referencedArtifact href="Messenger_Stub.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Messenger_Svnt</name> + <referencedArtifact href="Messenger_Svnt.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Messenger_Exec</name> + <referencedArtifact href="Messenger_Exec.iad"/> + </primaryArtifact> + </monolithicImpl> + + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Messenger.ior</string> + </value> + </value> + </configProperty> + +</Deployment:ComponentImplementationDescription> + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd new file mode 100644 index 00000000000..ee624b9bce5 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentPackageDescription +xmlns:Deployment="http://www.omg.org/Deployment" +xmlns:xmi="http://www.omg.org/XMI" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Messenger Component</label> + <realizes href="Messenger.ccd"/> + <implementation> + <name>MessengerImpl</name> + <referencedImplementation href="Messenger.cid"/> + </implementation> + +</Deployment:ComponentPackageDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd new file mode 100644 index 00000000000..c048d99133d --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentInterfaceDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Assembly</label> + + <property> + <name>subject</name> + <type> + <kind>tk_string</kind> + </type> + </property> + + <!-- Default value for subject property, can be overridden. + CIAO does not process this (yet) + --> + <configProperty> + <name>subject</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Default Subject</string> + </value> + </value> + </configProperty> + +</Deployment:ComponentInterfaceDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid new file mode 100644 index 00000000000..bd0bf4e56ce --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentImplementationDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Assembly</label> + <implements href="MessengerAssembly.ccd"/> + <assemblyImpl> + <instance xmi:id="a_Messenger"> + <name>Messenger_Instance</name> + <package href="Messenger.cpd"/> + </instance> + <instance xmi:id="first_Receiver"> + <name>First_Receiver_Instance</name> + <package href="Receiver.cpd"/> + </instance> + <instance xmi:id="second_Receiver"> + <name>Second_Receiver_Instance</name> + <package href="Receiver.cpd"/> + </instance> + <instance xmi:id="a_Administrator"> + <name>Administrator_Instance</name> + <package href="Administrator.cpd"/> + </instance> + + <connection> + <name>Messenger_to_First_Receiver_Publish</name> + <internalEndpoint> + <portName>message_publisher</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>message_consumer</portName> + <instance xmi:idref="first_Receiver"/> + </internalEndpoint> + </connection> + <connection> + <name>Messenger_to_First_Receiver_History</name> + <internalEndpoint> + <portName>message_history</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>message_history</portName> + <instance xmi:idref="first_Receiver"/> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Second_Receiver_Publisher</name> + <internalEndpoint> + <portName>message_publisher</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>message_consumer</portName> + <instance xmi:idref="second_Receiver"/> + </internalEndpoint> + </connection> + <connection> + <name>Messenger_to_Second_Receiver_History</name> + <internalEndpoint> + <portName>message_history</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>message_history</portName> + <instance xmi:idref="second_Receiver"/> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Administrator_Control</name> + <internalEndpoint> + <portName>control</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>runnables</portName> + <instance xmi:idref="a_Administrator"/> + </internalEndpoint> + </connection> + <connection> + <name>Messenger_to_Administrator_Content</name> + <internalEndpoint> + <portName>content</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>content</portName> + <instance xmi:idref="a_Administrator"/> + </internalEndpoint> + </connection> + + <!-- + Not sure that externalName has to match. + Don't know if CIAO processes this yet. + --> + <externalProperty> + <name>Subject Mapping</name> + <externalName>subject</externalName> + <delegatesTo> + <propertyName>subject</propertyName> + <instance xmi:idref="a_Messenger"/> + </delegatesTo> + </externalProperty> + + </assemblyImpl> +</Deployment:ComponentImplementationDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd new file mode 100644 index 00000000000..a719ad571c9 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentPackageDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Assembly Package</label> + <realizes href="MessengerAssembly.ccd"/> + <implementation> + <name>Messenger Application</name> + <referencedImplementation href="MessengerAssembly.cid"/> + </implementation> +</Deployment:ComponentPackageDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad new file mode 100644 index 00000000000..0b8cef2092c --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Executor Artifact</label> + <location>Messenger_exec</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Messenger_Stub</name> + <referencedArtifact href="Messenger_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createMessengerHome_Impl</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Messenger's executor library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad new file mode 100644 index 00000000000..50447209f50 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Stub Artifact</label> + <location>Messenger_stub</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Messenger's stub library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad new file mode 100644 index 00000000000..29b83d63e53 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Servant Artifact</label> + <location>Messenger_svnt</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Messenger_Stub</name> + <referencedArtifact href="Messenger_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createMessengerHome_Servant</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Messenger's servant library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a new file mode 100644 index 00000000000..ac466837dc4 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a @@ -0,0 +1,5 @@ +Deployment has changed in CIAO 0.5a (part of TAO 1.5a), now we use the plan +launcher, which reads a single XML file called a flattened deployment plan. +In our example, that file is Application-flattened.cdp. All the other XML +files in this directory are here for reference and to correspond to the 1.4a +TAO Developer's Guide, but they are not actually used. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd new file mode 100644 index 00000000000..3094ae368dc --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentInterfaceDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Receiver Component</label> + <specificType>IDL:Receiver:1.0</specificType> + <supportedType>IDL:Receiver:1.0</supportedType> + <idlFile>Receiver.idl</idlFile> + + <port> + <name>message_consumer</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>false</optional> + <provider>true</provider> + <supportedType>IDL:Message:1.0</supportedType> + <specificType>IDL:Message:1.0</specificType> + <kind>EventConsumer</kind> + </port> + + <port> + <name>message_history</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>true</optional> + <provider>false</provider> + <supportedType>IDL:History:1.0</supportedType> + <specificType>IDL:History:1.0</specificType> + <kind>SimplexReceptacle</kind> + </port> + + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This CCD describes the Receiver's interface</string> + </value> + </value> + </infoProperty> + +</Deployment:ComponentInterfaceDescription> + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid new file mode 100644 index 00000000000..c5c85d648da --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentImplementationDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Receiver Implementation</label> + <implements href="Receiver.ccd"/> + <monolithicImpl> + <primaryArtifact> + <name>Receiver_Stub</name> + <referencedArtifact href="Receiver_Stub.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Receiver_Svnt</name> + <referencedArtifact href="Receiver_Svnt.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Receiver_Exec</name> + <referencedArtifact href="Receiver_Exec.iad"/> + </primaryArtifact> + </monolithicImpl> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Receiver.ior</string> + </value> + </value> + </configProperty> +</Deployment:ComponentImplementationDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd new file mode 100644 index 00000000000..8b8ff890fa2 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentPackageDescription xmlns:Deployment="http://www.omg.org/Deployment" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Receiver Component</label> + <realizes href="Receiver.ccd"/> + <implementation> + <name>ReceiverImpl</name> + <referencedImplementation href="Receiver.cid"/> + </implementation> + +</Deployment:ComponentPackageDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad new file mode 100644 index 00000000000..adcee103c94 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Receiver Executor Artifact</label> + <location>Receiver_exec</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Receiver_Stub</name> + <referencedArtifact href="Receiver_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createReceiverHome_Impl</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Receiver's executor library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad new file mode 100644 index 00000000000..63d7e37cc8e --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Receiver Stub Artifact</label> + <location>Receiver_stub</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Messenger_Stub</name> + <referencedArtifact href="Messenger_Stub.iad"/> + </dependsOn> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Receiver's stub library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad new file mode 100644 index 00000000000..8e3bf58d965 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Receiver Servant Artifact</label> + <location>Receiver_svnt</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Receiver_Stub</name> + <referencedArtifact href="Receiver_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createReceiverHome_Servant</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Receiver's servant library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd new file mode 100644 index 00000000000..f4adac91934 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd @@ -0,0 +1,35 @@ +<?xml version="1.0" ?> +<xsd:schema targetNamespace="http://www.omg.org/XMI" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation='http://www.w3.org/2001/XMLSchema XMLSchema.xsd'> + <xsd:attribute name="id" type="xsd:ID" /> + <xsd:attributeGroup name="IdentityAttribs"> + <xsd:attribute form="qualified" name="label" type="xsd:string" use="optional" /> + <xsd:attribute form="qualified" name="uuid" type="xsd:string" use="optional" /> + </xsd:attributeGroup> + <xsd:attributeGroup name="LinkAttribs"> + <xsd:attribute name="href" type="xsd:string" use="optional" /> + <xsd:attribute form="qualified" name="idref" type="xsd:IDREF" use="optional" /> + </xsd:attributeGroup> + <xsd:attributeGroup name="ObjectAttribs"> + <xsd:attributeGroup ref="xmi:IdentityAttribs" /> + <xsd:attributeGroup ref="xmi:LinkAttribs" /> + <xsd:attribute fixed="2.0" form="qualified" name="version" type="xsd:string" use="optional" /> + <xsd:attribute form="qualified" name="type" type="xsd:QName" use="optional" /> + </xsd:attributeGroup> + <xsd:complexType name="Extension"> + <xsd:choice maxOccurs="unbounded" minOccurs="0"> + <xsd:any processContents="lax" /> + </xsd:choice> + <xsd:attribute ref="xmi:id" /> + <xsd:attributeGroup ref="xmi:ObjectAttribs" /> + <xsd:attribute name="extender" type="xsd:string" use="optional" /> + <xsd:attribute name="extenderID" type="xsd:string" use="optional" /> + </xsd:complexType> + <xsd:element name="Extension" type="xmi:Extension" /> + <xsd:complexType name="Any"> + <xsd:choice maxOccurs="unbounded" minOccurs="0"> + <xsd:any processContents="skip" /> + </xsd:choice> + <xsd:anyAttribute processContents="skip" /> + </xsd:complexType> +</xsd:schema> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat new file mode 100644 index 00000000000..f5815bb1f60 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat @@ -0,0 +1,7 @@ +1 +3 +1 +4 +Changing the publication text! +2 +5 diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd new file mode 100644 index 00000000000..f481b6bd789 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:TopLevelPackageDescription +xmlns:Deployment="http://www.omg.org/Deployment" +xmlns:xmi="http://www.omg.org/XMI" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <package href="Application.pcd"/> +</Deployment:TopLevelPackageDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl new file mode 100755 index 00000000000..77b1711b3be --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl @@ -0,0 +1,117 @@ +# $Id$ + +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +use Env (ACE_ROOT); +use lib "$ACE_ROOT/bin"; +use PerlACE::Run_Test; + +$emior= PerlACE::LocalFile ("em.ior"); +unlink $emior; +$plior= PerlACE::LocalFile ("pl.ior"); +unlink $plior; + +if (defined $ENV{'CIAO_ROOT'}) { + $CIAO_ROOT = $ENV{'CIAO_ROOT'}; +} +else { + $CIAO_ROOT = "$ACE_ROOT/TAO/CIAO"; +} + +if (defined $ENV{'DANCE_ROOT'}) { + $DANCE_ROOT = $ENV{'DANCE_ROOT'}; +} +else { + $DANCE_ROOT = "$ACE_ROOT/TAO/CIAO/DAnCE"; +} + + +$NA = new PerlACE::Process ("$CIAO_ROOT/bin/ciao_componentserver"); +$NA_cmd = $NA->Executable (); + +$NA1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:11000 -s $NA_cmd -n Administrator_Node"); + +$NA2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:22000 -s $NA_cmd -n First_Receiver_Node"); + +$NA3 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:33000 -s $NA_cmd -n Second_Receiver_Node"); + +$NA4 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:44000 -s $NA_cmd -n Messenger_Node"); + +# Each Node Manager lauches a Node Application process. +open(STDIN, "<admin.dat"); +$Ret1 = $NA1->Spawn (); +if($Ret1 == -1) { + print STDERR "ERROR: Administrator returned <$Ret1>\n" +} + +$Ret2 = $NA2->Spawn (); +if($Ret2 == -1) { + print STDERR "ERROR: Receiver 1 returned <$Ret2>\n" +} + +$Ret3 = $NA3->Spawn (); +if($Ret3 == -1) { + print STDERR "ERROR: Receiver 2 returned <$Ret3>\n" +} + +$Ret4 = $NA4->Spawn (); +if($Ret4 == -1) { + print STDERR "ERROR: Messenger returned <$Ret4>\n" +} + +#Start an Execution Manager +$EM = new PerlACE::Process ("$DANCE_ROOT/bin/dance_execution_manager", "-e$emior --node-map ApplicationNodeMap.dat"); + +$Ret5 = $EM->Spawn (); +if($Ret5 == -1) { + print STDERR "ERROR: Execution Manager returned <$Ret5>\n" +} + +if (PerlACE::waitforfile_timed ($emior, 5) == -1) { + print STDERR "ERROR: cannot find file <$emior>\n"; + $EM->Kill(); + unlink $emior; + exit 1; +} + +sleep(5); +#Start the plan launcher +$EX = new PerlACE::Process ("$DANCE_ROOT/bin/dance_plan_launcher", + "-x Application-flattened_Unhomed.cdp -k file://$emior "); + +#Stop the plan launcher +$EX2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_plan_launcher", + "-k file://$emior -x Application-flattened_Unhomed.cdp"); + +$Ret6 = $EX->Spawn (); +if($Ret6 == -1) { + print STDERR "ERROR: plan launcher returned <$Ret6>\n" +} + +sleep(10); + +$Ret7 = $EX2->Spawn (); +if($Ret7 == -1) { + print STDERR "ERROR: plan launcher (shutdown) returned <$Ret7>\n" +} + +sleep(5); + +$NA1->Kill(); +$NA2->Kill(); +$NA3->Kill(); +$NA4->Kill(); +$EX->Kill(); +$EX2->Kill(); +$EM->Kill(); + +unlink $emior; +unlink $plior; + +exit 0; diff --git a/modules/CIAO/examples/DevGuideExamples/readme.txt b/modules/CIAO/examples/DevGuideExamples/readme.txt new file mode 100644 index 00000000000..f6efa4d084f --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/readme.txt @@ -0,0 +1,12 @@ +"These examples were developed by and are included in this +distribution with the permission of Object Computing, Inc. (OCI) +for the purpose of illustrating the usage of certain features of +The ACE ORB (TAO) as described in OCI's TAO Developer's Guide. +They are provided as is with no warranty, expressed or implied. +Though the examples are believed to illustrate correct usage of +TAO, OCI does not actively maintain them in this distribution and +does not guarantee their accuracy or their suitability for any +particular use. OCI does provide additional distributions of TAO +and provides commercial support for TAO. Visit +http://www.theaceorb.com or contact sales@ociweb.com for more +information on OCI's business model with respect to TAO."
\ No newline at end of file |