summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2009-12-09 19:53:34 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2009-12-09 19:53:34 +0000
commit6eb790d7092526d5a8706b7480171674d4b401a8 (patch)
treecb813919da613e0901706c732693fdfffc9e577a
parent4dc6480347193231aa216a6704f0982131b2ee5b (diff)
downloadATCD-6eb790d7092526d5a8706b7480171674d4b401a8.tar.gz
Wed Dec 9 19:52:16 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
* DAnCE/Deployment/Deployment_DeploymentPlan.idl * DAnCE/NodeApplication/NodeApplication_Impl.cpp * DAnCE/NodeApplication/NodeApplication_Impl.h * docs/schema/Basic_Deployment_Data.xsd * tools/Config_Handlers/Basic_Deployment_Data.cpp * tools/Config_Handlers/Basic_Deployment_Data.hpp * tools/Config_Handlers/CPD_Handler.cpp * tools/Config_Handlers/DnC_Dump.cpp * tools/Config_Handlers/PSPE_Handler.cpp Merged changes from local_facets branch from Will Otte to svn head. This is going to be used by at least ami4ccm. We are looking if there is a different way to determine whether we need to connect a local facet.
-rw-r--r--CIAO/ChangeLog16
-rw-r--r--CIAO/DAnCE/Deployment/Deployment_DeploymentPlan.idl1
-rw-r--r--CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp188
-rw-r--r--CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h8
-rw-r--r--CIAO/docs/schema/Basic_Deployment_Data.xsd1
-rw-r--r--CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp4
-rw-r--r--CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp3
-rw-r--r--CIAO/tools/Config_Handlers/CPD_Handler.cpp8
-rw-r--r--CIAO/tools/Config_Handlers/DnC_Dump.cpp1
-rw-r--r--CIAO/tools/Config_Handlers/PSPE_Handler.cpp8
10 files changed, 201 insertions, 37 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index 5f7fc20ea06..fb21c970442 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,19 @@
+Wed Dec 9 19:52:16 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Deployment/Deployment_DeploymentPlan.idl
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.h
+ * docs/schema/Basic_Deployment_Data.xsd
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/DnC_Dump.cpp
+ * tools/Config_Handlers/PSPE_Handler.cpp
+ Merged changes from local_facets branch from Will Otte to svn head.
+ This is going to be used by at least ami4ccm. We are looking if there
+ is a different way to determine whether we need to connect a local
+ facet.
+
Wed Dec 9 15:53:16 UTC 2009 Marcel Smit <msmit@remedy.nl>
* examples/BasicSP/descriptors/run_test.pl:
diff --git a/CIAO/DAnCE/Deployment/Deployment_DeploymentPlan.idl b/CIAO/DAnCE/Deployment/Deployment_DeploymentPlan.idl
index 14aac0c6f77..e461db51f17 100644
--- a/CIAO/DAnCE/Deployment/Deployment_DeploymentPlan.idl
+++ b/CIAO/DAnCE/Deployment/Deployment_DeploymentPlan.idl
@@ -11,6 +11,7 @@
module Deployment {
enum CCMComponentPortKind {
Facet,
+ LocalFacet,
SimplexReceptacle,
MultiplexReceptacle,
EventEmitter,
diff --git a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp
index 0e9a8475b7e..4cc59b43832 100644
--- a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp
+++ b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp
@@ -1633,20 +1633,20 @@ NodeApplication_Impl::getAllConnections()
DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
ACE_TEXT("provide_facet for connection %C endpoint %C started\n"),
this->plan_.connection[i].name.in(),
- this->plan_.connection[i].internalEndpoint[j].portName.in()));
+ name.c_str ()));
CORBA::String_var facet_name = CORBA::string_dup (name.c_str());
(*conn) [index].endpoint[0] = obj->provide_facet (facet_name.in());
DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
ACE_TEXT("provide_facet for connection %C endpoint %C finished\n"),
this->plan_.connection[i].name.in(),
- this->plan_.connection[i].internalEndpoint[j].portName.in()));
+ name.c_str ()));
}
else
{
DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
ACE_TEXT("provide_facet for connection %C endpoint %C started\n"),
this->plan_.connection[i].name.in(),
- this->plan_.connection[i].internalEndpoint[j].portName.in()));
+ name.c_str ()));
(*conn) [index].endpoint[0] = CORBA::Object::_duplicate (obj.in());
}
DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - provide_facet finished\n")));
@@ -1663,6 +1663,17 @@ NodeApplication_Impl::getAllConnections()
}
break;
}
+
+ case ::Deployment::LocalFacet:
+ {
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("Providing local facet for connection %C endpoint %C started\n"),
+ this->plan_.connection[i].name.in(),
+ this->plan_.connection[i].internalEndpoint[j].portName.in()));
+ (*conn) [index].endpoint[0] = CORBA::Object::_duplicate (obj.in());
+ break;
+ }
+
case ::Deployment::EventConsumer:
{
try
@@ -1740,8 +1751,7 @@ NodeApplication_Impl::finishLaunch (const ::Deployment::Connections & providedRe
#endif /* GEN_OSTREAM_OPS */
Components::CCMObject_var obj =
- Components::CCMObject::
- _narrow (this->instances_[inst]->ref.in ());
+ Components::CCMObject::_narrow (this->instances_[inst]->ref.in ());
if (CORBA::is_nil (obj.in ()))
{
@@ -1767,7 +1777,7 @@ NodeApplication_Impl::finishLaunch (const ::Deployment::Connections & providedRe
case ::Deployment::Facet:
{
DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
- ACE_TEXT("set for facet %C\n"), name.c_str ()));
+ ACE_TEXT("Set for facet %C\n"), name.c_str ()));
Components::CCMObject_var ext_inst;
try
{
@@ -1784,7 +1794,7 @@ NodeApplication_Impl::finishLaunch (const ::Deployment::Connections & providedRe
conn.internalEndpoint[1].portName.in(),
providedReference[i].endpoint[0].in());
}
- break;
+ break;
}
CORBA::Object_var tmp =
this->orb_->string_to_object (conn.externalReference[0].location.in());
@@ -1812,6 +1822,59 @@ NodeApplication_Impl::finishLaunch (const ::Deployment::Connections & providedRe
break;
}
+
+ case ::Deployment::LocalFacet:
+ {
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - set for local facet\n")));
+
+ try
+ {
+ if (conn.internalEndpoint.length () == 2)
+ {
+ ::Components::CCMObject_var facet =
+ ::Components::CCMObject::_narrow (providedReference[i].endpoint[0].in ());
+
+ ::Components::CCMObject_var recep =
+ ::Components::CCMObject::_narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->ref.in ());
+
+ ::CIAO::Deployment::Container_var cont =
+ ::CIAO::Deployment::Container::_narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->container->ref.in ());
+
+ if (CORBA::is_nil (facet.in ()) ||
+ CORBA::is_nil (recep.in ()) ||
+ CORBA::is_nil (cont.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch -")
+ ACE_TEXT ("Unable to narrow all participants for a local facet connection\n")));
+ throw ::Deployment::InvalidConnection ("", "");
+ }
+
+ this->connect_local_receptacle (facet.in (),
+ conn.internalEndpoint[0].portName.in (),
+ recep.in (),
+ conn.internalEndpoint[1].portName.in (),
+ cont.in ());
+ }
+ else
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch -")
+ ACE_TEXT ("Inappropriate endpoints for a local facet connection, expected 2 internalendpoints.\n")));
+ throw ::Deployment::InvalidConnection(conn.name.in (),
+ "Expected 2 internalenpoints.");
+ }
+ }
+ catch (::Deployment::InvalidConnection &ex)
+ {
+ throw;
+ }
+ catch (...)
+ {
+
+ }
+
+ break;
+ }
+
case ::Deployment::EventConsumer:
{
DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - set for consumer\n")));
@@ -1863,9 +1926,37 @@ NodeApplication_Impl::finishLaunch (const ::Deployment::Connections & providedRe
{
// What we should do with Cookie, returned from connect call???
DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - set for receptacle\n")));
- this->connect_receptacle (obj.in(),
- conn.internalEndpoint[0].portName.in(),
- providedReference[i].endpoint[0].in());
+
+ if (conn.internalEndpoint.length () == 2 &&
+ conn.internalEndpoint[1].kind == ::Deployment::LocalFacet)
+ {
+ ::Components::CCMObject_var facet =
+ ::Components::CCMObject::_narrow (providedReference[i].endpoint[0].in ());
+
+ ::CIAO::Deployment::Container_var cont =
+ ::CIAO::Deployment::Container::_narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->container->ref.in ());
+
+ if (CORBA::is_nil (facet.in ()) ||
+ CORBA::is_nil (cont.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch -")
+ ACE_TEXT ("Unable to narrow all participants for a local facet connection\n")));
+ throw ::Deployment::InvalidConnection ("", "");
+ }
+
+ this->connect_local_receptacle (facet.in (),
+ conn.internalEndpoint[1].portName.in (),
+ obj.in (),
+ conn.internalEndpoint[0].portName.in (),
+ cont.in ());
+ }
+ else
+ {
+ this->connect_receptacle (obj.in(),
+ conn.internalEndpoint[0].portName.in(),
+ providedReference[i].endpoint[0].in());
+ }
+
break;
}
case ::Deployment::EventEmitter:
@@ -1936,35 +2027,35 @@ NodeApplication_Impl::connect_receptacle (Components::CCMObject_ptr inst,
Components::Cookie* res = 0;
try
{
- DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ")
ACE_TEXT("connect SimplexReceptacle for %C started\n"), port_name.c_str()));
res = inst->connect (port_name.c_str(), facet);
- DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - connect finished\n")));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - connect finished\n")));
}
catch (const ::Components::InvalidName& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle - ")
ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n")));
throw ::Deployment::StartError("",
"Received InvalidName exception while connecting receptacle.");
}
catch (const ::Components::InvalidConnection& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle - ")
ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n")));
throw ::Deployment::InvalidConnection("",
"InvalidConnection caught while connecting receptacle.");
}
catch (const ::Components::AlreadyConnected& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle - ")
ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught AlreadyConnected exception while connecting receptacle");
}
catch (const ::Components::ExceededConnectionLimit& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle - ")
ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught ExceededConnectionLimit exception while connecting receptacle.");
@@ -1980,35 +2071,35 @@ NodeApplication_Impl::connect_receptacle_ext (Components::CCMObject_ptr inst,
Components::Cookie* res = 0;
try
{
- DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle_ext - ")
ACE_TEXT("connect SimplexReceptacle for %C started\n"), port_name.c_str()));
res = inst->connect (port_name.c_str(), facet);
- DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - connect finished\n")));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle_ext - connect finished\n")));
}
catch (const ::Components::InvalidName& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ")
ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n")));
throw ::Deployment::StartError("",
"Caught InvalidName exception while connecting external receptacle.");
}
catch (const ::Components::InvalidConnection& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ")
ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught InvalidConnection exception while connecting external receptacle.");
}
catch (const ::Components::AlreadyConnected& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ")
ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught AlreadyConnected exception while connecting external receptacle.");
}
catch (const ::Components::ExceededConnectionLimit& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ")
ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught ExceededConnectionLimit while connecting external receptacle.");
@@ -2017,6 +2108,33 @@ NodeApplication_Impl::connect_receptacle_ext (Components::CCMObject_ptr inst,
}
void
+NodeApplication_Impl::connect_local_receptacle (Components::CCMObject_ptr facet,
+ const ACE_CString &facet_name,
+ Components::CCMObject_ptr receptacle,
+ const ACE_CString &recep_name,
+ CIAO::Deployment::Container_ptr cont)
+{
+ DANCE_TRACE ("NodeApplication_Impl::connect_local_receptacle");
+
+ try
+ {
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT ("NodeApplication_Impl::connect_local_receptacle - ")
+ ACE_TEXT ("Connecting local facet %C to receptacle %C\n"),
+ facet_name.c_str (), recep_name.c_str ()));
+
+ cont->connect_local_facet (facet, facet_name.c_str (), receptacle, recep_name.c_str ());
+ }
+ catch (CORBA::Exception &ex)
+ { // @@todo: need better exception handling.
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("NodeApplication_Impl::connect_local_receptacle - ")
+ ACE_TEXT ("Caught unexpected CORBA excption while connecting port %C ")
+ ACE_TEXT ("to port %C\n"), facet_name.c_str (), recep_name.c_str ()));
+ throw ::Deployment::InvalidConnection ("",
+ "");
+ }
+}
+
+void
NodeApplication_Impl::connect_emitter (Components::CCMObject_ptr inst,
const ACE_CString& port_name,
CORBA::Object_ptr consumer)
@@ -2024,29 +2142,29 @@ NodeApplication_Impl::connect_emitter (Components::CCMObject_ptr inst,
Components::EventConsumerBase_var event = Components::EventConsumerBase::_unchecked_narrow (consumer);
try
{
- DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter - ")
ACE_TEXT("connect_consumer for %C started\n"), port_name.c_str()));
inst->connect_consumer (port_name.c_str(), event);
- DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter - ")
ACE_TEXT("connect_consumer finished\n")));
}
catch (const ::Components::InvalidName& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" ACE_TEXT(NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" ACE_TEXT(NodeApplication_Impl::connect_emitter - ")
ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidName exception\n")));
throw ::Deployment::StartError("",
"Caught InvalidName while connecting emitter.");
}
catch (const ::Components::AlreadyConnected& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_emitter - ")
ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::AlreadyConnected exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught AlreadyConnected exception while connecting emitter");
}
catch (const ::Components::InvalidConnection& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_emitter - ")
ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidConnection exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught InvalidConnection while connecting emitter.");
@@ -2061,21 +2179,21 @@ NodeApplication_Impl::connect_emitter_ext (Components::CCMObject_ptr inst,
Components::EventConsumerBase_var event = Components::EventConsumerBase::_unchecked_narrow (consumer);
try
{
- DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter_ext - ")
ACE_TEXT("connect_emitter_ext for %C started\n"), port_name.c_str()));
inst->connect_consumer (port_name.c_str(), event);
- DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - connect_emitter_ext finished\n")));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter_ext - connect_emitter_ext finished\n")));
}
catch (const ::Components::AlreadyConnected& )
{
- DANCE_DEBUG ( (LM_WARNING, ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ DANCE_DEBUG ( (LM_WARNING, ACE_TEXT("NodeApplication_Impl::connect_emitter_ext - ")
ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::AlreadyConnected exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught AlreadyConnected exception while connecting external emitter.");
}
catch (const ::Components::InvalidConnection& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_emitter_ext - ")
ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidConnection exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught InvalidConnection exception while connecting external emitter.");
@@ -2101,24 +2219,24 @@ NodeApplication_Impl::connect_publisher (Components::CCMObject_ptr inst,
try
{
res = inst->subscribe (port_name.c_str(), event);
- DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - successfully subscribed %C\n"),
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_publisher - successfully subscribed %C\n"),
port_name.c_str ()));
}
catch (const ::Components::InvalidName& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_publisher - ")
ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::InvalidName exception\n")));
throw ::Deployment::StartError("", "Caught InvalidName exception while connecting publisher");
}
catch (const ::Components::InvalidConnection& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_publisher - ")
ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::InvalidConnection exception\n")));
throw ::Deployment::InvalidConnection("", "Caught InvalidConnection exception while connecting publisher.");
}
catch (const ::Components::ExceededConnectionLimit& )
{
- DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_publisher - ")
ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::ExceededCOnnectionLimit exception\n")));
throw ::Deployment::InvalidConnection("", "Caught ExceededConnectionLimit exception while connecting publisher.");
}
diff --git a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h
index d511ca442d1..b46ddaa5566 100644
--- a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h
+++ b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h
@@ -174,7 +174,13 @@ namespace DAnCE
Components::Cookie* connect_receptacle_ext (Components::CCMObject_ptr inst,
const ACE_CString& port_name,
CORBA::Object_ptr facet);
-
+
+ void connect_local_receptacle (Components::CCMObject_ptr facet,
+ const ACE_CString &facet_name,
+ Components::CCMObject_ptr receptacle,
+ const ACE_CString &recep_name,
+ CIAO::Deployment::Container_ptr cont);
+
void connect_emitter (Components::CCMObject_ptr inst,
const ACE_CString& port_name,
CORBA::Object_ptr consumer);
diff --git a/CIAO/docs/schema/Basic_Deployment_Data.xsd b/CIAO/docs/schema/Basic_Deployment_Data.xsd
index ddcc349a42f..717f2a11f9f 100644
--- a/CIAO/docs/schema/Basic_Deployment_Data.xsd
+++ b/CIAO/docs/schema/Basic_Deployment_Data.xsd
@@ -291,6 +291,7 @@
<xsd:simpleType name="CCMComponentPortKind">
<xsd:restriction base="xsd:NCName">
<xsd:enumeration value="Facet"/>
+ <xsd:enumeration value="LocalFacet"/>
<xsd:enumeration value="SimplexReceptacle"/>
<xsd:enumeration value="MultiplexReceptacle"/>
<xsd:enumeration value="EventEmitter"/>
diff --git a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp
index 1e07c6cbfa2..2114fc7d99a 100644
--- a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp
+++ b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp
@@ -6575,6 +6575,7 @@ namespace CIAO
::std::basic_string< ACE_TCHAR > v (e.value ());
if (v == ACE_TEXT ("Facet")) v_ = Facet_l;
+ else if (v == ACE_TEXT ("LocalFacet")) v_ = LocalFacet_l;
else if (v == ACE_TEXT ("SimplexReceptacle")) v_ = SimplexReceptacle_l;
else if (v == ACE_TEXT ("MultiplexReceptacle")) v_ = MultiplexReceptacle_l;
else if (v == ACE_TEXT ("EventEmitter")) v_ = EventEmitter_l;
@@ -6594,6 +6595,7 @@ namespace CIAO
::std::basic_string< ACE_TCHAR > v (a.value ());
if (v == ACE_TEXT ("Facet")) v_ = Facet_l;
+ else if (v == ACE_TEXT ("LocalFacet")) v_ = LocalFacet_l;
else if (v == ACE_TEXT ("SimplexReceptacle")) v_ = SimplexReceptacle_l;
else if (v == ACE_TEXT ("MultiplexReceptacle")) v_ = MultiplexReceptacle_l;
else if (v == ACE_TEXT ("EventEmitter")) v_ = EventEmitter_l;
@@ -6607,6 +6609,7 @@ namespace CIAO
}
CCMComponentPortKind const CCMComponentPortKind::Facet (CCMComponentPortKind::Facet_l);
+ CCMComponentPortKind const CCMComponentPortKind::LocalFacet (CCMComponentPortKind::LocalFacet_l);
CCMComponentPortKind const CCMComponentPortKind::SimplexReceptacle (CCMComponentPortKind::SimplexReceptacle_l);
CCMComponentPortKind const CCMComponentPortKind::MultiplexReceptacle (CCMComponentPortKind::MultiplexReceptacle_l);
CCMComponentPortKind const CCMComponentPortKind::EventEmitter (CCMComponentPortKind::EventEmitter_l);
@@ -16648,6 +16651,7 @@ namespace CIAO
::std::basic_string< ACE_TCHAR > s;
if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::Facet) s = ACE_TEXT ("Facet");
+ else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::LocalFacet) s = ACE_TEXT ("LocalFacet");
else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::SimplexReceptacle) s = ACE_TEXT ("SimplexReceptacle");
else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::MultiplexReceptacle) s = ACE_TEXT ("MultiplexReceptacle");
else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::EventEmitter) s = ACE_TEXT ("EventEmitter");
diff --git a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp
index 50b1ec3283a..0500ea5d221 100644
--- a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp
+++ b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp
@@ -1774,6 +1774,7 @@ namespace CIAO
CCMComponentPortKind (::XSCRT::XML::Attribute< ACE_TCHAR > const&);
static CCMComponentPortKind const Facet;
+ static CCMComponentPortKind const LocalFacet;
static CCMComponentPortKind const SimplexReceptacle;
static CCMComponentPortKind const MultiplexReceptacle;
static CCMComponentPortKind const EventEmitter;
@@ -1784,7 +1785,7 @@ namespace CIAO
enum Value
{
- Facet_l, SimplexReceptacle_l, MultiplexReceptacle_l, EventEmitter_l, EventPublisher_l, EventConsumer_l, ExtendedPort_l, MirrorPort_l
+ Facet_l, LocalFacet_l, SimplexReceptacle_l, MultiplexReceptacle_l, EventEmitter_l, EventPublisher_l, EventConsumer_l, ExtendedPort_l, MirrorPort_l
};
diff --git a/CIAO/tools/Config_Handlers/CPD_Handler.cpp b/CIAO/tools/Config_Handlers/CPD_Handler.cpp
index afad9712eed..3519a2fd41e 100644
--- a/CIAO/tools/Config_Handlers/CPD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/CPD_Handler.cpp
@@ -34,6 +34,10 @@ namespace CIAO
toconfig.kind = Deployment::Facet;
break;
+ case CCMComponentPortKind::LocalFacet_l:
+ toconfig.kind = Deployment::LocalFacet;
+ break;
+
case CCMComponentPortKind::SimplexReceptacle_l:
toconfig.kind = Deployment::SimplexReceptacle;
break;
@@ -115,6 +119,10 @@ namespace CIAO
cpd.kind (CCMComponentPortKind::Facet);
break;
+ case ::Deployment::LocalFacet:
+ cpd.kind (CCMComponentPortKind::LocalFacet);
+ break;
+
case ::Deployment::SimplexReceptacle:
cpd.kind (CCMComponentPortKind::SimplexReceptacle);
break;
diff --git a/CIAO/tools/Config_Handlers/DnC_Dump.cpp b/CIAO/tools/Config_Handlers/DnC_Dump.cpp
index 3bee947afd3..3703761168d 100644
--- a/CIAO/tools/Config_Handlers/DnC_Dump.cpp
+++ b/CIAO/tools/Config_Handlers/DnC_Dump.cpp
@@ -209,6 +209,7 @@ namespace Deployment
ACE_DEBUG ((LM_DEBUG, "%skind: ", Dump_Obj::indent()));
switch (compportdesc.kind) {
case Facet: ACE_DEBUG ((LM_DEBUG, "Facet\n")); break;
+ case LocalFacet: ACE_DEBUG ((LM_DEBUG, "LocalFacet\n")); break;
case SimplexReceptacle: ACE_DEBUG ((LM_DEBUG, "SimplexReceptacle\n")); break;
case MultiplexReceptacle: ACE_DEBUG ((LM_DEBUG, "MultiplexReceptacle\n")); break;
case EventEmitter: ACE_DEBUG ((LM_DEBUG, "EventEmitter\n")); break;
diff --git a/CIAO/tools/Config_Handlers/PSPE_Handler.cpp b/CIAO/tools/Config_Handlers/PSPE_Handler.cpp
index 28d29bf8f34..9b070443749 100644
--- a/CIAO/tools/Config_Handlers/PSPE_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/PSPE_Handler.cpp
@@ -62,6 +62,10 @@ namespace CIAO
dest.kind = Deployment::Facet;
break;
+ case CCMComponentPortKind::LocalFacet_l:
+ dest.kind = Deployment::LocalFacet;
+ break;
+
case CCMComponentPortKind::SimplexReceptacle_l:
dest.kind = Deployment::SimplexReceptacle;
break;
@@ -117,6 +121,10 @@ namespace CIAO
pspe.kind (CCMComponentPortKind::Facet);
break;
+ case ::Deployment::LocalFacet:
+ pspe.kind (CCMComponentPortKind::LocalFacet);
+ break;
+
case ::Deployment::SimplexReceptacle:
pspe.kind (CCMComponentPortKind::SimplexReceptacle);
break;