summaryrefslogtreecommitdiff
path: root/CIAO/CIDLC/ServantSourceGenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/CIDLC/ServantSourceGenerator.cpp')
-rw-r--r--CIAO/CIDLC/ServantSourceGenerator.cpp1210
1 files changed, 500 insertions, 710 deletions
diff --git a/CIAO/CIDLC/ServantSourceGenerator.cpp b/CIAO/CIDLC/ServantSourceGenerator.cpp
index f4d715b523d..b15903ecde0 100644
--- a/CIAO/CIDLC/ServantSourceGenerator.cpp
+++ b/CIAO/CIDLC/ServantSourceGenerator.cpp
@@ -11,6 +11,7 @@
#include "ModuleEmitter.hpp"
#include "InterfaceEmitter.hpp"
#include "Literals.hpp"
+#include "Upcase.hpp"
#include <ostream>
#include <sstream>
@@ -179,7 +180,7 @@ namespace
// Overridden by facet and home operation emitters to do nothing.
virtual void
- gen_swap_related (Type& o)
+ gen_swap_related (Type&)
{
string swap_option = ctx.cl ().get_value ("custom-container", "");
bool swapping = (swap_option == "upgradeable");
@@ -216,22 +217,8 @@ namespace
}
virtual void
- raises_pre (Type&)
- {
- os << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl;
- }
-
- virtual void
- raises_none (Type&)
- {
- os << STRS[EXCP_SNGL];
- }
-
- virtual void
- raises_post (Type&)
+ raises (Type&)
{
- os << "))";
}
virtual void
@@ -334,8 +321,7 @@ namespace
Traversal::ReadWriteAttribute::belongs (a, write_belongs_);
- os << " " << a.name () << endl
- << ")" << endl;
+ os << " " << a.name () << ")" << endl;
}
};
@@ -376,8 +362,7 @@ namespace
name (SemanticGraph::ReadWriteAttribute& a)
{
os << scope_.name () << "_Servant_T<T>::"
- << a.name () << " (" << endl
- << ")" << endl;
+ << a.name () << " ()" << endl;
}
// ReadAttribute
@@ -401,8 +386,7 @@ namespace
name (SemanticGraph::ReadAttribute& a)
{
os << scope_.name () << "_Servant_T<T>::"
- << a.name () << " (" << endl
- << ")" << endl;
+ << a.name () << " ()" << endl;
}
};
@@ -461,10 +445,8 @@ namespace
Traversal::Receives receives;
Traversal::Belongs returns;
- Traversal::Raises raises;
operation_emitter.edge_traverser (receives);
operation_emitter.edge_traverser (returns);
- operation_emitter.edge_traverser (raises);
ParameterEmitter<Traversal::InParameter> in_param (ctx);
ParameterEmitter<Traversal::InOutParameter> inout_param (ctx);
@@ -476,7 +458,6 @@ namespace
ReturnTypeNameEmitter return_type_emitter (ctx);
FullTypeNameEmitter type_name_emitter (ctx);
returns.node_traverser (return_type_emitter);
- raises.node_traverser (type_name_emitter);
Traversal::Belongs in_belongs, inout_belongs, out_belongs;
in_param.edge_traverser (in_belongs);
@@ -496,31 +477,23 @@ namespace
os << "template <typename T>" << endl
<< "::CORBA::Object_ptr" << endl
- << i.name () << "_Servant_T<T>::_get_component (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << i.name () << "_Servant_T<T>::_get_component ()" << endl
<< "{"
<< STRS[COMP_SC] << "_var sc =" << endl
- << " " << STRS[COMP_SC] << "::_narrow (" << endl
- << " this->ctx_.in ()" << endl
- << " " << ");"
+ << " " << STRS[COMP_SC] << "::_narrow (this->ctx_.in ());"
<< endl
<< "if (! ::CORBA::is_nil (sc.in ()))" << endl
<< "{"
- << "return sc->get_CCM_object (" << endl
- << ");"
+ << "return sc->get_CCM_object ();"
<< "}"
<< "::Components::EntityContext_var ec =" << endl
- << "::Components::EntityContext::_narrow (" << endl
- << "this->ctx_.in ()" << endl
- << ");"
+ << " ::Components::EntityContext::_narrow (this->ctx_.in ());"
<< endl
<< "if (! ::CORBA::is_nil (ec.in ()))" << endl
<< "{"
- << "return ec->get_CCM_object (" << endl
- << ");"
+ << "return ec->get_CCM_object ();"
<< "}"
- << STRS[ACE_TR] << " ( ::CORBA::INTERNAL (), 0);" << endl
+ << "throw ::CORBA::INTERNAL ();" << endl
<< "}" << endl;
// Close the facet servant's namespace.
@@ -563,9 +536,7 @@ namespace
os << "_ptr" << endl
<< scope_.name () << "_Context::get_connection_"
- << u.name () << " (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << u.name () << " ()" << endl
<< "{"
<< "return ";
@@ -583,10 +554,6 @@ namespace
Traversal::SingleUserData::belongs (u, belongs_);
os << "_ptr c)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_AC] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
<< "{"
<< "if (! ::CORBA::is_nil (this->ciao_uses_"
<< u.name () << "_.in ()))" << endl
@@ -610,19 +577,14 @@ namespace
os << "_ptr" << endl
<< scope_.name () << "_Context::disconnect_"
<< u.name () << " ()" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_NC] << "))" << endl
<< "{"
<< "if ( ::CORBA::is_nil (this->ciao_uses_"
<< u.name () << "_.in ()))" << endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_NC] << " ()," << endl;
-
- Traversal::SingleUserData::belongs (u, belongs_);
+ << "throw "
+ << STRS[EXCP_NC] << " ();" << endl;
- os << "::_nil ());" << endl
+ os << endl
<< "}"
<< "return this->ciao_uses_" << u.name ()
<< "_._retn ();" << endl
@@ -634,54 +596,51 @@ namespace
{
os << u.scoped_name () << "Connections *" << endl
<< scope_.name () << "_Context::get_connections_"
- << u.name () << " (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
- << "{"
- << u.scoped_name () << "Connections *tmp_retv = 0;"
+ << u.name () << " ()" << endl
+ << "{";
+
+ bool static_cfg =
+ ctx.cl ().get_value ("static-config", false);
+
+ if (! static_cfg)
+ {
+ os << "ACE_READ_GUARD_RETURN ("
+ << "TAO_SYNCH_MUTEX," << endl
+ << "mon," << endl
+ << "this->" << u.name () << "_lock_," << endl
+ << "0);" << endl;
+ }
+
+ os << u.scoped_name () << "Connections *tmp_retv = 0;"
<< "ACE_NEW_THROW_EX ("
<< "tmp_retv," << endl
<< u.scoped_name () << "Connections (" << endl
<< "this->ciao_uses_"
- << u.name () << "_.current_size ())," << endl
+ << u.name () << "_.size ())," << endl
<< "::CORBA::NO_MEMORY ());" << endl
<< u.scoped_name () << "Connections_var retv"
<< " = tmp_retv;" << endl
<< "retv->length (this->ciao_uses_" << u.name ()
- << "_.current_size ());" << endl;
+ << "_.size ());" << endl;
os << "::CORBA::ULong i = 0;" << endl;
- os << "for (ACE_Active_Map_Manager< " << endl
- << " ";
-
- Traversal::MultiUserData::belongs (u, belongs_);
+ string uc_port_name (u.name ().str ());
+ str_upcase (uc_port_name);
- os << "_var>::iterator iter =" << endl
- << " this->ciao_uses_" << u.name () << "_.begin ();" << endl
+ os << "for (" << uc_port_name << "_TABLE::const_iterator iter ="
+ << endl
+ << " this->ciao_uses_" << u.name () << "_.begin ();" << endl
<< "iter != this->ciao_uses_" << u.name () << "_.end ();"
<< endl
- << "++iter)" << endl
+ << "++iter, ++i)" << endl
<< "{"
- << "ACE_Active_Map_Manager< " << endl;
-
- Traversal::MultiUserData::belongs (u, belongs_);
-
- os << "_var>::ENTRY & entry = *iter;" << endl
- << "retv[i].objref = ";
-
- Traversal::MultiUserData::belongs (u, belongs_);
-
- os << "::_narrow (" << endl
- << "entry.int_id_.in ()" << endl
- << ");"
- << endl;
+ << "retv[i].objref = iter->second;" << endl;
os << "ACE_NEW_THROW_EX ("
<< "retv[i].ck.inout ()," << endl
- << "::CIAO::Map_Key_Cookie (entry.ext_id_)," << endl
- << "::CORBA::NO_MEMORY ());" << endl
- << "++i;" << endl
+ << "::CIAO::Cookie_Impl (iter->first)," << endl
+ << "::CORBA::NO_MEMORY ());"
<< "}";
os << "return retv._retn ();" << endl
@@ -694,42 +653,51 @@ namespace
Traversal::MultiUserData::belongs (u, belongs_);
os << "_ptr c)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_ECL] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
<< "{"
<< "if ( ::CORBA::is_nil (c))" << endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_IC] << " (), 0);" << endl
+ << "throw "
+ << STRS[EXCP_IC] << " ();" << endl
<< "}";
+ os << "std::pair<" << uc_port_name
+ << "_TABLE::iterator, bool> result;"
+ << uc_port_name << "_TABLE::value_type entry;"
+ << "entry.first = c->_hash (ACE_UINT32_MAX);"
+ << "entry.second = ";
+
Traversal::MultiUserData::belongs (u, belongs_);
- os << "_var conn = ";
+ os << "::_duplicate (c);" << endl;
- Traversal::MultiUserData::belongs (u, belongs_);
+ if (! static_cfg)
+ {
+ os << "{"
+ << "ACE_WRITE_GUARD_RETURN (TAO_SYNCH_MUTEX," << endl
+ << "mon," << endl
+ << "this->" << u.name () << "_lock_," << endl
+ << "0);" << endl;
+ }
- os << "::_duplicate (c);"
- << "ACE_Active_Map_Manager_Key key;" << endl;
+ os << "result = this->ciao_uses_" << u.name ()
+ << "_.insert (entry);";
- os << "if (this->ciao_uses_" << u.name ()
- << "_.bind (conn.in (), key) == -1)" << endl
+ if (! static_cfg)
+ {
+ os << "}";
+ }
+
+ os << "if (! result.second)" << endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_IC] << " (), 0);" << endl
+ << "throw "
+ << STRS[EXCP_IC] << " ();" << endl
<< "}";
- os << "conn._retn ();" << endl;
-
os << STRS[COMP_CK] << " * ck = 0;"
- << "ACE_NEW_THROW_EX ("
- << "ck," << endl
- << "::CIAO::Map_Key_Cookie (key)," << endl
+ << "ACE_NEW_THROW_EX (ck," << endl
+ << "::CIAO::Cookie_Impl (entry.first)," << endl
<< "::CORBA::NO_MEMORY ());" << endl;
-
os << "return ck;" << endl
<< "}";
@@ -739,36 +707,50 @@ namespace
<< scope_.name () << "_Context::disconnect_"
<< u.name () << " (" << endl
<< STRS[COMP_CK] << " * ck)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
<< "{";
Traversal::MultiUserData::belongs (u, belongs_);
os << "_var retv;"
- << "ACE_Active_Map_Manager_Key key;" << endl;
+ << "::CORBA::ULong key = 0UL;"
+ << uc_port_name << "_TABLE::size_type n = 0UL;" << endl;
- os << "if (! CIAO::Map_Key_Cookie::extract (ck, key))"
+ os << "if (ck == 0 || ! ::CIAO::Cookie_Impl::extract (ck, key))"
<< endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_IC] << " ()," << endl;
+ << "throw " << STRS[EXCP_IC] << " ();"
+ << "}";
- Traversal::MultiUserData::belongs (u, belongs_);
+ if (! static_cfg)
+ {
+ os << "{"
+ << "ACE_WRITE_GUARD_RETURN (TAO_SYNCH_MUTEX," << endl
+ << "mon," << endl
+ << "this->" << u.name () << "_lock_," << endl;
- os << "::_nil ());" << endl
- << "}";
+ Traversal::MultiUserData::belongs (u, belongs_);
+
+ os << "::_nil ());" << endl;
+ }
- os << "if (this->ciao_uses_" << u.name ()
- << "_.unbind (key, retv) != 0)" << endl
+ os << uc_port_name << "_TABLE::iterator iter =" << endl
+ << " this->ciao_uses_" << u.name () << "_.find (key);" << endl
+ << "if (iter == this->ciao_uses_" << u.name ()
+ << "_.end ())" << endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_IC] << " ()," << endl;
+ << "throw " << STRS[EXCP_IC] << " ();"
+ << "}"
+ << "retv = iter->second;"
+ << "n = this->ciao_uses_" << u.name () << "_.erase (key);";
- Traversal::MultiUserData::belongs (u, belongs_);
+ if (! static_cfg)
+ {
+ os << "}";
+ }
- os << "::_nil ());" << endl
+ os << "if (n != 1UL)" << endl
+ << "{"
+ << "throw " << STRS[EXCP_IC] << " ();"
<< "}";
os << "return retv._retn ();" << endl
@@ -784,48 +766,46 @@ namespace
Traversal::PublisherData::belongs (p, belongs_);
- os << " *ev" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
- << "{"
- << "for (ACE_Active_Map_Manager< " << endl
- << " ";
+ os << " *ev)" << endl
+ << "{";
- Traversal::PublisherData::belongs (p, belongs_);
+ if (! ctx.cl ().get_value ("static-config", false))
+ {
+ os << "ACE_READ_GUARD (TAO_SYNCH_MUTEX," << endl
+ << "mon," << endl
+ << "this->" << p.name () << "_lock_);" << endl;
+ }
+
+ string uc_port_name (p.name ().str ());
+ str_upcase (uc_port_name);
- os << "Consumer_var>::iterator iter =" << endl
- << " this->ciao_publishes_" << p.name ()
- << "_map_.begin ();" << endl
+ os << "for (" << uc_port_name
+ << "_TABLE::const_iterator iter =" << endl
+ << " this->ciao_publishes_" << p.name ()
+ << "_.begin ();" << endl
<< "iter != this->ciao_publishes_" << p.name ()
- << "_map_.end ();" << endl
+ << "_.end ();" << endl
<< "++iter)" << endl
<< "{"
- << "(*iter).int_id_->push_";
+ << "iter->second->push_";
Traversal::PublisherData::belongs (p, simple_belongs_);
- os << " (" << endl
- << "ev" << endl
- << ");" << endl
+ os << " (ev);"
<< "}";
- // @@ GD Modified Code Below
+ os << "ACE_CString source_id = this->_ciao_instance_id ();"
+ << "source_id += \"_" << p.name () << "\";" << endl;
- 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 ()
- << "_generic_map_.begin ();" << endl
+ os << "for (" << uc_port_name
+ << "_GENERIC_TABLE::const_iterator giter =" << endl
+ << " this->ciao_publishes_" << p.name ()
+ << "_generic_.begin ();" << endl
<< "giter != this->ciao_publishes_" << p.name ()
- << "_generic_map_.end ();" << endl
+ << "_generic_.end ();" << endl
<< "++giter)" << endl
<< "{"
- << "(*giter).int_id_->ciao_push_event" << " (" << endl
- << "ev," << endl
+ << "giter->second->ciao_push_event (ev," << endl
<< "source_id.c_str ()," << endl;
Traversal::PublisherData::belongs (p, enclosing_belongs_);
@@ -834,8 +814,7 @@ namespace
Traversal::PublisherData::belongs (p, simple_belongs_);
- os << endl
- << ");" << endl
+ os << ");"
<< "}"
<< "}";
@@ -846,60 +825,99 @@ namespace
Traversal::PublisherData::belongs (p, belongs_);
os << "Consumer_ptr c)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_ECL] << "))" << endl
<< "{"
<< "if ( ::CORBA::is_nil (c))" << endl
<< "{"
- << STRS[ACE_TR] << " ( ::CORBA::BAD_PARAM (), 0);" << endl
+ << "throw ::CORBA::BAD_PARAM ();" << endl
<< "}";
+ os << "std::pair<" << uc_port_name
+ << "_TABLE::iterator, bool> result;"
+ << uc_port_name << "_TABLE::value_type entry;"
+ << "entry.first = c->_hash (ACE_UINT32_MAX);"
+ << "entry.second = ";
+
Traversal::PublisherData::belongs (p, belongs_);
- os << "Consumer_var sub =" << endl
- << " ";
+ os << "Consumer::_duplicate (c);" << endl;
- Traversal::PublisherData::belongs (p, belongs_);
+ if (! ctx.cl ().get_value ("static-config", false))
+ {
+ os << "{"
+ << "ACE_WRITE_GUARD_RETURN (TAO_SYNCH_MUTEX," << endl
+ << "mon," << endl
+ << "this->" << p.name () << "_lock_," << endl
+ << "0);" << endl;
+ }
- os << "Consumer::_duplicate (c);" << endl
- << "ACE_Active_Map_Manager_Key key;"
- << "this->ciao_publishes_" << p.name ()
- << "_map_.bind (sub.in (), key);"
- << "sub._retn ();" << endl
- << STRS[COMP_CK] << " * retv = 0;"
- << "ACE_NEW_THROW_EX ("
- << "retv," << endl
- << "::CIAO::Map_Key_Cookie (key)," << endl
- << "::CORBA::NO_MEMORY ());" << endl
- << "return retv;" << endl
+ os << "result = this->ciao_publishes_" << p.name ()
+ << "_.insert (entry);";
+
+ if (! ctx.cl ().get_value ("static-config", false))
+ {
+ os << "}";
+ }
+
+ os << "if (! result.second)" << endl
+ << "{"
+ << "/* Already subscribed, ignore & "
+ << "return new cookie with same key. */"
+ << "}";
+
+ os << STRS[COMP_CK] << " * retv = 0;"
+ << "ACE_NEW_THROW_EX (retv," << endl
+ << "::CIAO::Cookie_Impl (entry.first)," << endl
+ << "::CORBA::NO_MEMORY ());" << endl;
+
+ os << "return retv;"
<< "}";
os << STRS[COMP_CK] << " *" << endl
<< scope_.name () << "_Context::subscribe_"
<< p.name () << "_generic (" << endl
- << STRS[COMP_ECB] << "_ptr c)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_ECL] << "))" << endl
+ << "::Components::EventConsumerBase_ptr c)"
<< "{"
<< "if ( ::CORBA::is_nil (c))" << endl
<< "{"
- << STRS[ACE_TR] << " ( ::CORBA::BAD_PARAM (), 0);" << endl
+ << "throw ::CORBA::BAD_PARAM ();" << endl
<< "}";
- os << STRS[COMP_ECB] << "_var sub =" << endl
- << " " << STRS[COMP_ECB] << "::_duplicate (c);" << endl
- << "ACE_Active_Map_Manager_Key key;"
- << "this->ciao_publishes_" << p.name ()
- << "_generic_map_.bind (sub.in (), key);"
- << "sub._retn ();" << endl
- << STRS[COMP_CK] << " * retv = 0;"
- << "ACE_NEW_THROW_EX ("
- << "retv," << endl
- << "::CIAO::Map_Key_Cookie (key)," << endl
- << "::CORBA::NO_MEMORY ());" << endl
- << "return retv;" << endl
+ os << "std::pair<" << uc_port_name
+ << "_GENERIC_TABLE::iterator, bool> result;"
+ << uc_port_name << "_GENERIC_TABLE::value_type entry;"
+ << "entry.first = c->_hash (ACE_UINT32_MAX);"
+ << "entry.second = "
+ << "::Components::EventConsumerBase::_duplicate (c);" << endl;
+
+ if (! ctx.cl ().get_value ("static-config", false))
+ {
+ os << "{"
+ << "ACE_WRITE_GUARD_RETURN (TAO_SYNCH_MUTEX," << endl
+ << "mon," << endl
+ << "this->" << p.name () << "_lock_," << endl
+ << "0);" << endl;
+ }
+
+ os << "result = this->ciao_publishes_" << p.name ()
+ << "_generic_.insert (entry);";
+
+ if (! ctx.cl ().get_value ("static-config", false))
+ {
+ os << "}";
+ }
+
+ os << "if (! result.second)" << endl
+ << "{"
+ << "/* Already subscribed, ignore & "
+ << "return new cookie with same key. */"
+ << "}";
+
+ os << STRS[COMP_CK] << " * retv = 0;"
+ << "ACE_NEW_THROW_EX (retv," << endl
+ << "::CIAO::Cookie_Impl (entry.first)," << endl
+ << "::CORBA::NO_MEMORY ());" << endl;
+
+ os << "return retv;"
<< "}";
Traversal::PublisherData::belongs (p, belongs_);
@@ -908,44 +926,74 @@ namespace
<< scope_.name () << "_Context::unsubscribe_"
<< p.name () << " (" << endl
<< STRS[COMP_CK] << " *ck)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
<< "{"
- << "ACE_Active_Map_Manager_Key key;" << endl
- << "if (ck == 0 || ::CIAO::Map_Key_Cookie::extract (ck, key) == false)"
- << endl
+ << "::CORBA::ULong key = 0UL;"
+ << uc_port_name << "_TABLE::size_type n = 0UL;" << endl;
+
+ os << "if (ck == 0 || ! ::CIAO::Cookie_Impl::"
+ << "extract (ck, key))" << endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_IC] << " ()," << endl;
+ << "throw " << STRS[EXCP_IC] << " ();"
+ << "}";
- Traversal::PublisherData::belongs (p, belongs_);
+ if (! ctx.cl ().get_value ("static-config", false))
+ {
+ os << "{"
+ << "ACE_WRITE_GUARD_RETURN (TAO_SYNCH_MUTEX," << endl
+ << "mon," << endl
+ << "this->" << p.name () << "_lock_," << endl;
- os << "Consumer::_nil ());" << endl
- << "}";
+ Traversal::PublisherData::belongs (p, belongs_);
+
+ os << "Consumer::_nil ());" << endl;
+ }
+
+ os << uc_port_name << "_TABLE::iterator iter =" << endl
+ << " this->ciao_publishes_"
+ << p.name () << "_.find (key);" << endl;
+
+ os << "if (iter != this->ciao_publishes_"
+ << p.name () << "_.end ())" << endl
+ << "{";
Traversal::PublisherData::belongs (p, belongs_);
- os << "Consumer_var retv;"
- << "if (this->ciao_publishes_" << p.name ()
- << "_map_.unbind (key, retv) == 0)" << endl
+ os << "Consumer_var retv = iter->second;"
+ << "n = this->ciao_publishes_"
+ << p.name () << "_.erase (key);" << endl;
+
+ os << "if (n == 1UL)" << endl
<< "{"
- << "return retv._retn ();" << endl
+ << "return retv._retn ();"
+ << "}"
+ << "throw " << STRS[EXCP_IC] << " ();"
<< "}";
- os << STRS[COMP_ECB] << "_var ecb;" << endl;
+ os << uc_port_name << "_GENERIC_TABLE::iterator giter =" << endl
+ << " this->ciao_publishes_" << p.name ()
+ << "_generic_.find (key);" << endl;
- os << "if (this->ciao_publishes_" << p.name ()
- << "_generic_map_.unbind (key, ecb) != 0)" << endl
+ os << "if (giter == this->ciao_publishes_"
+ << p.name () << "_generic_.end ())" << endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_IC] << " ()," << endl;
+ << "throw "
+ << STRS[EXCP_IC] << " ();"
+ << "}";
- Traversal::PublisherData::belongs (p, belongs_);
+ os << "n = this->ciao_publishes_" << p.name ()
+ << "_generic_.erase (key);" << endl;
- os << "Consumer::_nil ());" << endl
- << "}"
- << "return ";
+ if (! ctx.cl ().get_value ("static-config", false))
+ {
+ os << "}";
+ }
+
+ os << "if (n != 1UL)" << endl
+ << "{"
+ << "throw " << STRS[EXCP_IC] << " ();"
+ << "}";
+
+ os << "return ";
Traversal::PublisherData::belongs (p, belongs_);
@@ -962,18 +1010,18 @@ namespace
Traversal::EmitterData::belongs (e, belongs_);
- os << " *ev" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ os << " *ev)" << endl
+ << "{"
+ << "if (! ::CORBA::is_nil (this->ciao_emits_"
+ << e.name () << "_consumer_.in ()))" << endl
<< "{"
<< "this->ciao_emits_" << e.name ()
<< "_consumer_->push_";
Traversal::EmitterData::belongs (e, simple_belongs_);
- os << " (" << endl
- << "ev" << endl
- << ");" << endl
+ os << " (ev);" << endl
+ << "}"
<< "}";
os << "void" << endl
@@ -983,9 +1031,6 @@ namespace
Traversal::EmitterData::belongs (e, belongs_);
os << "Consumer_ptr c)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_AC] << "))" << endl
<< "{"
<< "if ( ::CORBA::is_nil (c))" << endl
<< "{"
@@ -1009,19 +1054,14 @@ namespace
os << "Consumer_ptr" << endl
<< scope_.name () << "_Context::disconnect_"
<< e.name () << " ()" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_NC] << "))" << endl
<< "{"
<< "if ( ::CORBA::is_nil (this->ciao_emits_" << e.name ()
<< "_consumer_.in ()))" << endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_NC] << " ()," << endl;
+ << "throw "
+ << STRS[EXCP_NC] << " ();" << endl;
- Traversal::EmitterData::belongs (e, belongs_);
-
- os << "Consumer::_nil ());" << endl
+ os << endl
<< "}"
<< "return this->ciao_emits_" << e.name ()
<< "_consumer_._retn ();" << endl
@@ -1052,67 +1092,49 @@ namespace
virtual void
traverse (SemanticGraph::Publisher& p)
{
+ string uc_port_name (p.name ().str ());
+ str_upcase (uc_port_name);
+
os << "if (ACE_OS::strcmp (publisher_name, \""
<< p.name ().unescaped_str () << "\") == 0)" << endl
<< "{"
<< "_ciao_size = this->ciao_publishes_" << p.name ()
- << "_map_.current_size ();" << endl
- << "ACE_NEW_THROW_EX ("
+ << "_.size ();" << endl;
+
+ os << "ACE_NEW_THROW_EX ("
<< "tmp," << endl
<< STRS[COMP_CD] << " (_ciao_size)," << endl
<< "::CORBA::NO_MEMORY ());" << endl
<< "retval = tmp;"
- << "retval->length (_ciao_size);" << endl
- << "ACE_Active_Map_Manager<" << endl;
-
- Traversal::PublisherData::belongs (p, belongs_);
-
- os << "Consumer_var>::iterator end =" << endl
- << " this->ciao_publishes_" << p.name ()
- << "_map_.end ();" << endl
- << "for (ACE_Active_Map_Manager<" << endl
- << " ";
-
- Traversal::PublisherData::belongs (p, belongs_);
-
- os << "Consumer_var>::iterator iter =" << endl
- << " this->ciao_publishes_" << p.name ()
- << "_map_.begin ();"
- << "iter != end;"
- << "++iter)" << endl
- << "{"
- << "ACE_Active_Map_Manager<" << endl;
-
- Traversal::PublisherData::belongs (p, belongs_);
-
- os << "Consumer_var>::entry &e = *iter;" << endl;
-
- Traversal::PublisherData::belongs (p, belongs_);
-
- os << "Consumer_var c =" << endl;
-
- Traversal::PublisherData::belongs (p, belongs_);
-
- os << "Consumer::_narrow (" << endl
- << "e.int_id_.in ()" << endl
- << ");"
+ << "retval->length (_ciao_size);" << endl;
+
+ os << "for (" << uc_port_name << "_TABLE::const_iterator iter ="
+ << endl
+ << " this->ciao_publishes_" << p.name () << "_.begin ();"
<< endl
- << "if ( ::CORBA::is_nil (c.in ()))"
+ << "iter != this->ciao_publishes_" << p.name () << "_.end ();"
+ << endl
+ << "++iter, ++_ciao_index)" << endl
+ << "{"
+ << "if ( ::CORBA::is_nil (iter->second.in ()))"
<< "{"
- << STRS[ACE_TR] << " ( " << STRS[EXCP_IC] << " (), 0);"
- << "}"
- << "::Components::ConsumerDescription *cd = 0;"
+ << "throw " << STRS[EXCP_IC] << " ();"
+ << "}";
+
+ os << "::Components::ConsumerDescription *cd = 0;"
<< "ACE_NEW_THROW_EX ("
<< "cd," << endl
<< "OBV_Components::ConsumerDescription ()," << endl
- << "::CORBA::NO_MEMORY ());" << endl
- << "::Components::ConsumerDescription_var safe = cd;"
+ << "::CORBA::NO_MEMORY ());" << endl;
+
+ os << "::Components::ConsumerDescription_var safe = cd;"
<< "safe->name (\"\");"
<< "safe->type_id (\"\");"
- << "safe->consumer (c.in ());" << endl
- << "retval[_ciao_index++] = safe;"
- << "}"
- << "return retval._retn ();"
+ << "safe->consumer (iter->second.in ());"
+ << "retval[_ciao_index] = safe;"
+ << "}";
+
+ os << "return retval._retn ();"
<< "}";
}
@@ -1141,8 +1163,7 @@ namespace
<< " " << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "_Context," << endl
<< " " << t.name () << "_Servant," << endl
- << " " << t.scoped_name () << "," << endl
- << " " << t.scoped_name () << "_var" << endl
+ << " " << t.scoped_name () << endl
<< " > (h, c, sv)";
string swap_option = ctx.cl ().get_value ("custom-container", "");
@@ -1155,9 +1176,8 @@ namespace
<< " " << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "_Context," << endl
<< " " << t.name () << "_Servant," << endl
- << " " << t.scoped_name () << "," << endl
- << " " << t.scoped_name () << "_var" << endl
- << " > (h, c, sv)" << endl;
+ << " " << t.scoped_name () << endl
+ << " > (h, c, sv)";
}
else
{
@@ -1172,9 +1192,9 @@ namespace
<< "{"
<< "}";
- os << "// Operations for " << t.name () << " receptacles"
+ os << "/// Operations for " << t.name () << " receptacles"
<< " and event sources," << endl
- << "// defined in " << t.scoped_name ().scope_name () << "::CCM_"
+ << "/// defined in " << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "_Context."
<< endl << endl;
@@ -1198,22 +1218,18 @@ namespace
// Extra *_Context methods for swapping container.
if (swapping)
{
- os << "// Operations defined in " << t.scoped_name ().scope_name ()
+ os << "/// Operations defined in " << t.scoped_name ().scope_name ()
<< "::CCM_" << t.name () << "_Context" << endl
- << "// that enable component swapping in the container"
+ << "/// that enable component swapping in the container"
<< endl << endl;
os << STRS[COMP_CD] << " *" << endl
<< t.name () << "_Context::get_registered_consumers (" << endl
<< "const char *publisher_name)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IN] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
<< "{"
<< "if (publisher_name == 0)" << endl
<< "{"
- << STRS[ACE_TR] << " ( " << STRS[EXCP_IN] << " (), 0);"
+ << "throw " << STRS[EXCP_IN] << " ();"
<< "}"
<< STRS[COMP_CD] << " *tmp = 0;"
<< STRS[COMP_CD] << "_var retval;"
@@ -1241,16 +1257,15 @@ namespace
component_emitter.traverse (t);
}
- os << STRS[ACE_TR] << " ( " << STRS[EXCP_IN] << " (), 0);"
+ os << "throw " << STRS[EXCP_IN] << " ();"
<< "}";
}
- os << "// CIAO-specific." << endl << endl;
+ os << "/// CIAO-specific." << endl << endl;
os << t.name () << "_Context *" << endl
<< t.name () << "_Context::_narrow (" << endl
- << STRS[COMP_SC] << "_ptr p" << endl
- << ")" << endl
+ << STRS[COMP_SC] << "_ptr p)" << endl
<< "{"
<< "return dynamic_cast<" << t.name () << "_Context *> (p);"
<< endl
@@ -1291,9 +1306,7 @@ namespace
Traversal::EmitterData::belongs (t, belongs_);
- os << "Consumer::_narrow (" << endl
- << " consumer" << endl
- << " " << ");" << endl
+ os << "Consumer::_narrow (consumer);" << endl
<< "if ( ::CORBA::is_nil (_ciao_consumer.in ()))" << endl
<< "{"
<< "throw " << STRS[EXCP_IC] << " ();"
@@ -1373,9 +1386,6 @@ namespace
Traversal::PublisherData::belongs (p, belongs_);
os << "Consumer_ptr c)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_ECL] << "))" << endl
<< "{";
string swap_option = ctx.cl ().get_value ("custom-container", "");
@@ -1388,18 +1398,13 @@ namespace
}
os << "return this->context_->subscribe_" << p.name ()
- << " (" << endl
- << "c" << endl
- << ");" << endl
+ << " (c);"
<< "}";
os << STRS[COMP_CK] << " *" << endl
<< scope_.name ()
<< "_Servant::subscribe_" << p.name () << "_generic (" << endl
<< STRS[COMP_ECB] << "_ptr c)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_ECL] << "))" << endl
<< "{";
if (swapping)
@@ -1409,9 +1414,7 @@ namespace
}
os << "return this->context_->subscribe_" << p.name ()
- << "_generic (" << endl
- << "c" << endl
- << ");" << endl
+ << "_generic (c);"
<< "}";
Traversal::PublisherData::belongs (p, belongs_);
@@ -1420,9 +1423,6 @@ namespace
<< scope_.name ()
<< "_Servant::unsubscribe_" << p.name () << " (" << endl
<< STRS[COMP_CK] << " *ck)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
<< "{";
if (swapping)
@@ -1432,9 +1432,7 @@ namespace
}
os << "return this->context_->unsubscribe_"
- << p.name () << " (" << endl
- << "ck" << endl
- << ");" << endl
+ << p.name () << " (ck);"
<< "}";
}
@@ -1464,23 +1462,40 @@ namespace
Traversal::SingleUserData::belongs (u, belongs_);
- os << "_var _ciao_conn =" << endl;
+ os << "_var _ciao_conn =" << endl
+ << " ";
Traversal::SingleUserData::belongs (u, belongs_);
- os << "::_narrow (" << endl
- << "connection" << endl
- << ");"
- << endl
+ os << "::_narrow (connection);" << endl
<< "if ( ::CORBA::is_nil (_ciao_conn.in ()))" << endl
<< "{"
- << STRS[ACE_TR] << " ( " << STRS[EXCP_IC] << " (), 0);"
- << endl
- << "}"
- << "// Simplex connect." << endl
- << "this->connect_" << u.name () << " (" << endl
- << "_ciao_conn.in ()" << endl
- << ");"
+ << "throw " << STRS[EXCP_IC] << " ();" << endl
+ << "}";
+
+ os << "ACE_CString receptacle_name (\""
+ << u.name ().unescaped_str () << "\");"
+ << "receptacle_name += '_';"
+ << "receptacle_name += this->context_->_ciao_instance_id ();"
+ << "::CORBA::PolicyList policy_list =" << endl
+ << " this->container_->get_receptacle_policy ("
+ << "receptacle_name.c_str ());" << endl;
+
+ os << "if (policy_list.length () != 0)" << endl
+ << "{"
+ << "::CORBA::Object_var over_ridden_object =" << endl
+ << " _ciao_conn->_set_policy_overrides (policy_list," << endl
+ << "CORBA::SET_OVERRIDE);"
+ << "_ciao_conn =" << endl
+ << " ";
+
+ Traversal::SingleUserData::belongs (u, belongs_);
+
+ os << "::_narrow (over_ridden_object.in ());"
+ << "}";
+
+ os << "/// Simplex connect." << endl
+ << "this->connect_" << u.name () << " (_ciao_conn.in ());"
<< endl
<< "return 0;" << endl
<< "}";
@@ -1505,13 +1520,11 @@ namespace
<< endl
<< "if ( ::CORBA::is_nil (_ciao_conn.in ()))" << endl
<< "{"
- << STRS[ACE_TR] << " ( " << STRS[EXCP_IC] << " (), 0);"
+ << "throw " << STRS[EXCP_IC] << " ();"
<< endl
<< "}"
- << "// Multiplex connect." << endl
- << "return this->connect_" << u.name () << " (" << endl
- << "_ciao_conn.in ()" << endl
- << ");"
+ << "/// Multiplex connect." << endl
+ << "return this->connect_" << u.name () << " (_ciao_conn.in ());"
<< "}";
}
@@ -1535,7 +1548,7 @@ namespace
os << "if (ACE_OS::strcmp (name, \""
<< u.name ().unescaped_str () << "\") == 0)" << endl
<< "{"
- << "// Simplex disconnect." << endl
+ << "/// Simplex disconnect." << endl
<< "return this->disconnect_" << u.name ()
<< " ();" << endl
<< "}";
@@ -1550,13 +1563,10 @@ namespace
<< "// Multiplex disconnect." << endl
<< "if (ck == 0)" << endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_CR] << " ()," << endl
- << "::CORBA::Object::_nil ());" << endl
+ << "throw "
+ << STRS[EXCP_CR] << " ();" << endl
<< "}"
- << "return this->disconnect_" << u.name () << " (" << endl
- << "ck" << endl
- << ");" << endl
+ << "return this->disconnect_" << u.name () << " (ck);" << endl
<< "}";
}
};
@@ -1583,15 +1593,8 @@ namespace
Traversal::SingleUserData::belongs (u, belongs_);
os << "_ptr c)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_AC] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
<< "{"
- << "this->context_->connect_" << u.name () << " ("
- << endl
- << "c" << endl
- << ");" << endl
+ << "this->context_->connect_" << u.name () << " (c);" << endl
<< "this->add_receptacle (\"" << u.name ().unescaped_str ()
<< "\", c, 0);" << endl
<< "}";
@@ -1601,13 +1604,9 @@ namespace
os << "_ptr" << endl
<< scope_.name () << "_Servant::disconnect_"
<< u.name () << " ()" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_NC] << "))" << endl
<< "{"
<< "return this->context_->disconnect_" << u.name ()
- << " (" << endl
- << ");" << endl
+ << " ();" << endl
<< "}";
Traversal::SingleUserData::belongs (u, belongs_);
@@ -1615,13 +1614,10 @@ namespace
os << "_ptr" << endl
<< scope_.name ()
<< "_Servant::get_connection_" << u.name ()
- << " (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << " ()" << endl
<< "{"
<< "return this->context_->get_connection_"
- << u.name () << " (" << endl
- << ");" << endl
+ << u.name () << " ();" << endl
<< "}";
}
@@ -1635,16 +1631,9 @@ namespace
Traversal::MultiUserData::belongs (u, belongs_);
os << "_ptr c)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_ECL] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
<< "{"
- << "::Components::Cookie * cookie = "
- "this->context_->connect_" << u.name () << " ("
- << endl
- << "c" << endl
- << ");" << endl
+ << "::Components::Cookie * cookie =" << endl
+ << " this->context_->connect_" << u.name () << " (c);" << endl
<< "this->add_receptacle (\"" << u.name ().unescaped_str ()
<< "\", c, cookie);" << endl
<< "return cookie;" << endl
@@ -1656,26 +1645,17 @@ namespace
<< scope_.name () << "_Servant::disconnect_"
<< u.name () << " (" << endl
<< STRS[COMP_CK] << " * ck)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
<< "{"
<< "return this->context_->disconnect_" << u.name ()
- << " (" << endl
- << "ck" << endl
- << ");" << endl
+ << " (ck);" << endl
<< "}";
os << u.scoped_name () << "Connections *" << endl
<< scope_.name ()
- << "_Servant::get_connections_" << u.name ()
- << " (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << "_Servant::get_connections_" << u.name () << " ()" << endl
<< "{"
<< "return this->context_->get_connections_"
- << u.name () << " (" << endl
- << ");" << endl
+ << u.name () << " ();" << endl
<< "}";
}
@@ -1709,10 +1689,7 @@ namespace
Traversal::PublisherData::belongs (p, belongs_);
- os << "Consumer::_narrow (" << endl
- << "subscribe" << endl
- << ");"
- << endl;
+ os << "Consumer::_narrow (subscribe);" << endl;
os << "if ( ::CORBA::is_nil (sub.in ()))" << endl
<< "{"
@@ -1722,26 +1699,23 @@ namespace
Traversal::PublisherData::belongs (p, belongs_);
- os << "::_tao_obv_static_repository_id ()" << endl
- << " " << ");"
+ os << "::_tao_obv_static_repository_id ());"
<< endl;
os << "if (substitutable)" << endl
<< "{"
- << "return this->subscribe_" << p.name () << "_generic (" << endl
- << "subscribe" << endl
- << ");" << endl
+ << "return this->subscribe_" << p.name ()
+ << "_generic (subscribe);" << endl
<< "}"
<< "else" << endl
<< "{"
- << STRS[ACE_TR] << " ( " << STRS[EXCP_IC] << " (), 0);" << endl
+ << "throw " << STRS[EXCP_IC] << " ();" << endl
<< "}"
<< "}"
<< "else" << endl
<< "{"
- << "return this->subscribe_" << p.name () << " (" << endl
- << "sub.in ()" << endl
- << ");" << endl
+ << "return this->subscribe_" << p.name ()
+ << " (sub.in ());" << endl
<< "}"
<< "}";
}
@@ -1765,9 +1739,7 @@ namespace
<< p.name ().unescaped_str () << "\") == 0)" << endl
<< "{"
<< "return this->unsubscribe_" << p.name ()
- << " (" << endl
- << "ck" << endl
- << ");" << endl
+ << " (ck);" << endl
<< "}";
}
};
@@ -1793,9 +1765,6 @@ namespace
Traversal::EmitterData::belongs (e, belongs_);
os << "Consumer_ptr c)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_AC] << "))" << endl
<< "{"
<< "this->context_->connect_" << e.name ()
<< " (" << endl
@@ -1808,9 +1777,6 @@ namespace
os << "Consumer_ptr" << endl
<< scope_.name () << "_Servant::disconnect_"
<< e.name () << " ()" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_NC] << "))" << endl
<< "{"
<< "return this->context_->disconnect_"
<< e.name () << " (" << endl
@@ -1870,9 +1836,7 @@ namespace
os << "_ptr" << endl
<< scope_.name ()
- << "_Servant::provide_" << p.name () << " (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << "_Servant::provide_" << p.name () << " ()" << endl
<< "{";
string swap_option = ctx.cl ().get_value ("custom-container", "");
@@ -1910,10 +1874,7 @@ namespace
Traversal::ProviderData::belongs (p, belongs_);
- os << "::_narrow ("
- << "obj.in ()" << endl
- << ");"
- << endl
+ os << "::_narrow (obj.in ());" << endl
<< "this->provide_" << p.name () << "_ = fo;"
<< "return ";
@@ -1927,9 +1888,7 @@ namespace
os << "::CORBA::Object_ptr" << endl
<< scope_.name ()
- << "_Servant::provide_" << p.name () << "_i (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << "_Servant::provide_" << p.name () << "_i ()" << endl
<< "{"
<< "::CORBA::Object_ptr ret =" << endl
<< " this->lookup_facet (\""
@@ -1940,29 +1899,7 @@ namespace
<< "return ret;"
<< "}";
- os << "::CIAO::Port_Activator_T<" << endl
- << " ::" << STRS[FACET_PREFIX];
-
- Traversal::ProviderData::belongs (p, facet_enclosing_belongs_);
-
- os << "::";
-
- Traversal::ProviderData::belongs (p, servant_belongs_);
-
- os << "," << endl
- << " ";
-
- Traversal::ProviderData::belongs (p, enclosing_belongs_);
-
- os << "::CCM_";
-
- Traversal::ProviderData::belongs (p, simple_belongs_);
-
- os << "," << endl
- << " ::Components::CCMContext," << endl
- << " " << scope_.name () << "_Servant" << endl
- << " > *tmp = 0;" << endl
- << "typedef ::CIAO::Port_Activator_T<" << endl
+ os << "typedef ::CIAO::Port_Activator_T<" << endl
<< " ::" << STRS[FACET_PREFIX];
Traversal::ProviderData::belongs (p, facet_enclosing_belongs_);
@@ -1982,17 +1919,17 @@ namespace
os << "," << endl
<< " ::Components::CCMContext," << endl
- << " " << scope_.name () << "_Servant" << endl
- << " >" << endl
- << "MACRO_MADNESS_TYPEDEF;" << endl;
+ << " " << scope_.name () << "_Servant>" << endl
+ << " MACRO_MADNESS_TYPEDEF;" << endl;
- os << "ACE_CString obj_id (this->ins_name_);"
- << "obj_id += \"_" << p.name ().unescaped_str () << "\";" << endl;
+ os << "MACRO_MADNESS_TYPEDEF *tmp = 0;"
+ << "ACE_CString obj_id (this->ins_name_);"
+ << "obj_id += \"_" << p.name ().unescaped_str ()
+ << "\";" << endl;
os << "ACE_NEW_THROW_EX ("
<< "tmp," << endl
- << "MACRO_MADNESS_TYPEDEF (" << endl
- << "obj_id.c_str ()," << endl
+ << "MACRO_MADNESS_TYPEDEF (obj_id.c_str ()," << endl
<< "\"" << p.name ().unescaped_str () << "\"," << endl
<< "::CIAO::Port_Activator::Facet," << endl
<< "0," << endl
@@ -2019,14 +1956,10 @@ namespace
Traversal::ProviderData::belongs (p, repo_id_belongs_);
os << "," << endl
- << " ::CIAO::Container::Facet_Consumer" << endl
- << " " << ");"
- << endl
+ << " ::CIAO::Container::Facet_Consumer);" << endl
<< "this->add_facet (\""
<< p.name ().unescaped_str () << "\"," << endl
- << "obj.in ()" << endl
- << ");"
- << endl;
+ << "obj.in ());" << endl;
os << "return obj._retn ();" << endl
<< "}";
@@ -2113,9 +2046,7 @@ namespace
Traversal::ConsumerData::belongs (c, simple_belongs_);
os << "Consumer_" << c.name ()
- << "_Servant::_get_component (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << "_Servant::_get_component ()" << endl
<< "{"
<< "return this->ctx_->get_CCM_object "
<< "();" << endl
@@ -2135,17 +2066,13 @@ namespace
Traversal::ConsumerData::belongs (c, belongs_);
- os << " *evt" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ os << " *evt)" << endl
<< "{"
<< "this->executor_->push_" << c.name ()
- << " (" << endl
- << "evt" << endl
- << ");" << endl
+ << " (evt);" << endl
<< "}";
- os << "// Inherited from " << STRS[COMP_ECB] << "." << endl
+ os << "/// Inherited from " << STRS[COMP_ECB] << "." << endl
<< "void" << endl
<< scope_.name () << "_Servant::";
@@ -2154,9 +2081,6 @@ namespace
os << "Consumer_" << c.name ()
<< "_Servant::push_event (" << endl
<< "::Components::EventBase *ev)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_BET] << "))" << endl
<< "{";
Traversal::ConsumerData::belongs (c, belongs_);
@@ -2173,9 +2097,7 @@ namespace
Traversal::ConsumerData::belongs (c, simple_belongs_);
- os << " (" << endl
- << "ev_type" << endl
- << ");" << endl
+ os << " (ev_type);" << endl
<< "return;" << endl
<< "}"
<< "throw " << STRS[EXCP_BET] << " ();" << endl
@@ -2184,7 +2106,7 @@ namespace
// GD Added below code
// Begin
- os << "// Inherited from " << STRS[COMP_ECB] << "." << endl
+ os << "/// Inherited from " << STRS[COMP_ECB] << "." << endl
<< "void" << endl
<< scope_.name () << "_Servant::";
@@ -2195,9 +2117,6 @@ namespace
<< "::Components::EventBase *ev," << endl
<< "const char * /* source_id */," << endl
<< "::CORBA::TypeCode_ptr /* tc */)" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_BET] << "))" << endl
<< "{"
<< "this->push_event (ev);" << endl
<< "}";
@@ -2211,38 +2130,28 @@ namespace
os << "Consumer_" << c.name ()
<< "_Servant::ciao_is_substitutable (" << endl
- << "const char * event_repo_id" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << "const char * event_repo_id)" << endl
<< "{"
<< "if (event_repo_id == 0)" << endl
<< "{"
- << STRS[ACE_TR] << " ( ::CORBA::BAD_PARAM (), false);" << endl
+ << "throw ::CORBA::BAD_PARAM ();" << endl
<< "}"
<< scope_.name () << "_Context *ctx =" << endl
- << " " << scope_.name () << "_Context::_narrow (" << endl
- << " this->ctx_.in ()" << endl
- << " " << ");"
- << endl;
+ << " " << scope_.name ()
+ << "_Context::_narrow (this->ctx_.in ());" << endl;
os << "CORBA::ORB_ptr orb = ctx->_ciao_the_Container ()->the_ORB ();"
<< endl;
os << "CORBA::ValueFactory f =" << endl
- << " orb->lookup_value_factory (" << endl
- << " event_repo_id" << endl
- << " " << ");"
- << endl;
+ << " orb->lookup_value_factory (event_repo_id);" << endl;
os << "if (f == 0)" << endl
<< "{"
<< "return false;" << endl
<< "}"
- << "CORBA::ValueBase_var v =" << endl
- << " f->create_for_unmarshal ();"
- << endl;
-
- os << "f->_remove_ref ();" << endl;
+ << "CORBA::ValueBase_var v = f->create_for_unmarshal ();"
+ << "f->_remove_ref ();" << endl;
os << "if (v.in () == 0)" << endl
<< "{"
@@ -2260,9 +2169,7 @@ namespace
os << "Consumer_ptr" << endl
<< scope_.name () << "_Servant::"
- << "get_consumer_" << c.name () << " (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << "get_consumer_" << c.name () << " ()" << endl
<< "{"
<< "if (! ::CORBA::is_nil (this->consumes_" << c.name ()
<< "_.in ()))" << endl
@@ -2276,9 +2183,7 @@ namespace
<< "}";
os << "::Components::EventConsumerBase_var obj =" << endl
- << " this->get_consumer_" << c.name () << "_i (" << endl
- << " " << ");"
- << endl;
+ << " this->get_consumer_" << c.name () << "_i ();" << endl;
Traversal::ConsumerData::belongs (c, belongs_);
@@ -2287,10 +2192,7 @@ namespace
Traversal::ConsumerData::belongs (c, belongs_);
- os << "Consumer::_narrow (" << endl
- << " obj.in ()" << endl
- << " " << ");"
- << endl
+ os << "Consumer::_narrow (obj.in ());" << endl
<< "this->consumes_" << c.name () << "_ = eco;"
<< "return ";
@@ -2304,9 +2206,7 @@ namespace
os << "::Components::EventConsumerBase_ptr" << endl
<< scope_.name () << "_Servant::"
- << "get_consumer_" << c.name () << "_i (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << "get_consumer_" << c.name () << "_i ()" << endl
<< "{"
<< "::Components::EventConsumerBase_ptr ret =" << endl
<< " this->lookup_consumer (\""
@@ -2317,49 +2217,29 @@ namespace
<< "return ret;"
<< "}";
- os << "::CIAO::Port_Activator_T<" << endl;
+ os << "typedef ::CIAO::Port_Activator_T<" << endl
+ << " ";
os << scope_.name () << "_Servant::";
Traversal::ConsumerData::belongs (c, simple_belongs_);
- os << "Consumer_" << c.name ()
- << "_Servant," << endl
- << c.scoped_name ().scope_name ().scope_name ()
- << "::CCM_"
- << c.scoped_name ().scope_name ().simple_name ()
+ os << "Consumer_" << c.name () << "_Servant," << endl
+ << " " << c.scoped_name ().scope_name ().scope_name ()
+ << "::CCM_" << c.scoped_name ().scope_name ().simple_name ()
<< "," << endl
- << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
- << c.scoped_name ().scope_name ().simple_name ()
+ << " " << c.scoped_name ().scope_name ().scope_name ()
+ << "::CCM_" << c.scoped_name ().scope_name ().simple_name ()
<< "_Context," << endl
- << scope_.name () << "_Servant"
- << " > *tmp = 0;" << endl
- << "typedef CIAO::Port_Activator_T<" << endl;
-
- os << " " << scope_.name () << "_Servant::";
+ << " " << scope_.name () << "_Servant>" << endl
+ << " MACRO_MADNESS_TYPEDEF;" << endl;
- Traversal::ConsumerData::belongs (c, simple_belongs_);
-
- os << "Consumer_" << c.name ()
- << "_Servant," << endl
- << " " << c.scoped_name ().scope_name ().scope_name ()
- << "::CCM_"
- << c.scoped_name ().scope_name ().simple_name ()
- << "," << endl
- << " " << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
- << c.scoped_name ().scope_name ().simple_name ()
- << "_Context, " << endl
- << " " << scope_.name () << "_Servant" << endl
- << " >" << endl
- << "MACRO_MADNESS_TYPEDEF;" << endl;
-
- os << "ACE_CString obj_id (this->ins_name_);"
+ os << "MACRO_MADNESS_TYPEDEF *tmp = 0;" << endl
+ << "ACE_CString obj_id (this->ins_name_);"
<< "obj_id += \"_" << c.name ().unescaped_str () << "\";" << endl;
- os << "ACE_NEW_THROW_EX (" << endl
- << "tmp," << endl
- << "MACRO_MADNESS_TYPEDEF ("
- << "obj_id.c_str ()," << endl
+ os << "ACE_NEW_THROW_EX (tmp," << endl
+ << "MACRO_MADNESS_TYPEDEF (obj_id.c_str ()," << endl
<< "\"" << c.name ().unescaped_str () << "\"," << endl
<< "::CIAO::Port_Activator::Sink," << endl
<< "this->executor_.in ()," << endl
@@ -2386,21 +2266,15 @@ namespace
Traversal::ConsumerData::belongs (c, repo_id_belongs_);
os << "," << endl
- << " ::CIAO::Container::Facet_Consumer" << endl
- << " " << ");"
- << endl;
+ << " ::CIAO::Container::Facet_Consumer);" << endl;
os << "::Components::EventConsumerBase_var ecb =" << endl
- << " ::Components::EventConsumerBase::_narrow (" << endl
- << " obj.in ()" << endl
- << " " << ");"
+ << " ::Components::EventConsumerBase::_narrow (obj.in ());"
<< endl;
os << "this->add_consumer (\""
<< c.name ().unescaped_str () << "\"," << endl
- << "ecb.in ()" << endl
- << ");"
- << endl;
+ << "ecb.in ());" << endl;
os << "return ecb._retn ();" << endl
<< "}";
@@ -2613,9 +2487,8 @@ namespace
virtual void
traverse (SemanticGraph::Provider& p)
{
- os << "obj_var =" << endl
- << " this->provide_" << p.name () << "_i (" << endl
- << " " << ");" << endl;
+ os << "obj_var = this->provide_" << p.name ()
+ << "_i ();" << endl;
}
virtual void
@@ -2637,8 +2510,8 @@ namespace
traverse (SemanticGraph::Consumer& p)
{
os << "ecb_var =" << endl
- << " this->get_consumer_" << p.name () << "_i (" << endl
- << " " << ");" << endl;
+ << " this->get_consumer_" << p.name () << "_i ();"
+ << endl;
}
};
@@ -2727,6 +2600,17 @@ namespace
virtual void
traverse (SemanticGraph::MultiUser& u)
{
+ bool static_cfg = ctx.cl ().get_value ("static-config", false);
+
+ if (! static_cfg)
+ {
+ os << "{"
+ << "ACE_READ_GUARD_RETURN (TAO_SYNCH_MUTEX," << endl
+ << "mon," << endl
+ << "this->context_->" << u.name () << "_lock_," << endl
+ << "0);" << endl;
+ }
+
os << "::CIAO::Servant_Impl_Base::describe_multiplex_receptacle<"
<< endl
<< " ";
@@ -2743,6 +2627,11 @@ namespace
<< "safe_retval," << endl
<< slot_ << "UL);" << endl;
+ if (! static_cfg)
+ {
+ os << "}";
+ }
+
++slot_;
}
@@ -2789,6 +2678,15 @@ namespace
virtual void
traverse (SemanticGraph::Publisher& p)
{
+ if (! ctx.cl ().get_value ("static-config", false))
+ {
+ os << "{"
+ << "ACE_READ_GUARD_RETURN (TAO_SYNCH_MUTEX," << endl
+ << "mon," << endl
+ << "this->context_->" << p.name () << "_lock_," << endl
+ << "0);" << endl;
+ }
+
os << "::CIAO::Servant_Impl_Base::describe_pub_event_source<"
<< endl
<< " ";
@@ -2801,11 +2699,16 @@ namespace
Traversal::PublisherData::belongs (p, repo_id_belongs_);
os << "," << endl
- << "this->context_->ciao_publishes_" << p.name ()
- << "_map_," << endl
+ << "this->context_->ciao_publishes_" << p.name () << "_,"
+ << endl
<< "safe_retval," << endl
<< slot_ << "UL);" << endl;
+ if (! ctx.cl ().get_value ("static-config", false))
+ {
+ os << "}";
+ }
+
++slot_;
}
@@ -2911,7 +2814,7 @@ namespace
<< "this->context_," << endl
<< t.name () << "_Context (h, c, this));" << endl;
- os << "// Set the instance id of the component on the context" << endl
+ os << "/// Set the instance id of the component on the context" << endl
<< endl
<< "this->context_->_ciao_instance_id (this->ins_name_);" << endl;
@@ -2938,17 +2841,12 @@ namespace
os << "try" << endl
<< "{"
<< "::Components::SessionComponent_var scom =" << endl
- << " ::Components::SessionComponent::_narrow (" << endl
- << " exe" << endl
- << " " << ");" << endl
+ << " ::Components::SessionComponent::_narrow (exe);" << endl
<< "if (! ::CORBA::is_nil (scom.in ()))" << endl
<< "{"
- << "scom->set_session_context (" << endl
- << "this->context_" << endl
- << ");"
+ << "scom->set_session_context (this->context_);"
<< "}"
- << "this->populate_port_tables (" << endl
- << ");"
+ << "this->populate_port_tables ();"
<< "}"
<< "catch (const CORBA::Exception&)" << endl
<< "{"
@@ -2965,8 +2863,7 @@ namespace
// Override pure virtual set_attributes() operation.
os << "void" << endl
<< t.name () << "_Servant::set_attributes (" << endl
- << "const ::Components::ConfigValues &descr" << endl
- << ")" << endl
+ << "const ::Components::ConfigValues &descr)" << endl
<< "{" << endl;
string swap_option = ctx.cl ().get_value ("custom-container", "");
@@ -3059,16 +2956,8 @@ namespace
}
os << STRS[COMP_CK] << " *" << endl
- << t.name () << "_Servant::connect (" << endl
- << "const char *name," << endl
- << "::CORBA::Object_ptr connection" << endl
- << ")" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IN] << "," << endl
- << STRS[EXCP_IC] << "," << endl
- << STRS[EXCP_AC] << "," << endl
- << STRS[EXCP_ECL] << "))" << endl
+ << t.name () << "_Servant::connect (const char *name," << endl
+ << "::CORBA::Object_ptr connection)" << endl
<< "{";
if (swapping)
@@ -3077,12 +2966,12 @@ namespace
<< endl;
}
- os << "// If the component has no receptacles, this will be unused."
+ os << "/// If the component has no receptacles, this will be unused."
<< endl
<< STRS[ACE_UA] << " (connection);" << endl
<< "if (name == 0)" << endl
<< "{"
- << STRS[ACE_TR] << " ( " << STRS[EXCP_IN] << " (), 0);" << endl
+ << "throw " << STRS[EXCP_IN] << " ();" << endl
<< "}";
// Generate IF block in connect operation for each receptacle.
@@ -3102,20 +2991,13 @@ namespace
component_emitter.traverse (t);
}
- os << STRS[ACE_TR] << " ( " << STRS[EXCP_IN] << " (), 0);" << endl
+ os << "throw " << STRS[EXCP_IN] << " ();" << endl
<< "}";
os << "::CORBA::Object_ptr" << endl
- << t.name () << "_Servant::disconnect (" << endl
- << "const char *name," << endl
- << STRS[COMP_CK] << " * ck" << endl
- << ")" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IN] << "," << endl
- << STRS[EXCP_IC] << "," << endl
- << STRS[EXCP_CR] << "," << endl
- << STRS[EXCP_NC] << "))" << endl
+ << t.name () << "_Servant::disconnect (const char *name,"
+ << endl
+ << STRS[COMP_CK] << " * ck)" << endl
<< "{"
<< STRS[ACE_UA] << " (ck);" << endl;
@@ -3127,9 +3009,8 @@ namespace
os << "if (name == 0)" << endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_BP] << "," << endl
- << "::CORBA::Object::_nil ());" << endl
+ << "throw "
+ << STRS[EXCP_BP] << " ();" << endl
<< "}";
// Generate IF block in disconnect operation for each receptacle.
@@ -3149,15 +3030,12 @@ namespace
component_emitter.traverse (t);
}
- os << STRS[ACE_TR] << " ( "
- << STRS[EXCP_IN] << " ()," << endl
- << "::CORBA::Object::_nil ());"
+ os << "throw "
+ << STRS[EXCP_IN] << " ();" << endl
<< "}";
os << STRS[COMP_RD] << " *" << endl
- << t.name () << "_Servant::get_all_receptacles (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << t.name () << "_Servant::get_all_receptacles ()" << endl
<< "{"
<< STRS[COMP_RD] << " *retval = 0;"
<< "ACE_NEW_RETURN (retval," << endl
@@ -3227,13 +3105,7 @@ namespace
<< t.name () << "_Servant::connect_consumer ("
<< endl
<< "const char * emitter_name," << endl
- << STRS[COMP_ECB] << "_ptr consumer" << endl
- << ")" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IN] << "," << endl
- << STRS[EXCP_AC] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
+ << STRS[COMP_ECB] << "_ptr consumer)" << endl
<< "{";
if (swapping)
@@ -3244,7 +3116,7 @@ namespace
os << "if (emitter_name == 0)" << endl
<< "{"
- << "throw " << STRS[EXCP_BP] << ";" << endl
+ << "throw " << STRS[EXCP_BP] << " ();" << endl
<< "}";
// Generate an IF block for each 'emits' declaration.
@@ -3270,13 +3142,9 @@ namespace
<< "}";
os << STRS[COMP_ECB] << "_ptr" << endl
- << t.name () << "_Servant::disconnect_consumer (" << endl
- << "const char *source_name" << endl
- << ")" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IN] << "," << endl
- << STRS[EXCP_NC] << "))" << endl
+ << t.name ()
+ << "_Servant::disconnect_consumer (const char *source_name)"
+ << endl
<< "{";
if (swapping)
@@ -3287,8 +3155,7 @@ namespace
os << "if (source_name == 0)" << endl
<< "{"
- << STRS[ACE_TR] << " ( " << STRS[EXCP_BP] << "," << endl
- << STRS[COMP_ECB] << "::_nil ());" << endl
+ << "throw " << STRS[EXCP_BP] << " ();" << endl
<< "}";
// Generate an IF block for each 'emits' declaration.
@@ -3308,15 +3175,12 @@ namespace
component_emitter.traverse (t);
}
- os << STRS[ACE_TR] << " ( "
- << STRS[EXCP_IN] << " ()," << endl
- << STRS[COMP_ECB] << "::_nil ());" << endl
+ os << "throw "
+ << STRS[EXCP_IN] << " ();" << endl
<< "}";
os << STRS[COMP_PD] << " *" << endl
- << t.name () << "_Servant::get_all_publishers (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << t.name () << "_Servant::get_all_publishers ()" << endl
<< "{"
<< STRS[COMP_PD] << " *retval = 0;"
<< "ACE_NEW_RETURN (retval," << endl
@@ -3364,9 +3228,7 @@ namespace
<< "}";
os << STRS[COMP_ED] << " *" << endl
- << t.name () << "_Servant::get_all_emitters (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << t.name () << "_Servant::get_all_emitters ()" << endl
<< "{"
<< STRS[COMP_ED] << " *retval = 0;"
<< "ACE_NEW_RETURN (retval," << endl
@@ -3416,13 +3278,7 @@ namespace
os << STRS[COMP_CK] << " *" << endl
<< t.name () << "_Servant::subscribe (" << endl
<< "const char *publisher_name," << endl
- << STRS[COMP_ECB] << "_ptr subscribe" << endl
- << ")" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IN] << "," << endl
- << STRS[EXCP_IC] << "," << endl
- << STRS[EXCP_ECL] << "))" << endl
+ << STRS[COMP_ECB] << "_ptr subscribe)" << endl
<< "{";
if (swapping)
@@ -3431,12 +3287,11 @@ namespace
<< endl;
}
- os << "// Just in case there are no if blocks" << endl
+ os << "/// Just in case there are no if blocks" << endl
<< STRS[ACE_UA] << " (subscribe);" << endl
<< "if (publisher_name == 0)" << endl
<< "{"
- << STRS[ACE_TR] << " ( " << STRS[EXCP_IN] << " (), 0);"
- << endl
+ << "throw " << STRS[EXCP_IN] << " ();"<< endl
<< "}";
// Generate an IF block in for each publisher in subscribe().
@@ -3456,19 +3311,14 @@ namespace
component_emitter.traverse (t);
}
- os << STRS[ACE_TR] << " ( " << STRS[EXCP_IN] << " (), 0);" << endl
+ os << "throw " << STRS[EXCP_IN] << " ();" << endl
<< "}";
os << STRS[COMP_ECB] << "_ptr" << endl
<< t.name () << "_Servant::unsubscribe ("
<< endl
<< "const char *publisher_name," << endl
- << STRS[COMP_CK] << " *ck" << endl
- << ")" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl
- << STRS[EXCP_IN] << "," << endl
- << STRS[EXCP_IC] << "))" << endl
+ << STRS[COMP_CK] << " *ck)" << endl
<< "{";
if (swapping)
@@ -3477,13 +3327,12 @@ namespace
<< endl;
}
- os << "// Just in case there are no if blocks" << endl
+ os << "/// Just in case there are no if blocks" << endl
<< STRS[ACE_UA] << " (ck);" << endl
<< "if (publisher_name == 0)" << endl
<< "{"
- << STRS[ACE_TR] << " ( "
- << STRS[EXCP_IN] << " ()," << endl
- << STRS[COMP_ECB] << "::_nil ());" << endl
+ << "throw "
+ << STRS[EXCP_IN] << " ();" << endl
<< "}";
// Generate an IF block in for each publisher in unsubscribe().
@@ -3503,9 +3352,8 @@ namespace
component_emitter.traverse (t);
}
- os << STRS[ACE_TR] << " ( "
- << STRS[EXCP_IN] << " ()," << endl
- << STRS[COMP_ECB] << "::_nil ());" << endl
+ os << "throw "
+ << STRS[EXCP_IN] << " ();" << endl
<< "}";
// Generate connect() and disconnect() for each emits declaration.
@@ -3528,10 +3376,7 @@ namespace
os << "::CORBA::Object_ptr" << endl
<< t.name ()
<< "_Servant::get_facet_executor (" << endl
- << "const char *name" << endl
- << ")" << endl
- << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "))" << endl
+ << "const char *name)" << endl
<< "{";
if (swapping)
@@ -3542,8 +3387,7 @@ namespace
os << "if (name == 0)" << endl
<< "{"
- << STRS[ACE_TR] << " ( " << STRS[EXCP_BP] << "," << endl
- << "::CORBA::Object::_nil ());" << endl
+ << "throw " << STRS[EXCP_BP] << " ();" << endl
<< "}";
@@ -3567,7 +3411,7 @@ namespace
os << "return ::CORBA::Object::_nil ();"
<< "}";
- os << "// Supported operations." << endl << endl;
+ os << "/// Supported operations." << endl << endl;
// Generate operations for all supported interfaces.
{
@@ -3597,10 +3441,8 @@ namespace
Traversal::Receives receives;
Traversal::Belongs returns;
- Traversal::Raises raises;
operation_emitter.edge_traverser (receives);
operation_emitter.edge_traverser (returns);
- operation_emitter.edge_traverser (raises);
ParameterEmitter<Traversal::InParameter> in_param (ctx);
ParameterEmitter<Traversal::InOutParameter> inout_param (ctx);
@@ -3612,7 +3454,6 @@ namespace
ReturnTypeNameEmitter return_type_emitter (ctx);
FullTypeNameEmitter type_name_emitter (ctx);
returns.node_traverser (return_type_emitter);
- raises.node_traverser (type_name_emitter);
Traversal::Belongs in_belongs, inout_belongs, out_belongs;
in_param.edge_traverser (in_belongs);
@@ -3630,7 +3471,7 @@ namespace
}
// Generate operations for component attributes.
- os << "// Component attribute operations." << endl << endl;
+ os << "/// Component attribute operations." << endl << endl;
{
Traversal::Component component_emitter;
@@ -3648,15 +3489,12 @@ namespace
component_emitter.traverse (t);
}
- os << "// Private method to populate the port tables."
+ os << "/// Private method to populate the port tables."
<< endl;
os << "void" << endl
- << t.name () << "_Servant::populate_port_tables (" << endl
- << ")" << endl
- << STRS[EXCP_SNGL] << endl
+ << t.name () << "_Servant::populate_port_tables ()" << endl
<< "{"
- << ";"
<< "::CORBA::Object_var obj_var;"
<< "::Components::EventConsumerBase_var ecb_var;" << endl;
@@ -3798,22 +3636,8 @@ namespace
}
virtual void
- raises_none (SemanticGraph::HomeFactory&)
+ raises (SemanticGraph::HomeFactory&)
{
- os << STRS[EXCP_SNGL];
- }
-
- virtual void
- raises_pre (SemanticGraph::HomeFactory&)
- {
- os << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl;
- }
-
- virtual void
- raises_post (SemanticGraph::HomeFactory&)
- {
- os << "))";
}
virtual void
@@ -3937,33 +3761,15 @@ namespace
}
virtual void
- raises_none (SemanticGraph::HomeFinder&)
- {
- os << STRS[EXCP_SNGL];
- }
-
- virtual void
- raises_pre (SemanticGraph::HomeFinder&)
- {
- os << STRS[EXCP_START] << " "
- << STRS[EXCP_SYS] << "," << endl;
- }
-
- virtual void
- raises_post (SemanticGraph::HomeFinder&)
+ raises (SemanticGraph::HomeFinder&)
{
- os << "))";
}
virtual void
- post (SemanticGraph::HomeFinder& hf)
+ post (SemanticGraph::HomeFinder&)
{
os << "{"
- << STRS[ACE_TR] << " ( ::CORBA::NO_IMPLEMENT ()," << endl;
-
- Traversal::HomeFinder::returns (hf, simple_returns_);
-
- os << "::_nil ());"
+ << "throw ::CORBA::NO_IMPLEMENT ();" << endl
<< "}";
}
@@ -4035,7 +3841,7 @@ namespace
<< "{"
<< "}";
- os << "// Home operations." << endl << endl;
+ os << "/// Home operations." << endl << endl;
{
Traversal::Home home_emitter;
@@ -4052,10 +3858,8 @@ namespace
Traversal::Receives receives;
Traversal::Belongs returns;
- Traversal::Raises raises;
home_operation_emitter.edge_traverser (receives);
home_operation_emitter.edge_traverser (returns);
- home_operation_emitter.edge_traverser (raises);
ParameterEmitter<Traversal::InParameter> in_param (ctx);
ParameterEmitter<Traversal::InOutParameter> inout_param (ctx);
@@ -4067,7 +3871,6 @@ namespace
ReturnTypeNameEmitter return_type_emitter (ctx);
FullTypeNameEmitter type_name_emitter (ctx);
returns.node_traverser (return_type_emitter);
- raises.node_traverser (type_name_emitter);
Traversal::Belongs in_belongs, inout_belongs, out_belongs;
in_param.edge_traverser (in_belongs);
@@ -4084,7 +3887,7 @@ namespace
home_emitter.traverse (t);
}
- os << "// Home supported interface operations." << endl << endl;
+ os << "/// Home supported interface operations." << endl << endl;
{
Traversal::Home home_emitter;
@@ -4113,10 +3916,8 @@ namespace
Traversal::Receives receives;
Traversal::Belongs returns;
- Traversal::Raises raises;
operation_emitter.edge_traverser (receives);
operation_emitter.edge_traverser (returns);
- operation_emitter.edge_traverser (raises);
ParameterEmitter<Traversal::InParameter> in_param (ctx);
ParameterEmitter<Traversal::InOutParameter> inout_param (ctx);
@@ -4128,7 +3929,6 @@ namespace
ReturnTypeNameEmitter return_type_emitter (ctx);
FullTypeNameEmitter type_name_emitter (ctx);
returns.node_traverser (return_type_emitter);
- raises.node_traverser (type_name_emitter);
Traversal::Belongs in_belongs, inout_belongs, out_belongs;
in_param.edge_traverser (in_belongs);
@@ -4145,7 +3945,7 @@ namespace
home_emitter.traverse (t);
}
- os << "// Home factory and finder operations." << endl << endl;
+ os << "/// Home factory and finder operations." << endl << endl;
{
Traversal::Home home_emitter;
@@ -4164,13 +3964,10 @@ namespace
Traversal::Receives receives;
Traversal::Belongs returns;
- Traversal::Raises raises;
factory_operation_emitter.edge_traverser (receives);
factory_operation_emitter.edge_traverser (returns);
- factory_operation_emitter.edge_traverser (raises);
finder_operation_emitter.edge_traverser (receives);
finder_operation_emitter.edge_traverser (returns);
- finder_operation_emitter.edge_traverser (raises);
ParameterEmitter<Traversal::InParameter> in_param (ctx);
ParameterEmitter<Traversal::InOutParameter> inout_param (ctx);
@@ -4182,7 +3979,6 @@ namespace
ReturnTypeNameEmitter return_type_emitter (ctx);
FullTypeNameEmitter type_name_emitter (ctx);
returns.node_traverser (return_type_emitter);
- raises.node_traverser (type_name_emitter);
Traversal::Belongs in_belongs, inout_belongs, out_belongs;
in_param.edge_traverser (in_belongs);
@@ -4200,7 +3996,7 @@ namespace
}
// Generate operations for component attributes.
- os << "// Home attribute operations." << endl << endl;
+ os << "/// Home attribute operations." << endl << endl;
{
Traversal::Home home_emitter;
@@ -4238,8 +4034,7 @@ namespace
<< "create" << name << "_Servant (" << endl
<< "::Components::HomeExecutorBase_ptr p," << endl
<< "::CIAO::Session_Container *c," << endl
- << "const char *ins_name" << endl
- << ")" << endl
+ << "const char *ins_name)" << endl
<< "{"
<< "if (p == 0)" << endl
<< "{"
@@ -4248,18 +4043,12 @@ namespace
<< t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "_var x =" << endl
<< t.scoped_name ().scope_name () << "::CCM_" << t.name ()
- << "::_narrow (" << endl
- << "p" << endl
- << ");"
- << endl
+ << "::_narrow (p);" << endl
<< "if (::CORBA::is_nil (x.in ()))" << endl
<< "{"
<< "return 0;" << endl
<< "}"
- << "return new" << endl;
-
- os << t.name () << "_Servant (" << endl
- << "x.in ()," << endl
+ << "return new " << t.name () << "_Servant (x.in ()," << endl
<< "ins_name," << endl
<< "c);" << endl
<< "}";
@@ -4390,6 +4179,7 @@ ServantSourceEmitter::pre (TranslationUnit&)
<< "#include \"ciao/Servant_Activator.h\"" << endl
<< (swapping ? "#include \"ciao/Dynamic_Component_Activator.h\"\n" : "")
<< "#include \"ciao/Port_Activator_T.h\"" << endl
+ << "#include \"tao/SystemException.h\"" << endl
<< "#include \"ace/SString.h\"" << endl << endl;
}