summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CIDLC/ServantHeaderGenerator.cpp11
-rw-r--r--CIDLC/ServantSourceGenerator.cpp36
2 files changed, 45 insertions, 2 deletions
diff --git a/CIDLC/ServantHeaderGenerator.cpp b/CIDLC/ServantHeaderGenerator.cpp
index 7f10994648d..2c115143fa9 100644
--- a/CIDLC/ServantHeaderGenerator.cpp
+++ b/CIDLC/ServantHeaderGenerator.cpp
@@ -722,6 +722,17 @@ namespace
<< STRS[EXCP_SYS] << "," << endl
<< STRS[EXCP_BET] << "));" << endl;
+ // @@ GD added below code.
+
+ os << "// CIAO-specific in " << STRS[COMP_ECB] << "." << endl
+ << "virtual void" << endl
+ << "ciao_push_event ( ::Components::EventBase *ev," << endl
+ << "const char * source_id" << endl
+ << STRS[ENV_HDR] << ")" << endl
+ << STRS[EXCP_START] << " "
+ << STRS[EXCP_SYS] << "," << endl
+ << STRS[EXCP_BET] << "));" << endl;
+
os << "// CIAO-specific in " << STRS[COMP_ECB] << "." << endl
<< "virtual CORBA::Boolean" << endl
<< "ciao_is_substitutable (" << endl
diff --git a/CIDLC/ServantSourceGenerator.cpp b/CIDLC/ServantSourceGenerator.cpp
index 5c5c2af43a6..98d9626d11f 100644
--- a/CIDLC/ServantSourceGenerator.cpp
+++ b/CIDLC/ServantSourceGenerator.cpp
@@ -822,6 +822,13 @@ namespace
<< "ACE_CHECK;" << endl
<< "}";
+ // @@ GD Modified Code Below
+
+ os << endl;
+ os << "ACE_CString source_id = this->_ciao_instance_id ();";
+ os << "source_id += \"_\";" << endl;
+ os << "source_id += \"" << p.name () << "\";//port name" << endl << endl;
+
os << "for (ACE_Active_Map_Manager< " << endl
<< " " << STRS[COMP_ECB] << "_var>::iterator giter =" << endl
<< " this->ciao_publishes_" << p.name ()
@@ -830,8 +837,9 @@ namespace
<< "_generic_map_.end ();" << endl
<< "++giter)" << endl
<< "{"
- << "(*giter).int_id_->push_event" << " (" << endl
- << "ev" << endl
+ << "(*giter).int_id_->ciao_push_event" << " (" << endl
+ << "ev," << endl
+ << "source_id.c_str ()" << endl
<< STRS[ENV_ARG] << ");"
<< "ACE_CHECK;" << endl
<< "}"
@@ -2218,6 +2226,30 @@ namespace
<< "ACE_THROW ( " << STRS[EXCP_BET] << " ());" << endl
<< "}";
+ // GD Added below code
+ // Begin
+
+ os << "// Inherited from " << STRS[COMP_ECB] << "." << endl
+ << "void" << endl
+ << scope_.name () << "_Servant::";
+
+ Traversal::ConsumerData::belongs (c, simple_belongs_);
+
+ os << "Consumer_" << c.name ()
+ << "_Servant::ciao_push_event (" << endl
+ << "::Components::EventBase *ev," << endl
+ << "const char * source_id" << endl
+ << STRS[ENV_SRC] << ")" << endl
+ << STRS[EXCP_START] << " "
+ << STRS[EXCP_SYS] << "," << endl
+ << STRS[EXCP_BET] << "))" << endl
+ << "{"
+ << "ACE_UNUSED_ARG (source_id);" << endl
+ << "this->push_event (ev);" << endl
+ << "}";
+
+ // End
+
os << "CORBA::Boolean" << endl
<< scope_.name () << "_Servant::";