diff options
author | mxiong <mxiong@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-05-25 07:58:44 +0000 |
---|---|---|
committer | mxiong <mxiong@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-05-25 07:58:44 +0000 |
commit | dde07b1df377bdbb64bfc6bf260e375f68fc82d9 (patch) | |
tree | d87d479f9b2c66af90ca125e35a89293d1445e29 | |
parent | a6a54be2b285dc10d447ccd9976de76a523a9b45 (diff) | |
download | ATCD-dde07b1df377bdbb64bfc6bf260e375f68fc82d9.tar.gz |
added the Quoter example
53 files changed, 4515 insertions, 0 deletions
diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.cidl b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.cidl new file mode 100644 index 00000000000..e34ee017920 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.cidl @@ -0,0 +1,22 @@ +//$Id$ + +//Stock.cidl,v 1.0 +/** + * @file Stock.cidl + * + * @author ming xiong <xiongm@isis.vanderbilt.edu> + */ + +#ifndef STOCK_CIDL +#define STOCK_CIDL + +#include "Broker.idl" + +composition session StockBroker_Impl { + home executor StockBrokerHome_Exec { + implements Stock::StockBrokerHome; + manages StockBroker_Exec; + } +}; + +#endif /* STOCK_CIDL */ diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.cpp b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.cpp new file mode 100644 index 00000000000..9f8abd6e8c2 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.cpp @@ -0,0 +1,123 @@ +//$Id$ +/* + * @file broker.h + * + * @author Ming Xiong <xiongm@isis.vanderbilt.edu> + */ + +#include "BrokerC.h" +#include "ace/streams.h" +#include "ace/Get_Opt.h" + +const char *broker_ior = "file://Broker.ior"; +const char *subscribe_name = 0; +const char *unsubscribe_name = 0; + + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:s:u:"); + int c; + + while ((c = get_opts ()) != -1) + { + switch (c) + { + case 'k': + broker_ior = get_opts.opt_arg (); + break; + + case 's': + subscribe_name = get_opts.opt_arg (); + break; + + case 'u': + unsubscribe_name = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s\n" + "-k <Broker IOR> (default is file:\\broker.ior) \n" + "-s <stock name you wish to subscribe>\n" + "-u <stock name you wish to unsubscribe>\n" + "\n", + argv [0]), + -1); + } + } + + return 0; +} + +int main (int argc, char* argv[]) +{ + ACE_TRY_NEW_ENV + { + // initialize the ORB + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv,"" + ACE_ENV_ARG_PARAMETER); + + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return -1; + + // create the factory object reference of StockBrokerHome + CORBA::Object_var broker_obj = + orb->string_to_object (broker_ior + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // downcast the object reference to the appropriate type + Stock::StockBroker_var broker = + Stock::StockBroker::_narrow (broker_obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (broker.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to acquire 'Broker' objref\n"), + -1); + } + + + if (subscribe_name != 0) + { + broker->stock_subscribe (subscribe_name + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "Subscribe successful!\n")); + } + + if (unsubscribe_name != 0) + { + broker->stock_unsubscribe (unsubscribe_name + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "Unsubscribe successful!\n")); + } + + // Finally destroy the ORB + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Who is the culprit \n"); + ACE_ERROR_RETURN ((LM_ERROR, + "Uncaught CORBA exception\n"), + 1); + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.idl b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.idl new file mode 100644 index 00000000000..dbe9a04364a --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.idl @@ -0,0 +1,35 @@ +//$Id$ + +#include "../Stock_Base/Stock_Base.idl" + +module Stock +{ + interface StockSubscriber { + /// subscribe to an interested stock + void stock_subscribe (in string stock_name) + raises (Invalid_Stock); + /// unsubscribe to an stock + void stock_unsubscribe (in string stock_name) + raises (Invalid_Stock); + }; + + /** + * @class StockBroker + * + * @brief component + */ + component StockBroker supports StockSubscriber + { + consumes StockName notify_in; + uses StockQuoter read_quoter; + }; + + /** + * @class StockBrokerHome + * + * @brief home for StockBroker component + */ + home StockBrokerHome manages StockBroker + { + }; +}; diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.mpc b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.mpc new file mode 100644 index 00000000000..724277307ed --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.mpc @@ -0,0 +1,75 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Stock_Base Broker" + +project(Stock_Base_Broker_stub): ciao_client_dnc { + after += Stock_Base_stub + sharedname = Broker_stub + idlflags += -Wb,stub_export_macro=BROKER_STUB_Export -Wb,stub_export_include=Broker_stub_export.h -Wb,skel_export_macro=BROKER_SVNT_Export -Wb,skel_export_include=Broker_svnt_export.h + dynamicflags = BROKER_STUB_BUILD_DLL + libs += Stock_Base_stub + + IDL_Files { + Broker.idl + } + + Source_Files { + BrokerC.cpp + } +} + +project(Stock_Base_Broker_svnt) : ciao_servant_dnc { + after += Stock_Base_svnt Stock_Base_Broker_stub + sharedname = Broker_svnt + libs += Broker_stub Stock_Base_stub Stock_Base_svnt + + idlflags += -Wb,export_macro=BROKER_SVNT_Export -Wb,export_include=Broker_svnt_export.h + dynamicflags = BROKER_SVNT_BUILD_DLL + + CIDL_Files { + Broker.cidl + } + + IDL_Files { + BrokerE.idl + } + + Source_Files { + BrokerEC.cpp + BrokerS.cpp + Broker_svnt.cpp + } +} + + +project(Stock_Base_Broker_exec) : ciao_component_dnc { + after += Stock_Base_Broker_svnt + sharedname = Broker_exec + libs += Broker_stub Broker_svnt Stock_Base_stub Stock_Base_svnt + + idlflags += -Wb,export_macro=BROKER_EXEC_Export -Wb,export_include=Broker_exec_export.h + dynamicflags = BROKER_EXEC_BUILD_DLL + + IDL_Files { + + } + + Source_Files { + + Broker_exec.cpp + } +} + + +project (Stock_Broker) : ciao_client_dnc, valuetype{ + exename = Broker + after += Stock_Base_Broker_stub + libs += Broker_stub Stock_Base_stub + + IDL_Files { + } + + Source_Files { + Broker.cpp + } +} + diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec.cpp b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec.cpp new file mode 100644 index 00000000000..c79b5ff8df0 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec.cpp @@ -0,0 +1,216 @@ +//$Id$ +/* + * @file Broker_exec.cpp + * + * @author Ming Xiong <xiongm@isis.vanderbilt.edu> + */ + +#include "Broker_exec.h" +#include "ciao/CIAO_common.h" + + +namespace StockBroker_Impl +{ + //================================================================== + // Component Executor Implementation Class: StockBroker_exec_i + //================================================================== + + StockBroker_exec_i::StockBroker_exec_i (void) + { + } + + StockBroker_exec_i::~StockBroker_exec_i (void) + { + } + + + // Supported or inherited operations. + + void + StockBroker_exec_i::stock_subscribe ( + const char * stock_name + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException, + Stock::Invalid_Stock)) + { + if ((strcmp (stock_name, "MSFT") == 0) || (strcmp (stock_name, "IBM") == 0)) + { + std::set<std::string>::iterator iter = this->subscribed_stock_list_.find (stock_name); + if (iter == this->subscribed_stock_list_.end ()) + { + this->subscribed_stock_list_.insert (stock_name); + } + } + else + { + throw Stock::Invalid_Stock (); + } + + } + + void + StockBroker_exec_i::stock_unsubscribe ( + const char * stock_name + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException, + Stock::Invalid_Stock)) + { + if ((strcmp (stock_name, "MSFT") == 0) || (strcmp (stock_name, "IBM") == 0)) + { + std::set<std::string>::iterator iter = this->subscribed_stock_list_.find (stock_name); + if (iter != this->subscribed_stock_list_.end ()) + { + this->subscribed_stock_list_.erase (iter); + } + + } + else + { + throw Stock::Invalid_Stock (); + } + + } + + + void + StockBroker_exec_i::push_notify_in (Stock::StockName *ev + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + + ACE_DEBUG ((LM_INFO, + "Broker - Got message from Distributor\n")); + + CORBA::String_var stock_name = CORBA::string_dup (ev->name ()); + + // Retrieve stock information if the stock name is in the subscribed_stock_list + if (this->subscribed_stock_list_.find (stock_name.in ()) != this->subscribed_stock_list_.end ()) + { + Stock::StockQuoter_var quoter_obj = this->context_->get_connection_read_quoter (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + if (CORBA::is_nil (quoter_obj.in ())) + ACE_THROW (CORBA::BAD_PARAM ()); + + Stock::StockInfo_var info = quoter_obj->get_stock_info (stock_name.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + ACE_DEBUG ((LM_DEBUG, + "Quoter - Current value of %s is %d\n", + stock_name.in (), + info->last)); + } + } + + // Operations from Components::SessionComponent + + void + StockBroker_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + this->context_ = + CIAO_GLUE_Stock::StockBroker_Context::_narrow (ctx + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + if (0 == this->context_) + { + ACE_THROW (CORBA::INTERNAL ()); + } + } + + void + StockBroker_exec_i::ciao_preactivate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + } + + void + StockBroker_exec_i::ciao_postactivate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + } + + void + StockBroker_exec_i::ccm_activate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + } + + void + StockBroker_exec_i::ccm_passivate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + } + + void + StockBroker_exec_i::ccm_remove ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + } + + //================================================================== + // Home Executor Implementation Class: StockBrokerHome_exec_i + //================================================================== + + StockBrokerHome_exec_i::StockBrokerHome_exec_i (void) + { + } + + StockBrokerHome_exec_i::~StockBrokerHome_exec_i (void) + { + } + + ::Components::EnterpriseComponent_ptr + StockBrokerHome_exec_i::create ( + ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + StockBroker_exec_i, + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (::Components::EnterpriseComponent::_nil ()); + + return retval; + } + + extern "C" BROKER_EXEC_Export ::Components::HomeExecutorBase_ptr + createStockBrokerHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + StockBrokerHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} + diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec.h b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec.h new file mode 100644 index 00000000000..7d80d32033d --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec.h @@ -0,0 +1,151 @@ +//$Id$ +/* + * @file Broker_exec.h + * + * @author Ming Xiong <xiongm@isis.vanderbilt.edu> + */ + + +#ifndef CIAO_BROKER_EXEC_H +#define CIAO_BROKER_EXEC_H + +#include /**/ "ace/pre.h" + +#include "Broker_svnt.h" +#include "BrokerEC.h" +#include "Broker_exec_export.h" + +#include <set> +#include <string> + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/LocalObject.h" + +namespace StockBroker_Impl +{ + + /** + * @class StockBroker_exec_i + * + * @brief Executor implementation + * + * This class implements Stock::StockBroker component + */ + class BROKER_EXEC_Export StockBroker_exec_i + : public virtual StockBroker_Exec, + public virtual TAO_Local_RefCounted_Object + { + public: + StockBroker_exec_i (void); + virtual ~StockBroker_exec_i (void); + + + // Supported or inherited operations. + + virtual void + stock_subscribe ( + const char * stock_name + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Stock::Invalid_Stock)); + + virtual void + stock_unsubscribe ( + const char * stock_name + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Stock::Invalid_Stock)); + + virtual void + push_notify_in ( + ::Stock::StockName *ev + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Operations from Components::SessionComponent + + virtual void + set_session_context ( + ::Components::SessionContext_ptr ctx + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ciao_preactivate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ciao_postactivate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ccm_activate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ccm_passivate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ccm_remove ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + protected: + CIAO_GLUE_Stock::StockBroker_Context *context_; + + private: + std::set<std::string> subscribed_stock_list_; + }; + + + /** + * @class StockBrokerHome_exec_i + * + * @brief Executor implementation + * + * This class implements Stock::StockBrokerHome component + */ + class BROKER_EXEC_Export StockBrokerHome_exec_i + : public virtual StockBrokerHome_Exec, + public virtual TAO_Local_RefCounted_Object + { + public: + StockBrokerHome_exec_i (void); + virtual ~StockBrokerHome_exec_i (void); + + virtual ::Components::EnterpriseComponent_ptr + create ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + }; + + extern "C" BROKER_EXEC_Export ::Components::HomeExecutorBase_ptr + createStockBrokerHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_BROKER_EXEC_H */ + diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec_export.h b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec_export.h new file mode 100644 index 00000000000..cb7229d833e --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl BROKER_EXEC +// ------------------------------ +#ifndef BROKER_EXEC_EXPORT_H +#define BROKER_EXEC_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (BROKER_EXEC_HAS_DLL) +# define BROKER_EXEC_HAS_DLL 1 +#endif /* ! BROKER_EXEC_HAS_DLL */ + +#if defined (BROKER_EXEC_HAS_DLL) && (BROKER_EXEC_HAS_DLL == 1) +# if defined (BROKER_EXEC_BUILD_DLL) +# define BROKER_EXEC_Export ACE_Proper_Export_Flag +# define BROKER_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define BROKER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* BROKER_EXEC_BUILD_DLL */ +# define BROKER_EXEC_Export ACE_Proper_Import_Flag +# define BROKER_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define BROKER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* BROKER_EXEC_BUILD_DLL */ +#else /* BROKER_EXEC_HAS_DLL == 1 */ +# define BROKER_EXEC_Export +# define BROKER_EXEC_SINGLETON_DECLARATION(T) +# define BROKER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* BROKER_EXEC_HAS_DLL == 1 */ + +// Set BROKER_EXEC_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (BROKER_EXEC_NTRACE) +# if (ACE_NTRACE == 1) +# define BROKER_EXEC_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define BROKER_EXEC_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !BROKER_EXEC_NTRACE */ + +#if (BROKER_EXEC_NTRACE == 1) +# define BROKER_EXEC_TRACE(X) +#else /* (BROKER_EXEC_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define BROKER_EXEC_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (BROKER_EXEC_NTRACE == 1) */ + +#endif /* BROKER_EXEC_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_stub_export.h b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_stub_export.h new file mode 100644 index 00000000000..1d7c2c5fc2b --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_stub_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl BROKER_STUB +// ------------------------------ +#ifndef BROKER_STUB_EXPORT_H +#define BROKER_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (BROKER_STUB_HAS_DLL) +# define BROKER_STUB_HAS_DLL 1 +#endif /* ! BROKER_STUB_HAS_DLL */ + +#if defined (BROKER_STUB_HAS_DLL) && (BROKER_STUB_HAS_DLL == 1) +# if defined (BROKER_STUB_BUILD_DLL) +# define BROKER_STUB_Export ACE_Proper_Export_Flag +# define BROKER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define BROKER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* BROKER_STUB_BUILD_DLL */ +# define BROKER_STUB_Export ACE_Proper_Import_Flag +# define BROKER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define BROKER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* BROKER_STUB_BUILD_DLL */ +#else /* BROKER_STUB_HAS_DLL == 1 */ +# define BROKER_STUB_Export +# define BROKER_STUB_SINGLETON_DECLARATION(T) +# define BROKER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* BROKER_STUB_HAS_DLL == 1 */ + +// Set BROKER_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (BROKER_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define BROKER_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define BROKER_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !BROKER_STUB_NTRACE */ + +#if (BROKER_STUB_NTRACE == 1) +# define BROKER_STUB_TRACE(X) +#else /* (BROKER_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define BROKER_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (BROKER_STUB_NTRACE == 1) */ + +#endif /* BROKER_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_svnt_export.h b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_svnt_export.h new file mode 100644 index 00000000000..18f606e5539 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_svnt_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl BROKER_SVNT +// ------------------------------ +#ifndef BROKER_SVNT_EXPORT_H +#define BROKER_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (BROKER_SVNT_HAS_DLL) +# define BROKER_SVNT_HAS_DLL 1 +#endif /* ! BROKER_SVNT_HAS_DLL */ + +#if defined (BROKER_SVNT_HAS_DLL) && (BROKER_SVNT_HAS_DLL == 1) +# if defined (BROKER_SVNT_BUILD_DLL) +# define BROKER_SVNT_Export ACE_Proper_Export_Flag +# define BROKER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define BROKER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* BROKER_SVNT_BUILD_DLL */ +# define BROKER_SVNT_Export ACE_Proper_Import_Flag +# define BROKER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define BROKER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* BROKER_SVNT_BUILD_DLL */ +#else /* BROKER_SVNT_HAS_DLL == 1 */ +# define BROKER_SVNT_Export +# define BROKER_SVNT_SINGLETON_DECLARATION(T) +# define BROKER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* BROKER_SVNT_HAS_DLL == 1 */ + +// Set BROKER_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (BROKER_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define BROKER_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define BROKER_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !BROKER_SVNT_NTRACE */ + +#if (BROKER_SVNT_NTRACE == 1) +# define BROKER_SVNT_TRACE(X) +#else /* (BROKER_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define BROKER_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (BROKER_SVNT_NTRACE == 1) */ + +#endif /* BROKER_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.cidl b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.cidl new file mode 100644 index 00000000000..fe64c844339 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.cidl @@ -0,0 +1,21 @@ +//$Id$ +//Distributor.cidl,v 1.0 +/** + * @file Distributor.cidl + * + * @author ming xiong <xiongm@isis.vanderbilt.edu> + */ + +#ifndef DISTRIBUTOR_CIDL +#define DISTRIBUTOR_CIDL + +#include "Distributor.idl" + +composition session StockDistributor_Impl { + home executor StockDistributorHome_Exec { + implements Stock::StockDistributorHome; + manages StockDistributor_Exec; + } +}; + +#endif /* DISTRIBUTOR_CIDL */ diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.cpp b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.cpp new file mode 100644 index 00000000000..91ac59406da --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.cpp @@ -0,0 +1,126 @@ +//$Id$ +/* + * @file Distributor.cpp + * + * @author Ming Xiong <xiongm@isis.vanderbilt.edu> + */ + + +#include "DistributorC.h" +#include "ace/streams.h" +#include "ace/Get_Opt.h" + +const char *distributor_ior = "file://Distributor.ior"; +int rate = 2; +int turn_on = 1; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:r:of"); + int c; + + while ((c = get_opts ()) != -1) + { + switch (c) + { + case 'k': + distributor_ior = get_opts.opt_arg (); + break; + + case 'o': + turn_on = 1; + break; + + case 'f': + turn_on = 0; + break; + + case 'r': + rate = atoi (get_opts.opt_arg ()); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s\n" + "-o (Start the distribution service)\n" + "-f (Stop the distribution service)\n" + "-k <Distributor IOR> (default is file:\\distributor.ior) \n" + "-r <broadcast frequency in Hertz> (default is 2)\n" + "\n", + argv [0]), + -1); + } + } + + return 0; +} + + +int main (int argc, char* argv[]) +{ + ACE_TRY_NEW_ENV + { + // initialize the ORB + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv,"" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return -1; + + // create the factory object reference, + CORBA::Object_var distributor_obj = + orb->string_to_object (distributor_ior + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // downcast the object reference to the appropriate type + Stock::StockDistributor_var distributor = + Stock::StockDistributor::_narrow (distributor_obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (distributor.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to acquire 'Distributor' objref\n"), + -1); + } + + if (turn_on) + { + distributor->rate (rate + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "Start up the Distribution service\n")); + + distributor->start (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + else + { + ACE_DEBUG ((LM_DEBUG, "Stop the Distribution service\n")); + + distributor->stop (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Who is the culprit \n"); + ACE_ERROR_RETURN ((LM_ERROR, + "Uncaught CORBA exception\n"), + 1); + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.idl b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.idl new file mode 100644 index 00000000000..10f2b477231 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.idl @@ -0,0 +1,42 @@ +//$Id$ + +#include "../Stock_Base/Stock_Base.idl" + +module Stock +{ + /** + * @class Trigger + * + * @brief supported interface + */ + interface Trigger { + /// Start the real-time monitoring service + void start (); + /// Stop the real-time monitoring service + void stop (); + }; + + + /** + * @class StockDistributor + * + * @brief component + */ + component StockDistributor supports Trigger + { + publishes StockName notify_out; + provides StockQuoter push_quoter; + attribute long rate; + }; + + + /** + * @class StockDistributorHome + * + * @brief home for StockDistributor component + */ + home StockDistributorHome manages StockDistributor + { + }; + +}; diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.mpc b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.mpc new file mode 100644 index 00000000000..014838a3b5a --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.mpc @@ -0,0 +1,76 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Stock_Base Distributor" + +project(Stock_Base_Distributor_stub): ciao_client_dnc { + after += Stock_Base_stub + sharedname = Distributor_stub + idlflags += -Wb,stub_export_macro=DISTRIBUTOR_STUB_Export -Wb,stub_export_include=Distributor_stub_export.h -Wb,skel_export_macro=DISTRIBUTOR_SVNT_Export -Wb,skel_export_include=Distributor_svnt_export.h + dynamicflags = DISTRIBUTOR_STUB_BUILD_DLL + + libs += Stock_Base_stub + + IDL_Files { + Distributor.idl + } + + Source_Files { + DistributorC.cpp + } +} + +project(Stock_Base_Distributor_svnt) : ciao_servant_dnc { + after += Stock_Base_svnt Stock_Base_Distributor_stub + sharedname = Distributor_svnt + libs += Distributor_stub Stock_Base_stub Stock_Base_svnt + + idlflags += -Wb,export_macro=DISTRIBUTOR_SVNT_Export -Wb,export_include=Distributor_svnt_export.h + dynamicflags = DISTRIBUTOR_SVNT_BUILD_DLL + + CIDL_Files { + Distributor.cidl + } + + IDL_Files { + DistributorE.idl + } + + Source_Files { + DistributorEC.cpp + DistributorS.cpp + Distributor_svnt.cpp + } +} + + +project(Stock_Base_Distributor_exec) : ciao_component_dnc { + after += Stock_Base_Distributor_svnt + sharedname = Distributor_exec + libs += Distributor_stub Distributor_svnt Stock_Base_stub Stock_Base_svnt + + idlflags += -Wb,export_macro=DISTRIBUTOR_EXEC_Export -Wb,export_include=Distributor_exec_export.h + dynamicflags = DISTRIBUTOR_EXEC_BUILD_DLL + + IDL_Files { + + } + + Source_Files { + + Distributor_exec.cpp + } +} + + +project (Stock_Distributor) : ciao_client_dnc, valuetype{ + exename = Distributor + after += Stock_Base_Distributor_stub + libs += Distributor_stub Stock_Base_stub + + IDL_Files { + } + + Source_Files { + Distributor.cpp + } +} + diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp new file mode 100644 index 00000000000..f95f1c57b36 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp @@ -0,0 +1,360 @@ +//$Id$ + +//Distributor_exec.cpp,v 1.1 +/* + * @file Distributor_exec.cpp + * + * @author Ming Xiong <xiongm@isis.vanderbilt.edu> + */ + +#include "Distributor_exec.h" +#include "ciao/CIAO_common.h" +#include "ace/Reactor.h" + + +namespace StockDistributor_Impl +{ + + // initialze the stock values + + CORBA::Long + StockDistributor_exec_i::ibm_ = 100; + + CORBA::Long + StockDistributor_exec_i::msft_ = 101; + + //================================================================== + // C L A S S: pulse_Generator + //================================================================== + + pulse_Generator::pulse_Generator (StockDistributor_exec_i *callback) + : active_ (0), + pulse_callback_ (callback) + { + // initialize the reactor + this->reactor (ACE_Reactor::instance ()); + } + + pulse_Generator::~pulse_Generator () + { + } + + int + pulse_Generator::open () + { + return this->activate (); // convert the task into a active object that runs in separate thread + } + + int + pulse_Generator::close () + { + this->reactor ()->end_reactor_event_loop (); + + return this->wait (); // wait for all threads in the task to exit before it returns + } + + int + pulse_Generator::start (CORBA::Long hertz) + { + // return if not valid + if (hertz == 0 || this->active_ != 0) + return -1; + + // calculate the interval time + long usec = 1000000 / hertz; + + if (this->reactor ()->schedule_timer (this, + 0, + ACE_Time_Value (0, usec), + ACE_Time_Value (0, usec)) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to setup Timer\n"), + -1); + + } + + this->active_ = 1; + return 0; + } + + int + pulse_Generator::stop (void) + { + // return if not valid. + if (this->active_ == 0) + return -1; + // cancle the timer + this->reactor ()->cancel_timer (this); + this->active_ = 0; + return 0; + } + + int + pulse_Generator::active (void) + { + return this->active_; + } + + int + pulse_Generator::handle_close (ACE_HANDLE handle,ACE_Reactor_Mask close_mask) + { + return 0; + } + + int + pulse_Generator::handle_timeout (const ACE_Time_Value &, + const void *) + { + // Notify the subscribers + this->pulse_callback_->push_notify_out (); + return 0; + } + + int + pulse_Generator::svc (void) + { + // define the owner of the reactor thread + this->reactor ()->owner (ACE_OS::thr_self ()); + + // run event loop to wait for event, and then dispatch them to corresponding handlers + this->reactor ()->run_reactor_event_loop (); + + return 0; + } + + + + //================================================================== + // Facet Executor Implementation Class: StockQuoter_exec_i + //================================================================== + + ::Stock::StockInfo * + StockQuoter_exec_i::get_stock_info (const char *stock_name + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Stock::Invalid_Stock)) + { + if (strcmp (stock_name, "MSFT") == 0) + { + Stock::StockInfo_var info = new Stock::StockInfo; + info->name = CORBA::string_dup ("MSFT"); + info->high = 10000; + info->low = 0; + info->last = this->distributor_.msft_; // retrieve the current stock value + return info._retn (); + } + else if (strcmp (stock_name, "IBM") == 0) + { + Stock::StockInfo_var info = new Stock::StockInfo; + info->name = CORBA::string_dup ("IBM"); + info->high = 10000; + info->low = 0; + info->last = this->distributor_.ibm_; // retrieve the current stock value + return info._retn (); + } + else + { + ACE_THROW_RETURN (Stock::Invalid_Stock (), 0); + } + } + + //================================================================== + // Component Executor Implementation Class: StockDistributor_exec_i + //================================================================== + + StockDistributor_exec_i::StockDistributor_exec_i (void) + :rate_ (0), pulser_ (this) + { + } + + StockDistributor_exec_i::~StockDistributor_exec_i (void) + { + } + + // Supported or inherited operations. + + void + StockDistributor_exec_i::start ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + if (this->rate_ == 0 || this->pulser_.active()) + ACE_THROW (CORBA::BAD_PARAM ()); + + this->pulser_.start (this->rate_); + } + + void + StockDistributor_exec_i::stop ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + if (! this->pulser_.active ()) + ACE_THROW (CORBA::BAD_INV_ORDER ()); + + this->pulser_.stop (); + } + + // Attribute operations. + + ::CORBA::Long + StockDistributor_exec_i::rate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + return this->rate_; + } + + void + StockDistributor_exec_i::rate ( + ::CORBA::Long rate + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + this->rate_ = rate; + } + + // Port operations. + + ::Stock::CCM_StockQuoter_ptr + StockDistributor_exec_i::get_push_quoter (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + return new StockQuoter_exec_i (*this); + } + + void + StockDistributor_exec_i::push_notify_out () + ACE_THROW_SPEC (( + CORBA::SystemException + )) + { + this->msft_++; + this->ibm_++; + + Stock::StockName_var ev_msft = new OBV_Stock::StockName; + ev_msft->name (CORBA::string_dup ("MSFT")); + this->context_->push_notify_out (ev_msft.in ()); + + Stock::StockName_var ev_ibm = new OBV_Stock::StockName; + ev_ibm->name (CORBA::string_dup ("IBM")); + this->context_->push_notify_out (ev_ibm.in ()); + } + + // Operations from Components::SessionComponent + + void + StockDistributor_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + this->context_ = + CIAO_GLUE_Stock::StockDistributor_Context::_narrow (ctx + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + if (this->context_ == 0) + { + ACE_THROW (CORBA::INTERNAL ()); + } + } + + void + StockDistributor_exec_i::ciao_preactivate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + } + + void + StockDistributor_exec_i::ciao_postactivate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + } + + void + StockDistributor_exec_i::ccm_activate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + // Start the active object + this->pulser_.open (); + } + + void + StockDistributor_exec_i::ccm_passivate ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + // Deactivate the active object + this->pulser_.close (); + } + + void + StockDistributor_exec_i::ccm_remove ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + } + + //================================================================== + // Home Executor Implementation Class: StockDistributorHome_exec_i + //================================================================== + + StockDistributorHome_exec_i::StockDistributorHome_exec_i (void) + { + } + + StockDistributorHome_exec_i::~StockDistributorHome_exec_i (void) + { + } + + ::Components::EnterpriseComponent_ptr + StockDistributorHome_exec_i::create ( + ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + StockDistributor_exec_i, + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (::Components::EnterpriseComponent::_nil ()); + return retval; + } + + extern "C" DISTRIBUTOR_EXEC_Export ::Components::HomeExecutorBase_ptr + createStockDistributorHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + StockDistributorHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} + diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec.h b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec.h new file mode 100644 index 00000000000..5a2a3aa408c --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec.h @@ -0,0 +1,272 @@ +//$Id$ + +//Distributor_exec.h,v 1.1 +/* + * @file Distributor_exec.h + * + * @author Ming Xiong <xiongm@isis.vanderbilt.edu> + */ + + + +#ifndef CIAO_DISTRIBUTOR_EXEC_H +#define CIAO_DISTRIBUTOR_EXEC_H + +#include /**/ "ace/pre.h" +#include "ace/Thread_Manager.h" +#include "ace/Task.h" + + +#include "Distributor_svnt.h" +#include "DistributorEC.h" +#include "Distributor_exec_export.h" + + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/LocalObject.h" + +namespace StockDistributor_Impl +{ + class StockDistributor_exec_i; + + /** + * @class StockQuoter_exec_i + * + * @brief Executor implementation + * + * This class implements Stock::StockQuoter interface. We use this interface + * to acquire the information of the stock + */ + class DISTRIBUTOR_EXEC_Export StockQuoter_exec_i + : public virtual ::Stock::CCM_StockQuoter, + public virtual TAO_Local_RefCounted_Object + { + public: + StockQuoter_exec_i (StockDistributor_exec_i &distributor) + :distributor_ (distributor) + { + } + + // Operations from ::Stock::StockQuoter + + virtual ::Stock::StockInfo * + get_stock_info ( + const char * stock_name + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Stock::Invalid_Stock)); + + /// User defined + private: + /// Maintains a handle to the distributor so that the quoter can refer to it for latest quote + StockDistributor_exec_i &distributor_; + }; + + class StockDistributor_exec_i; + + /** + * @class pulse generator + * + * @brief an active object used by StockDistributor to perform periodical pulse generation + * + */ + class pulse_Generator : public ACE_Task_Base + { + public: + pulse_Generator (StockDistributor_exec_i *callback); + + ~pulse_Generator (); + + /// Hook method that performs application-defined initialization activities + int open (void); + + /// Hook method that performs application-defined destruction activites + int close (void); + + /// appliation-defined method for starting the pulse-generation service + int start (CORBA::Long hertz); + + /// application-defined method for stopping the pulse-generation service + int stop (void); + + /// Indicate whether the current object is active + int active (void); + + /// Handle the timeout. + virtual int handle_timeout (const ACE_Time_Value &tv, + const void *arg); + + /// Called when timer handler is removed. + virtual int handle_close (ACE_HANDLE handle, + ACE_Reactor_Mask close_mask); + + /// Hook methods implemnting the task's service processing, + /// invoked by all threads activated by activate () method + virtual int svc (void); + + private: + /// Tracking whether we are actively generating pulse or not. + int active_; + + /// Maintains a handle that actually process the event + StockDistributor_exec_i *pulse_callback_; + + }; + + + /** + * @class StockDistributor_exec_i + * + * @brief Executor implementation + * + * This class implements Stock::StockDistributor component + */ + class DISTRIBUTOR_EXEC_Export StockDistributor_exec_i + : public virtual StockDistributor_Exec, + public virtual TAO_Local_RefCounted_Object + { + public: + StockDistributor_exec_i (void); + virtual ~StockDistributor_exec_i (void); + + // Supported or inherited operations. + + virtual void + start ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void + stop ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Attribute operations. + + virtual ::CORBA::Long + rate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void + rate ( + ::CORBA::Long + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Port operations. + + virtual ::Stock::CCM_StockQuoter_ptr + get_push_quoter ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Operations from Components::SessionComponent + + virtual void + set_session_context ( + ::Components::SessionContext_ptr ctx + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ciao_preactivate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ciao_postactivate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ccm_activate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ccm_passivate ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + virtual void + ccm_remove ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + + protected: + CIAO_GLUE_Stock::StockDistributor_Context *context_; + + /// User defined members + public: + + /// push event to all subscribers + void push_notify_out () + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + private: + /// pulse generation rate + CORBA::Long rate_; + + /// pulser object + pulse_Generator pulser_; + + /// "real-time" stock value + static CORBA::Long msft_; + + /// "real-tiime" stock value + static CORBA::Long ibm_; + + friend class StockQuoter_exec_i; + }; + + + /** + * @class StockDistributorHome_exec_i + * + * @brief Executor implementation + * + * This class implements Stock::StockDistributorHome + */ + class DISTRIBUTOR_EXEC_Export StockDistributorHome_exec_i + : public virtual StockDistributorHome_Exec, + public virtual TAO_Local_RefCounted_Object + { + public: + StockDistributorHome_exec_i (void); + virtual ~StockDistributorHome_exec_i (void); + + virtual ::Components::EnterpriseComponent_ptr + create ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC (( + ::CORBA::SystemException, + ::Components::CCMException)); + }; + + extern "C" DISTRIBUTOR_EXEC_Export ::Components::HomeExecutorBase_ptr + createStockDistributorHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_DISTRIBUTOR_EXEC_H */ + diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec_export.h b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec_export.h new file mode 100644 index 00000000000..a3509e015da --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl DISTRIBUTOR_EXEC +// ------------------------------ +#ifndef DISTRIBUTOR_EXEC_EXPORT_H +#define DISTRIBUTOR_EXEC_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (DISTRIBUTOR_EXEC_HAS_DLL) +# define DISTRIBUTOR_EXEC_HAS_DLL 1 +#endif /* ! DISTRIBUTOR_EXEC_HAS_DLL */ + +#if defined (DISTRIBUTOR_EXEC_HAS_DLL) && (DISTRIBUTOR_EXEC_HAS_DLL == 1) +# if defined (DISTRIBUTOR_EXEC_BUILD_DLL) +# define DISTRIBUTOR_EXEC_Export ACE_Proper_Export_Flag +# define DISTRIBUTOR_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define DISTRIBUTOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* DISTRIBUTOR_EXEC_BUILD_DLL */ +# define DISTRIBUTOR_EXEC_Export ACE_Proper_Import_Flag +# define DISTRIBUTOR_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define DISTRIBUTOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* DISTRIBUTOR_EXEC_BUILD_DLL */ +#else /* DISTRIBUTOR_EXEC_HAS_DLL == 1 */ +# define DISTRIBUTOR_EXEC_Export +# define DISTRIBUTOR_EXEC_SINGLETON_DECLARATION(T) +# define DISTRIBUTOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* DISTRIBUTOR_EXEC_HAS_DLL == 1 */ + +// Set DISTRIBUTOR_EXEC_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (DISTRIBUTOR_EXEC_NTRACE) +# if (ACE_NTRACE == 1) +# define DISTRIBUTOR_EXEC_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define DISTRIBUTOR_EXEC_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !DISTRIBUTOR_EXEC_NTRACE */ + +#if (DISTRIBUTOR_EXEC_NTRACE == 1) +# define DISTRIBUTOR_EXEC_TRACE(X) +#else /* (DISTRIBUTOR_EXEC_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define DISTRIBUTOR_EXEC_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (DISTRIBUTOR_EXEC_NTRACE == 1) */ + +#endif /* DISTRIBUTOR_EXEC_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_stub_export.h b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_stub_export.h new file mode 100644 index 00000000000..1126c5bc355 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_stub_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl DISTRIBUTOR_STUB +// ------------------------------ +#ifndef DISTRIBUTOR_STUB_EXPORT_H +#define DISTRIBUTOR_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (DISTRIBUTOR_STUB_HAS_DLL) +# define DISTRIBUTOR_STUB_HAS_DLL 1 +#endif /* ! DISTRIBUTOR_STUB_HAS_DLL */ + +#if defined (DISTRIBUTOR_STUB_HAS_DLL) && (DISTRIBUTOR_STUB_HAS_DLL == 1) +# if defined (DISTRIBUTOR_STUB_BUILD_DLL) +# define DISTRIBUTOR_STUB_Export ACE_Proper_Export_Flag +# define DISTRIBUTOR_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define DISTRIBUTOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* DISTRIBUTOR_STUB_BUILD_DLL */ +# define DISTRIBUTOR_STUB_Export ACE_Proper_Import_Flag +# define DISTRIBUTOR_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define DISTRIBUTOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* DISTRIBUTOR_STUB_BUILD_DLL */ +#else /* DISTRIBUTOR_STUB_HAS_DLL == 1 */ +# define DISTRIBUTOR_STUB_Export +# define DISTRIBUTOR_STUB_SINGLETON_DECLARATION(T) +# define DISTRIBUTOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* DISTRIBUTOR_STUB_HAS_DLL == 1 */ + +// Set DISTRIBUTOR_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (DISTRIBUTOR_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define DISTRIBUTOR_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define DISTRIBUTOR_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !DISTRIBUTOR_STUB_NTRACE */ + +#if (DISTRIBUTOR_STUB_NTRACE == 1) +# define DISTRIBUTOR_STUB_TRACE(X) +#else /* (DISTRIBUTOR_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define DISTRIBUTOR_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (DISTRIBUTOR_STUB_NTRACE == 1) */ + +#endif /* DISTRIBUTOR_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_svnt_export.h b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_svnt_export.h new file mode 100644 index 00000000000..78debd1c32b --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_svnt_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl DISTRIBUTOR_SVNT +// ------------------------------ +#ifndef DISTRIBUTOR_SVNT_EXPORT_H +#define DISTRIBUTOR_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (DISTRIBUTOR_SVNT_HAS_DLL) +# define DISTRIBUTOR_SVNT_HAS_DLL 1 +#endif /* ! DISTRIBUTOR_SVNT_HAS_DLL */ + +#if defined (DISTRIBUTOR_SVNT_HAS_DLL) && (DISTRIBUTOR_SVNT_HAS_DLL == 1) +# if defined (DISTRIBUTOR_SVNT_BUILD_DLL) +# define DISTRIBUTOR_SVNT_Export ACE_Proper_Export_Flag +# define DISTRIBUTOR_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define DISTRIBUTOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* DISTRIBUTOR_SVNT_BUILD_DLL */ +# define DISTRIBUTOR_SVNT_Export ACE_Proper_Import_Flag +# define DISTRIBUTOR_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define DISTRIBUTOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* DISTRIBUTOR_SVNT_BUILD_DLL */ +#else /* DISTRIBUTOR_SVNT_HAS_DLL == 1 */ +# define DISTRIBUTOR_SVNT_Export +# define DISTRIBUTOR_SVNT_SINGLETON_DECLARATION(T) +# define DISTRIBUTOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* DISTRIBUTOR_SVNT_HAS_DLL == 1 */ + +// Set DISTRIBUTOR_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (DISTRIBUTOR_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define DISTRIBUTOR_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define DISTRIBUTOR_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !DISTRIBUTOR_SVNT_NTRACE */ + +#if (DISTRIBUTOR_SVNT_NTRACE == 1) +# define DISTRIBUTOR_SVNT_TRACE(X) +#else /* (DISTRIBUTOR_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define DISTRIBUTOR_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (DISTRIBUTOR_SVNT_NTRACE == 1) */ + +#endif /* DISTRIBUTOR_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/DAnCE/examples/Quoter/README.html b/TAO/CIAO/DAnCE/examples/Quoter/README.html new file mode 100644 index 00000000000..e841ffa57da --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/README.html @@ -0,0 +1,171 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<!--//$Id$ --> +</head> +<body> +<b><font size="5">Quoter example README</font></b> +<p>To download the source codes of this example please refer to the CVS +repository at <code>$CIAO_ROOT/DAnCE/examples/Quoter</code>. +</p> +<hr> +<h2>Example Description</h2> +<div align="left"> +<font face="Times New Roman" size="3">The <b>StockDistributor</b> +component would be monitoring a real-time stock database. When the +values of particular stocks change, it pushes a CCM <b>eventtype</b> +that contains the stock's name via a CCM event source to the +corresponding CCM </font> +</div> +<div align="left"> +<font face="Times New Roman" size="3">event sink implemented by one or +more <b>StockBroker</b> components. If these components are interested +in the stock they can obtain more information about it by invoking a +request/response operation via their CCM receptacle on a CCM facet +exported by the <b>StockDistributor</b> component. The diagram of this +example is shown in fig 1.</font> +</div> +<p align="center"><img alt="" src="images/quoter.jpg" + style="width: 362px; height: 212px;"><br> +figure 1<br> +</p> +<h2 align="justify"><span style="font-weight: 400;"><font size="3"></font></span><span + style="font-weight: 400;"><font size="3">This example +is based on a series of </font> <a + href="http://www.cs.wustl.edu/%7Eschmidt/report-doc.html"><font + size="3">CORBA Component Model</font></a><font size="3"> columns +written by <a href="http://www.cs.wustl.edu/%7EEschmidt/">Douglas +Schmidt</a> and <a href="http://www.iona.com/hyplan/vinoski/">Steve +Vinoskiand</a>, and has been consistently used as a example for <a + href="http://www.cs.wustl.edu/%7EEschmidt/TAO.html">TAO</a>. Please +refer to <a + href="http://www.cs.wustl.edu/%7Eschmidt/ACE_wrappers/TAO/docs/tutorials/Quoter/">TAO +online tutorial</a> for details. <br> +</font></span></h2> +<h2>The files you will find</h2> +<li>The interfaces, data types and exceptions used by the components of +this +application are specified in the <a href="Stock_Base/Stock_Base.idl"><code>Stock_Base.idl</code></a> +file, placed +in this example root directory ($CIAO_ROOT/examples/Quoter/Stock_Base). +The lib +generated +from Stock_Base.idl is linked to all the components of this example.</li> +<li> mpc files for each of the components are available in the +components +directories. We use the <a + href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">MPC</a> +to +generate makefiles and Visual C++ project/solutions files for all <a + href="http://www.cs.wustl.edu/%7Eschmidt/ACE.html">ACE</a>, <a + href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a> and <a + href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">CIAO</a> +libraries. </li> +<li> idl and cidl files for each component are placed in +components directory. +</li> +<li> The <code>_exec.h</code> and <code>_exec.cpp</code> files +are the actual +implementation of the components.</li> +<hr> +<h3><font size="5">Make</font></h3> +Navigate to the directory <code>$CIAO_ROOT/DAnCE/examples/Quoter</code> +and do:<br> +<code>$ACE_ROOT/bin/mwc.pl</code> (use -type option if you are using +a +compiler/IDE other than gnuace -which by default generates GNU +makefiles) <br> +For example, use <code>%ACE_ROOT%/bin/mwc.pl -type vc71</code> if you +are using +Visual C++ 7.1 IDE.<br> +<br> +Then build/make the generated project/make files. Correct errors in the +source codes if necessary.<br> +<hr> +<h3><font size="5">Assemble</font></h3> +<p>Now we can step forward to build the assembly. </p> +<li>In the descriptor subdirectory, you'll find a XML descriptor file +that +describes your <em>deployment plan</em>, the +flattened_deploymentplan.cdp. This file declaratively specifies how the +component assembly is +constructed. +Specifically, it defines the component types, component instances, +component +connections and implementation artifact descriptions. <br> +</li> +<dd> + <li>Please make sure that the Modified_Deployment.xsd and XMI.xsd +files +are in the Display/descriptors directory. The former file could be +found in $CIAO_ROOT/docs/schema +directory. <br> + <br> +Note: Creating the deployment plan descriptor is a tedious and +error-prone job, +you can download <a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a> +to +assist you in this step. + <p> </p> + <hr></li> +</dd> +<h2>Running the program </h2> +>From different shells in <code>$CIAO_ROOT/DAnCE/examples/Quoter/descriptors/</code> +directory: +<ul> + <li>Start NodeManagers (NodeDameon) by running runNodeDaemon.pl </li> + <li>Start the execution manager +$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager -o ior -i +Stock.dat </li> +</ul> +<p>The Stock.dat file describes the deployment daemons CIAO's +Execution_Manager +will contact to instantiate ComponentServer's, home's, and component +instances. +Each line specify the name of a installation "destination" and the +corresponding corbaloc IOR for the CIAO_Daemon.</p> +<ul type="square"> + <li><em>NOTE</em>: As one can see, we use the "Stock.dat" file to +instruct the Execution_Manager how to find the endpoint of each +individual NodeManager (i.e., Node Daemon) where component(s) will be +deployed, so this is non-standard. We plan to use Naming Service to do +this in the future. </li> +</ul> +<ul> + <li> Start the plan_launcher by running +$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p +flattened_deploymentplan.cdp -k file://ior</li> + <li>By now the components should be successfully deployed. You may +run the driver program to start the application. Open a new shell, keep +in the /Quoter/descriptors directory, and try the following +commands, see what happens in the component server<br> + </li> +</ul> + <br> + Start the distributor +service at a frequency of 3 hertz:<br> + <span style="color: rgb(51, 102, 255);">../Distributor/Distributor.exe +-o -r3</span><br> +<br> + Use the broker program to +subscribe to MSFT stock<br> + <span + style="color: rgb(51, 102, 255);">../Broker/Broker.exe -s MSFT</span><br> +<br> + Subscribe to IBM stock<br> + <span + style="color: rgb(51, 102, 255);">../Broker/Broker.exe -s IBM</span><br> +<br> + Unsubscribe to MSFT stock<br> + <span + style="color: rgb(51, 102, 255);">../Broker/Broker -u MSFT</span><br> +<br> + Turn off the distribution +service:<br> + <span + style="color: rgb(51, 102, 255);">../Distributor/Distributor -f </span><br> +<br> +Please contact mxiong@dre.vanderbilt.edu if you have any questions. + <br> +</body> +</html> diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base.idl b/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base.idl new file mode 100644 index 00000000000..a107b070529 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base.idl @@ -0,0 +1,40 @@ +//$Id$ + +#include <Components.idl> + +module Stock +{ + exception Invalid_Stock {}; + + /** + * @struct StockInfo + */ + struct StockInfo { + string name; + long high; + long low; + long last; + }; + + /** + * @interface: StockQuoter + * + * @brief: component facet + */ + interface StockQuoter { + /// Returns the current stock info + StockInfo get_stock_info (in string stock_name) + raises (Invalid_Stock); + }; + + + /** + * @event StockName + * + * @brief component event + */ + eventtype StockName { + // Name of the stock. + public string name; + }; +}; diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base.mpc b/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base.mpc new file mode 100644 index 00000000000..b294d5db74e --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base.mpc @@ -0,0 +1,38 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Stock_Base" + +project(Stock_Base_stub): ciao_client_dnc { + + sharedname = Stock_Base_stub + idlflags += -Wb,stub_export_macro=STOCK_BASE_STUB_Export -Wb,stub_export_include=Stock_Base_stub_export.h -Wb,skel_export_macro=STOCK_BASE_SVNT_Export -Wb,skel_export_include=Stock_Base_svnt_export.h + dynamicflags = STOCK_BASE_STUB_BUILD_DLL + + IDL_Files { + Stock_Base.idl + } + + Source_Files { + Stock_BaseC.cpp + } +} + +project(Stock_Base_svnt) : ciao_servant_dnc { + after += Stock_Base_stub + sharedname = Stock_Base_svnt + libs += Stock_Base_stub + + idlflags += -Wb,export_macro=STOCK_BASE_SVNT_Export -Wb,export_include=Stock_Base_svnt_export.h + dynamicflags = STOCK_BASE_SVNT_BUILD_DLL + + IDL_Files { + Stock_Base.idl + } + + Source_Files { + Stock_BaseS.cpp + } +} + + + + diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_exec_export.h b/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_exec_export.h new file mode 100644 index 00000000000..ef8dc9c1f99 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_exec_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl STOCK_BASE_EXEC +// ------------------------------ +#ifndef STOCK_BASE_EXEC_EXPORT_H +#define STOCK_BASE_EXEC_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (STOCK_BASE_EXEC_HAS_DLL) +# define STOCK_BASE_EXEC_HAS_DLL 1 +#endif /* ! STOCK_BASE_EXEC_HAS_DLL */ + +#if defined (STOCK_BASE_EXEC_HAS_DLL) && (STOCK_BASE_EXEC_HAS_DLL == 1) +# if defined (STOCK_BASE_EXEC_BUILD_DLL) +# define STOCK_BASE_EXEC_Export ACE_Proper_Export_Flag +# define STOCK_BASE_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define STOCK_BASE_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* STOCK_BASE_EXEC_BUILD_DLL */ +# define STOCK_BASE_EXEC_Export ACE_Proper_Import_Flag +# define STOCK_BASE_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define STOCK_BASE_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* STOCK_BASE_EXEC_BUILD_DLL */ +#else /* STOCK_BASE_EXEC_HAS_DLL == 1 */ +# define STOCK_BASE_EXEC_Export +# define STOCK_BASE_EXEC_SINGLETON_DECLARATION(T) +# define STOCK_BASE_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* STOCK_BASE_EXEC_HAS_DLL == 1 */ + +// Set STOCK_BASE_EXEC_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (STOCK_BASE_EXEC_NTRACE) +# if (ACE_NTRACE == 1) +# define STOCK_BASE_EXEC_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define STOCK_BASE_EXEC_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !STOCK_BASE_EXEC_NTRACE */ + +#if (STOCK_BASE_EXEC_NTRACE == 1) +# define STOCK_BASE_EXEC_TRACE(X) +#else /* (STOCK_BASE_EXEC_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define STOCK_BASE_EXEC_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (STOCK_BASE_EXEC_NTRACE == 1) */ + +#endif /* STOCK_BASE_EXEC_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_stub_export.h b/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_stub_export.h new file mode 100644 index 00000000000..1b73531da37 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_stub_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl STOCK_BASE_STUB +// ------------------------------ +#ifndef STOCK_BASE_STUB_EXPORT_H +#define STOCK_BASE_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (STOCK_BASE_STUB_HAS_DLL) +# define STOCK_BASE_STUB_HAS_DLL 1 +#endif /* ! STOCK_BASE_STUB_HAS_DLL */ + +#if defined (STOCK_BASE_STUB_HAS_DLL) && (STOCK_BASE_STUB_HAS_DLL == 1) +# if defined (STOCK_BASE_STUB_BUILD_DLL) +# define STOCK_BASE_STUB_Export ACE_Proper_Export_Flag +# define STOCK_BASE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define STOCK_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* STOCK_BASE_STUB_BUILD_DLL */ +# define STOCK_BASE_STUB_Export ACE_Proper_Import_Flag +# define STOCK_BASE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define STOCK_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* STOCK_BASE_STUB_BUILD_DLL */ +#else /* STOCK_BASE_STUB_HAS_DLL == 1 */ +# define STOCK_BASE_STUB_Export +# define STOCK_BASE_STUB_SINGLETON_DECLARATION(T) +# define STOCK_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* STOCK_BASE_STUB_HAS_DLL == 1 */ + +// Set STOCK_BASE_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (STOCK_BASE_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define STOCK_BASE_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define STOCK_BASE_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !STOCK_BASE_STUB_NTRACE */ + +#if (STOCK_BASE_STUB_NTRACE == 1) +# define STOCK_BASE_STUB_TRACE(X) +#else /* (STOCK_BASE_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define STOCK_BASE_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (STOCK_BASE_STUB_NTRACE == 1) */ + +#endif /* STOCK_BASE_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_svnt_export.h b/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_svnt_export.h new file mode 100644 index 00000000000..b3dfe948823 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_svnt_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl STOCK_BASE_SVNT +// ------------------------------ +#ifndef STOCK_BASE_SVNT_EXPORT_H +#define STOCK_BASE_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (STOCK_BASE_SVNT_HAS_DLL) +# define STOCK_BASE_SVNT_HAS_DLL 1 +#endif /* ! STOCK_BASE_SVNT_HAS_DLL */ + +#if defined (STOCK_BASE_SVNT_HAS_DLL) && (STOCK_BASE_SVNT_HAS_DLL == 1) +# if defined (STOCK_BASE_SVNT_BUILD_DLL) +# define STOCK_BASE_SVNT_Export ACE_Proper_Export_Flag +# define STOCK_BASE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define STOCK_BASE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* STOCK_BASE_SVNT_BUILD_DLL */ +# define STOCK_BASE_SVNT_Export ACE_Proper_Import_Flag +# define STOCK_BASE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define STOCK_BASE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* STOCK_BASE_SVNT_BUILD_DLL */ +#else /* STOCK_BASE_SVNT_HAS_DLL == 1 */ +# define STOCK_BASE_SVNT_Export +# define STOCK_BASE_SVNT_SINGLETON_DECLARATION(T) +# define STOCK_BASE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* STOCK_BASE_SVNT_HAS_DLL == 1 */ + +// Set STOCK_BASE_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (STOCK_BASE_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define STOCK_BASE_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define STOCK_BASE_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !STOCK_BASE_SVNT_NTRACE */ + +#if (STOCK_BASE_SVNT_NTRACE == 1) +# define STOCK_BASE_SVNT_TRACE(X) +#else /* (STOCK_BASE_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define STOCK_BASE_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (STOCK_BASE_SVNT_NTRACE == 1) */ + +#endif /* STOCK_BASE_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.ccd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.ccd new file mode 100644 index 00000000000..c2a0630b87b --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.ccd @@ -0,0 +1,33 @@ +<?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>Broker Component</label> + <UUID>803f8fc7-55de-4a20-81eb-ae951d85b7f4</UUID> + <specificType>IDL:Stock/StockBroker:1.0</specificType> + <supportedType>IDL:Stock/StockBroker:1.0</supportedType> + <port> + <name>notify_in</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>false</optional> + <provider>false</provider> + <supportedType>IDL:Stock/StockName:1.0</supportedType> + <specificType>IDL:Stock/StockName:1.0</specificType> + <kind>EventConsumer</kind> + </port> + <port> + <name>read_quoter</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>false</optional> + <provider>false</provider> + <supportedType>IDL:Stock/StockQuoter:1.0</supportedType> + <specificType>IDL:Stock/StockQuoter:1.0</specificType> + <kind>SimplexReceptacle</kind> + </port> + +</Deployment:ComponentInterfaceDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.cid b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.cid new file mode 100644 index 00000000000..47f49102136 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.cid @@ -0,0 +1,35 @@ +<?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>Broker Implementation</label> + <UUID>789e1be2-703f-4bd3-af50-b400eef91fd0</UUID> + <implements href="Broker.ccd"/> + <monolithicImpl> + <primaryArtifact> + <name>Broker_stub</name> + <referencedArtifact href="Broker_Stub.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Broker_svnt</name> + <referencedArtifact href="Broker_Svnt.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Broker_exec</name> + <referencedArtifact href="Broker_Exec.iad"/> + </primaryArtifact> + </monolithicImpl> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Broker.ior</string> + </value> + </value> + </configProperty> +</Deployment:ComponentImplementationDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.cpd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.cpd new file mode 100644 index 00000000000..cc6381b658a --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.cpd @@ -0,0 +1,14 @@ +<?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>Broker Package</label> + <UUID>07ebf947-2174-4a3b-bd37-bcb92986eaf4</UUID> + <realizes href="Broker.ccd"/> + <implementation> + <name>Broker</name> + <referencedImplementation href="Broker.cid"/> + </implementation> +</Deployment:ComponentPackageDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.ior b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.ior new file mode 100644 index 00000000000..6ef06e3db23 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.ior @@ -0,0 +1 @@ +IOR:010000001a00000049444c3a53746f636b2f53746f636b42726f6b65723a312e30000000010000000000000074000000010102cd0f0000003132392e35392e3132392e32303000cd0507cdcd2300000014010f004e5354336b93420ad40d0001000000010000000100000001000000020000000002000000000000000800000001cdcdcd004f4154010000001400000001cdcdcd01000100000000000901010000000000
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Exec.iad b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Exec.iad new file mode 100644 index 00000000000..724a5b2c6bb --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Exec.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>Broker Executor Artifact</label> + <UUID>5e4f2366-3810-4d4c-a269-5788a525cbe1</UUID> + <location>Broker_exec</location> + <dependsOn> + <name>ACE</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Broker_Stub</name> + <referencedArtifact href="Broker_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createStockBrokerHome_Impl</string> + </value> + </value> + </execParameter> +</Deployment:ImplementationArtifactDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Stub.iad b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Stub.iad new file mode 100644 index 00000000000..ac1f0834e19 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Stub.iad @@ -0,0 +1,14 @@ +<?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>Broker Stub Artifact</label> + <UUID>93bbdf7d-d3f7-4227-bb75-b0562ac15b92</UUID> + <location>Broker_stub</location> + <dependsOn> + <name>ACE</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> +</Deployment:ImplementationArtifactDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Svnt.iad b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Svnt.iad new file mode 100644 index 00000000000..176cb624872 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Svnt.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>Broker Servant Artifact</label> + <UUID>04e4d246-e6eb-4b0e-8e32-60b996497cea</UUID> + <location>Broker_svnt</location> + <dependsOn> + <name>ACE</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Broker_Stub</name> + <referencedArtifact href="Broker_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createStockBrokerHome_Servant</string> + </value> + </value> + </execParameter> +</Deployment:ImplementationArtifactDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Deployment.xsd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Deployment.xsd new file mode 100644 index 00000000000..c8a6399730b --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/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/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.ccd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.ccd new file mode 100644 index 00000000000..7557e143c56 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.ccd @@ -0,0 +1,41 @@ +<?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>Distributor Component</label> + <UUID>803f8fc7-55de-4a20-81eb-ae951d85b7f4</UUID> + <specificType>IDL:Stock/StockDistributor:1.0</specificType> + <supportedType>IDL:Stock/StockDistributor:1.0</supportedType> + <port> + <name>supports</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>false</optional> + <provider>true</provider> + <supportedType>IDL:Stock/Trigger:1.0</supportedType> + <kind>Facet</kind> + </port> + <port> + <name>notify_out</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>false</optional> + <provider>true</provider> + <supportedType>IDL:Stock/StockName:1.0</supportedType> + <specificType>IDL:Stock/StockName:1.0</specificType> + <kind>EventPublisher</kind> + </port> + <port> + <name>push_quoter</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>false</optional> + <provider>true</provider> + <supportedType>IDL:Stock/StockQuoter:1.0</supportedType> + <specificType>IDL:Stock/StockQuoter:1.0</specificType> + <kind>Facet</kind> + </port> +</Deployment:ComponentInterfaceDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.cid b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.cid new file mode 100644 index 00000000000..b5eac80c543 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.cid @@ -0,0 +1,35 @@ +<?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>Distributor Implementation</label> + <UUID>789e1be2-703f-4bd3-af50-b400eef91fd0</UUID> + <implements href="Distributor.ccd"/> + <monolithicImpl> + <primaryArtifact> + <name>Distributor_Stub</name> + <referencedArtifact href="Distributor_Stub.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Distributor_Svnt</name> + <referencedArtifact href="Distributor_Svnt.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Distributor_Exec</name> + <referencedArtifact href="Distributor_Exec.iad"/> + </primaryArtifact> + </monolithicImpl> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Distributor.ior</string> + </value> + </value> + </configProperty> +</Deployment:ComponentImplementationDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.cpd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.cpd new file mode 100644 index 00000000000..c451a5637e8 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.cpd @@ -0,0 +1,14 @@ +<?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>Distributor Package</label> + <UUID>07ebf947-2174-4a3b-bd37-bcb92986eaf4</UUID> + <realizes href="Distributor.ccd"/> + <implementation> + <name>Distributor</name> + <referencedImplementation href="Distributor.cid"/> + </implementation> +</Deployment:ComponentPackageDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.ior b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.ior new file mode 100644 index 00000000000..3aaaf82492d --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.ior @@ -0,0 +1 @@ +IOR:010000001f00000049444c3a53746f636b2f53746f636b4469737472696275746f723a312e300000010000000000000074000000010102cd0f0000003132392e35392e3132392e32303000cd0007cdcd2300000014010f004e5354336b9342c2eb0b0001000000010000000100000001000000020000000002000000000000000800000001cdcdcd004f4154010000001400000001cdcdcd01000100000000000901010000000000
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Exec.iad b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Exec.iad new file mode 100644 index 00000000000..784e11b99bf --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Exec.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>Distributor Executor Artifact</label> + <UUID>5e4f2366-3810-4d4c-a269-5788a525cbe1</UUID> + <location>Distributor_exec</location> + <dependsOn> + <name>ACE</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Distributor_Stub</name> + <referencedArtifact href="Distributor_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createStockDistributorHome_Impl</string> + </value> + </value> + </execParameter> +</Deployment:ImplementationArtifactDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Stub.iad b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Stub.iad new file mode 100644 index 00000000000..c55a74916ef --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Stub.iad @@ -0,0 +1,14 @@ +<?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>Distributor Stub Artifact</label> + <UUID>93bbdf7d-d3f7-4227-bb75-b0562ac15b92</UUID> + <location>Distributor_stub</location> + <dependsOn> + <name>ACE</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> +</Deployment:ImplementationArtifactDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Svnt.iad b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Svnt.iad new file mode 100644 index 00000000000..bb253b468d7 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Svnt.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>Distributor Servant Artifact</label> + <UUID>04e4d246-e6eb-4b0e-8e32-60b996497cea</UUID> + <location>Distributor_svnt</location> + <dependsOn> + <name>ACE</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Distributor_Stub</name> + <referencedArtifact href="Distributor_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createStockDistributorHome_Servant</string> + </value> + </value> + </execParameter> +</Deployment:ImplementationArtifactDescription>
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Domain.cdd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Domain.cdd new file mode 100644 index 00000000000..b4dd3c729ef --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Domain.cdd @@ -0,0 +1,17 @@ +<?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>Stock Domain</label> +<UUID>effd4bd0-6db0-4c50-9bb7-db9decebae1c</UUID> +<node> + <name>Distributor</name> + <label>Distributor's Node</label> +</node> +<node> + <name>Broker</name> + <label>Broker's Node</label> +</node> +</Deployment:Domain> diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Libraries.iad b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Libraries.iad new file mode 100644 index 00000000000..720a7ce8219 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Libraries.iad @@ -0,0 +1,8 @@ +<?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>Common Libraries</label> + <UUID>6bae4fcd-c71c-44b4-a0d4-0e4199ce1a49</UUID> + <location>$ACE_ROOT/lib/libACE</location> + <location>$ACE_ROOT/lib/libTAO</location> + <location>$ACE_ROOT/lib/libCIAO_Client</location> +</Deployment:ImplementationArtifactDescription> diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Modified_Deployment.xsd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Modified_Deployment.xsd new file mode 100644 index 00000000000..b73077b0980 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Modified_Deployment.xsd @@ -0,0 +1,790 @@ +<xsd:schema 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" + xmlns:Deployment="http://www.omg.org/Deployment" + targetNamespace="http://www.omg.org/Deployment"> + + + <xsd:simpleType name="TCKind"> + <xsd:restriction base="xsd:NCName"> + <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:complexType name="DataType"> + <xsd:choice> + <xsd:element name="kind" type="Deployment:TCKind"/> +<!-- +@@ not used, what for? + + <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:complexType> + + + <xsd:complexType name="DataValue"> + <xsd:choice> + <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"/> + +<!-- +@@ recursive + <xsd:element name="any" type="Deployment:Any"/> +--> + + <xsd:element name="typecode" type="Deployment:DataType"/> + +<!-- +@@ recursive + <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:complexType> + + + <xsd:complexType name="Any"> + <xsd:sequence> + <xsd:element name="type" type="Deployment:DataType"/> + <xsd:element name="value" type="Deployment:DataValue"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Property"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="value" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + +<!-- End of base definitions. --> + + <xsd:complexType name="Node"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> +<!-- +@@ recursive, not used + <xsd:element name="connection" type="Deployment:Interconnect"/> + <xsd:element name="sharedResource" type="Deployment:SharedResource"/> + <xsd:element name="resource" type="Deployment:Resource"/> +--> + </xsd:sequence> + </xsd:complexType> + + + <xsd:simpleType name="SatisfierPropertyKind"> + <xsd:restriction base="xsd:NCName"> + <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:complexType name="SatisfierProperty"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/> + <xsd:element name="value" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Resource"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="SharedResource"> + <xsd:sequence> + <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:sequence> + </xsd:complexType> + + + <xsd:complexType name="Domain"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="sharedResource" type="Deployment:SharedResource" minOccurs="0"/> + <xsd:element name="node" type="Deployment:Node" maxOccurs="unbounded"/> +<!-- +@@ recursive, not used + <xsd:element name="interconnect" type="Deployment:Interconnect"/> + <xsd:element name="bridge" type="Deployment:Bridge"/> +--> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Requirement"> + <xsd:sequence> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="property" type="Deployment:Property"/> + </xsd:sequence> + </xsd:complexType> + + +<!-- Deployment --> + + <xsd:complexType name="ResourceDeploymentDescription"> + <xsd:sequence> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ArtifactDeploymentDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="node" type="xsd:string" minOccurs="0"/> + <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + + <xsd:complexType name="MonolithicDeploymentDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="artifact" type="xsd:IDREF" maxOccurs="unbounded"/> <!-- ArtifactDeploymentDescription --> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + <xsd:simpleType name="ResourceUsageKind"> + <xsd:restriction base="xsd:NCName"> + <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:complexType name="InstanceResourceDeploymentDescription"> + <xsd:sequence> + <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:sequence> + </xsd:complexType> + + + <xsd:complexType name="InstanceDeploymentDescription"> + <xsd:sequence> + <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="xsd:IDREF"/> <!-- MonolithicDeploymentDescription --> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/> + <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + + <xsd:simpleType name="CCMComponentPortKind"> + <xsd:restriction base="xsd:NCName"> + <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:complexType name="ComponentPortDescription"> + <xsd:sequence> + <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:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentPropertyDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentInterfaceDescription"> + <xsd:choice> + <xsd:sequence> + <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" maxOccurs="unbounded" /> + <xsd:element name="idlFile" type="xsd:string" minOccurs="0"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="port" type="Deployment:ComponentPortDescription" maxOccurs="unbounded"/> + <xsd:element name="property" type="Deployment:ComponentPropertyDescription" minOccurs="0"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="ComponentExternalPortEndpoint"> + <xsd:sequence> + <xsd:element name="portName" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="PlanSubcomponentPortEndpoint"> + <xsd:sequence> + <xsd:element name="portName" type="xsd:string"/> + <xsd:element name="provider" type="xsd:string" minOccurs="0"/> + <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/> + <xsd:element name="instance" type="xsd:IDREF"/> <!-- InstanceDeploymentDescription --> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ExternalReferenceEndpoint"> + <xsd:sequence> + <xsd:element name="location" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ConnectionResourceDeploymentDescription"> + <xsd:sequence> + <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:sequence> + </xsd:complexType> + + + <xsd:complexType name="PlanConnectionDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ImplementationDependency"> + <xsd:sequence> + <xsd:element name="requiredType" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="DeploymentPlan"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string" minOccurs="0"/> + <xsd:element name="UUID" type="xsd:string" minOccurs="0"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0" maxOccurs="1"/> + <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription" maxOccurs="unbounded" /> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="connection" type="Deployment:PlanConnectionDescription" minOccurs="0" maxOccurs="unbounded"/> + <!-- potentially recursive, not used + <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/> + --> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + + + +<!-- Implementation --> + + + <xsd:complexType name="Capability"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="NamedImplementationArtifact"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <!-- @@ recursive NIA->IAD->NIA --> + <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ImplementationArtifactDescription"> + <xsd:choice> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + + <!-- @@ There probably should be only one location? --> + <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="ImplementationRequirement"> + <xsd:sequence> + <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:sequence> + </xsd:complexType> + + + <xsd:complexType name="MonolithicImplementationDescription"> + <xsd:sequence> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact" maxOccurs="unbounded"/> + <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="PackagedComponentImplementation"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <!-- @@ recursive CPD->PCI->CID->CAD->SID->CPD --> + <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentPackageDescription"> + <xsd:choice> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="ComponentPackageReference"> + <xsd:sequence> + <xsd:element name="requiredUUID" type="xsd:string"/> + <xsd:element name="requiredName" type="xsd:string"/> + <xsd:element name="requiredType" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="SubcomponentInstantiationDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="package" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="reference" type="Deployment:ComponentPackageReference" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + + <xsd:complexType name="SubcomponentPortEndpoint"> + <xsd:sequence> + <xsd:element name="portName" type="xsd:string"/> + <xsd:element name="instance" type="xsd:IDREF"/> <!-- SubcomponentInstantiationDescription --> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="AssemblyConnectionDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="SubcomponentPropertyReference"> + <xsd:sequence> + <xsd:element name="propertyName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="AssemblyPropertyMapping"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="externalName" type="xsd:string"/> + <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentAssemblyDescription"> + <xsd:sequence> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription" maxOccurs="unbounded"/> + <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription" maxOccurs="unbounded"/> + <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentImplementationDescription"> + <xsd:choice> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/> + <xsd:choice> + <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/> + <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/> + </xsd:choice> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="capability" type="Deployment:Capability" minOccurs="0"/> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + +<!-- Package --> + + + <xsd:complexType name="PackageConfiguration"> + <xsd:choice> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> +<!-- +@@ recursive, not used + <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/> +--> + + <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="reference" type="Deployment:ComponentPackageReference" minOccurs="0"/> + <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="TopLevelPackageDescription"> + <xsd:sequence> + <xsd:element name="package" type="Deployment:PackageConfiguration" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + +<!-- Top-level elements. --> + + + <xsd:element name="domain" type="Deployment:Domain"/> + <xsd:element name="deploymentPlan" type="Deployment:DeploymentPlan"/> + <xsd:element name="implementationArtifactDescription" type="Deployment:ImplementationArtifactDescription" /> + <xsd:element name="componentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/> + <xsd:element name="componentImplementationDescription" type="Deployment:ComponentImplementationDescription"/> + <xsd:element name="componentPackageDescription" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="packageConfiguration" type="Deployment:PackageConfiguration"/> + <xsd:element name="topLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/> + + + +<!-- VAULT + +Place for strange things. Nobody knows what they are for... + +--> + +<!-- + + <xsd:complexType name="EnumType"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="member" type="xsd:string" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="ObjrefType"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="BoundedStringType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="bound" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <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:complexType> + + + <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:complexType> + + <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:complexType> + + <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:complexType> + + <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:complexType> + + <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:complexType> + + <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:complexType> + + <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:complexType> + + <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:complexType> + + <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:complexType> + + + <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:complexType> + + + <xsd:complexType name="Bridge"> + <xsd:sequence> + <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:sequence> + </xsd:complexType> + + <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:complexType> + + <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:complexType> + + + <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:complexType> + +--> + +<!-- + + This type is not referenced anywhere. + + <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:complexType> + +--> + +</xsd:schema> diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cdp b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cdp new file mode 100644 index 00000000000..4d327f991c2 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cdp @@ -0,0 +1,16 @@ +<?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>Stock Deployment Plan</label> + <instance xmi:id="a_Distributor"> + <name>Distributor_Instance</name> + <node>Distributor</node> + </instance> + <instance xmi:id="a_Broker01"> + <name>Broker_Instance_01</name> + <node>Broker01</node> + </instance> +</Deployment:DeploymentPlan> diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cid b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cid new file mode 100644 index 00000000000..2d2160bba7d --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cid @@ -0,0 +1,41 @@ +<?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>Stock Example Assembly</label> + <UUID>effd4bd0-6db0-4c50-9bb7-db9decebae1c</UUID> + <assemblyImpl> + <instance xmi:id="a_Distributor"> + <name>Distributor_Instance</name> + <package href="Distributor.cpd"/> + </instance> + <instance xmi:id="a_Broker01"> + <name>Broker_Instance_01</name> + <package href="Broker.cpd"/> + </instance> + <connection> + <name>quoter_conn</name> + <internalEndpoint> + <portName>read_quoter</portName> + <instance xmi:idref="a_Broker01"/> + </internalEndpoint> + <internalEndpoint> + <portName>push_quoter</portName> + <instance xmi:idref="a_Distributor"/> + </internalEndpoint> + </connection> + <connection> + <name>StockName_event</name> + <internalEndpoint> + <portName>notify_in</portName> + <instance xmi:idref="a_Broker01"/> + </internalEndpoint> + <internalEndpoint> + <portName>notify_out</portName> + <instance xmi:idref="a_Distributor"/> + </internalEndpoint> + </connection> + </assemblyImpl> +</Deployment:ComponentImplementationDescription> diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cpd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cpd new file mode 100644 index 00000000000..6b2ece8e164 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.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>Stock Example Package</label> + <UUID>823e4287-f53c-4caa-8619-f3dfda4c4998</UUID> + <implementation> + <name>Stock</name> + <referencedImplementation href="Stock.cid"/> + </implementation> +</Deployment:ComponentPackageDescription> diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.dat b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.dat new file mode 100644 index 00000000000..6079555046c --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.dat @@ -0,0 +1,3 @@ +DistributorNode corbaloc:iiop:localhost:30000/NodeManager
+BrokerNode corbaloc:iiop:localhost:40000/NodeManager
+
diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.pcd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.pcd new file mode 100644 index 00000000000..d65c2d9f86b --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.pcd @@ -0,0 +1,10 @@ +<?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>Stock Example Configuration for Unix machines</label> + <UUID>559d65e8-0407-48c0-a158-dafe21360fef</UUID> + <basePackage href="Stock.cpd"/> +</Deployment:PackageConfiguration> diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/XMI.xsd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/XMI.xsd new file mode 100644 index 00000000000..f4adac91934 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/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/TAO/CIAO/DAnCE/examples/Quoter/descriptors/flattened_deploymentplan.cdp b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/flattened_deploymentplan.cdp new file mode 100644 index 00000000000..3b9915c177f --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/flattened_deploymentplan.cdp @@ -0,0 +1,185 @@ +<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 Modified_Deployment.xsd"> + + <label>Quoter-DeploymentPlan</label> + <!-- Could be ZERO --> + <realizes> + <label>Quoter-realizes-cid</label> + <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID> + <specificType><!-- @@ What does here? --></specificType> + <supportedType>IDL:Quoter/EC:1.0</supportedType> + <port> + <name>read_quoter</name> + <specificType>IDL:Quoter/Read_Quoter:1.0</specificType> + <supportedType>IDL:Quoter/Read_Quoter:1.0</supportedType> + <provider>false></provider> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>false</optional> + <kind>SimplexReceptacle</kind> + </port> + </realizes> + + <implementation id="Quoter-Distributor-mdd"> + <name>Quoter-Distributor-mdd</name> + <source><!-- @@ Don't know what goes here --></source> + <artifact>Quoter-Distributor_exec</artifact> + <artifact>Quoter-Distributor_svnt</artifact> + <!-- + <execParameter></execParameter> + <deployRequirement></deployRequirement> + --> + </implementation> + + <implementation id="Quoter-Broker-mdd"> + <name>Quoter-Broker-mdd</name> + <source><!-- @@ Don't know what goes here --></source> + <artifact>Quoter-Broker_exec</artifact> + <artifact>Quoter-Broker_svnt</artifact> + <!-- + <execParameter></execParameter> + <deployRequirement></deployRequirement> + --> + </implementation> + + <instance id="Quoter-Distributor-idd"> + <name>Quoter-Distributor-idd</name> + <node>DistributorNode</node> + <source><!-- @@ What goes here --></source> + <implementation>Quoter-Distributor-mdd</implementation> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Distributor.ior</string> + </value> + </value> + </configProperty> + </instance> + + <instance id="Quoter-Broker-idd"> + <name>Quoter-Broker-idd</name> + <node>BrokerNode</node> + <source><!-- @@ What goes here --></source> + <implementation>Quoter-Broker-mdd</implementation> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Broker.ior</string> + </value> + </value> + </configProperty> + </instance> + + + <connection> + <name>Quoter_event_connection</name> + <internalEndpoint> + <portName>notify_out</portName> + <kind>EventPublisher</kind> + <instance>Quoter-Distributor-idd</instance> + </internalEndpoint> + <internalEndpoint> + <portName>notify_in</portName> + <kind>EventConsumer</kind> + <instance>Quoter-Broker-idd</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Quoter_facet_connection</name> + <internalEndpoint> + <portName>push_quoter</portName> + <kind>Facet</kind> + <instance>Quoter-Distributor-idd</instance> + </internalEndpoint> + <internalEndpoint> + <portName>read_quoter</portName> + <kind>SimplexReceptacle</kind> + <instance>Quoter-Broker-idd</instance> + </internalEndpoint> + </connection> + + <!-- @@ Runtime library name must match exactly in "location" tag --> + <artifact id="Quoter-Distributor_exec"> + <name>Distributor_exec</name> + <source><!-- @@ Not sure about this--></source> + <node><!-- blank --></node> + <location>Distributor_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createStockDistributorHome_Impl</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="Quoter-Distributor_svnt"> + <name>Distributor_svnt</name> + <source><!-- @@ Not sure --></source> + <node><!-- blank --></node> + <location>Distributor_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createStockDistributorHome_Servant</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="Quoter-Broker_exec"> + <name>Broker_exec</name> + <source><!-- @@ Not sure about this--></source> + <node><!-- blank --></node> + <location>Broker_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createStockBrokerHome_Impl</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="Quoter-Broker_svnt"> + <name>Broker_svnt</name> + <source><!-- @@ Not sure --></source> + <node><!-- blank --></node> + <location>Broker_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createStockBrokerHome_Servant</string> + </value> + </value> + </execParameter> + </artifact> +</Deployment:deploymentPlan> diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/ior b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/ior new file mode 100644 index 00000000000..9eb6b861131 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/ior @@ -0,0 +1 @@ +IOR:010000002400000049444c3a4349414f2f457865637574696f6e4d616e616765724461656d6f6e3a312e300001000000000000006c000000010102cd0f0000003132392e35392e3132392e32303000cdf606cdcd1b00000014010f005253542d6b9342d4650c00000000000100000001000000cd02000000000000000800000001cdcdcd004f4154010000001400000001cdcdcd01000100000000000901010000000000
\ No newline at end of file diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/package.tpd b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/package.tpd new file mode 100644 index 00000000000..b753de7b7ff --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/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="Stock.pcd"/> +</Deployment:TopLevelPackageDescription> diff --git a/TAO/CIAO/DAnCE/examples/Quoter/descriptors/runNodeDaemons.pl b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/runNodeDaemons.pl new file mode 100644 index 00000000000..81eb9204afc --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/descriptors/runNodeDaemons.pl @@ -0,0 +1,40 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "../../../../../../bin"; +use PerlACE::Run_Test; + +$status = 0; +$iorfile1 = PerlACE::LocalFile ("NodeApp1.ior"); +$iorfile2 = PerlACE::LocalFile ("NodeApp2.ior"); + +#for ($iter = 0; $iter <= $#ARGV; $iter++) { +# if ($ARGV[$iter] eq "-h" || $ARGV[$iter] eq "-?") { +# print "Run_Test Perl script for NodeApplicationTest \n\n"; +# print "run_test \n"; +# print "\n"; +# print "-h -- prints this information\n"; +# exit 0; +# } +#} + + +unlink $iorfile1; +unlink $iorfile2; + +$CIAO_ROOT=$ENV{'CIAO_ROOT'}; + +$SV1 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/Node_Daemon", + "-ORBEndpoint iiop://localhost:30000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); + +$SV2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/Node_Daemon", + "-ORBEndpoint iiop://localhost:40000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); + +$SV1->Spawn (); +$SV2->Spawn (); + +sleep (99999999999); diff --git a/TAO/CIAO/DAnCE/examples/Quoter/images/quoter.jpg b/TAO/CIAO/DAnCE/examples/Quoter/images/quoter.jpg Binary files differnew file mode 100644 index 00000000000..2f3edd11329 --- /dev/null +++ b/TAO/CIAO/DAnCE/examples/Quoter/images/quoter.jpg |