summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordengg <dengg@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-10-10 21:56:38 +0000
committerdengg <dengg@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-10-10 21:56:38 +0000
commit9203537910e39c33c84b23c74616438d28c306c0 (patch)
treec26d529ddb9334332e94e65e33e04ce5c127ad39
parent78bb9e50660f118edbbf5b2050ef2666f4876b01 (diff)
downloadATCD-9203537910e39c33c84b23c74616438d28c306c0.tar.gz
Checked in my recent changes and bug fixes for the RTEC and their filtering support, CIDL changes, and some IDL enhancements.
-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::";