summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-06-10 14:51:08 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-06-10 14:51:08 +0000
commit5c7a25ecf92c7eeccfe86f51710d7959cd6acf5a (patch)
treefb317c76166caac55545d66891a183d0f72cc30d
parentdfec1870e7edb3a57f37b018e608410c11795511 (diff)
downloadATCD-5c7a25ecf92c7eeccfe86f51710d7959cd6acf5a.tar.gz
ChangeLogTag: Tue Jun 10 09:33:41 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog20
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp63
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService/tmplinst.cpp2
4 files changed, 74 insertions, 13 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index bdddb643dae..9c343381053 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,23 @@
+Tue Jun 10 09:33:41 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * orbsvcs\orbsvcs\IFRService\ComponentDef_i.cpp:
+
+ Cosmetic changes.
+
+ * orbsvcs\orbsvcs\IFRService\HomeDef_i.cpp:
+ * orbsvcs\orbsvcs\IFRService\tmplinst.cpp:
+
+ Added a specialization for the
+ TAO_IFR_Desc_Utils<>::fill_desc_begin_ex() method when the
+ template parameters are CORBA::OperationDescription and
+ TAO_OperationDef_i, since this method, although not called
+ with these parameters, requires a type code member 'type' that
+ OperationDescription calls 'result'. Also removed
+ the explicit instantiation for the template class from
+ tmplinst.cpp and put it immediately after the specialization,
+ to make sure that things are seen by the compiler in the
+ necessary order.
+
Mon Jun 9 19:20:27 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
* orbsvcs/IFR_Service/ifr_adding_visitor.cpp:
diff --git a/TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp
index a702ebc7261..0ddd118f230 100644
--- a/TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp
+++ b/TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp
@@ -61,6 +61,7 @@ TAO_Port_Utils<CORBA::ComponentIR::UsesDef>::set_is_multiple (
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
template class TAO_Port_Desc_Seq_Utils<CORBA::ComponentIR::UsesDescriptionSeq>;
template class TAO_Port_Desc_Seq_Utils<CORBA::ComponentIR::EventPortDescriptionSeq>;
template class TAO_Port_Utils<CORBA::ComponentIR::UsesDef>;
@@ -72,6 +73,7 @@ template class TAO_Port_Utils<CORBA::ComponentIR::UsesDef>;
#pragma instantiate TAO_Port_Utils<CORBA::ComponentIR::UsesDef>
#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION*/
+
// ==============================================================
TAO_ComponentDef_i::TAO_ComponentDef_i (
diff --git a/TAO/orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp
index b6883d6799b..d055ab8e8e3 100644
--- a/TAO/orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp
+++ b/TAO/orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp
@@ -14,6 +14,57 @@ ACE_RCSID (IFRService,
HomeDef_i,
"$Id$")
+// Specialization
+template<>
+void
+TAO_IFR_Desc_Utils<CORBA::OperationDescription,
+ TAO_OperationDef_i>::fill_desc_begin_ex (
+ CORBA::OperationDescription &desc,
+ TAO_Repository_i *repo,
+ ACE_Configuration_Section_Key &key
+ ACE_ENV_ARG_DECL
+ )
+{
+ TAO_OperationDef_i impl (repo);
+ impl.section_key (key);
+
+ desc.name = impl.name_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ desc.id = impl.id_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ ACE_TString holder;
+ repo->config ()->get_string_value (key,
+ "container_id",
+ holder);
+ desc.defined_in = holder.fast_rep ();
+
+ desc.version = impl.version_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ ACE_TString result_path;
+ repo->config ()->get_string_value (key,
+ "result",
+ result_path);
+ TAO_IDLType_i *result =
+ TAO_IFR_Service_Utils::path_to_idltype (result_path,
+ repo);
+ desc.result = result->type_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+}
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+template class TAO_IFR_Desc_Utils<CORBA::OperationDescription, TAO_OperationDef_i>;
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+#pragma instantiate TAO_IFR_Desc_Utils<CORBA::OperationDescription, TAO_OperationDef_i>
+
+#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION*/
+
+// ==============================================================
+
TAO_HomeDef_i::TAO_HomeDef_i (TAO_Repository_i *repo)
: TAO_IRObject_i (repo),
TAO_Container_i (repo),
@@ -789,7 +840,7 @@ TAO_HomeDef_i::fill_op_desc (ACE_Configuration_Section_Key &key,
0,
op_key);
TAO_IFR_Desc_Utils<CORBA::OperationDescription,
- TAO_OperationDef_i>::fill_desc_begin (
+ TAO_OperationDef_i>::fill_desc_begin_ex (
od,
this->repo_,
op_key
@@ -797,16 +848,6 @@ TAO_HomeDef_i::fill_op_desc (ACE_Configuration_Section_Key &key,
);
ACE_CHECK;
- ACE_TString holder;
- this->repo_->config ()->get_string_value (op_key,
- "result",
- holder);
- TAO_IDLType_i *result =
- TAO_IFR_Service_Utils::path_to_idltype (holder,
- this->repo_);
- od.result = result->type_i (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
TAO_OperationDef_i impl (this->repo_);
impl.section_key (op_key);
od.mode = impl.mode_i (ACE_ENV_SINGLE_ARG_PARAMETER);
diff --git a/TAO/orbsvcs/orbsvcs/IFRService/tmplinst.cpp b/TAO/orbsvcs/orbsvcs/IFRService/tmplinst.cpp
index 7e7df0b718c..48d855b117a 100644
--- a/TAO/orbsvcs/orbsvcs/IFRService/tmplinst.cpp
+++ b/TAO/orbsvcs/orbsvcs/IFRService/tmplinst.cpp
@@ -146,7 +146,6 @@ template class TAO_Port_Utils<CORBA::ComponentIR::PublishesDef>;
template class TAO_Port_Utils<CORBA::ComponentIR::ConsumesDef>;
template class TAO_IFR_Strseq_Utils<CORBA::RepositoryIdSeq>;
template class TAO_IFR_Strseq_Utils<CORBA::ContextIdSeq>;
-template class TAO_IFR_Desc_Utils<CORBA::OperationDescription, TAO_OperationDef_i>;
template class TAO_IFR_Desc_Utils<CORBA::ComponentIR::HomeDescription, TAO_HomeDef_i>;
template class TAO_IFR_Desc_Utils<CORBA::ExceptionDescription, TAO_ExceptionDef_i>;
template class TAO_IFR_Desc_Utils<CORBA::ExtAttributeDescription, TAO_AttributeDef_i>;
@@ -288,7 +287,6 @@ template class TAO_IFR_Desc_Utils<CORBA::ExtAttributeDescription, TAO_AttributeD
#pragma instantiate TAO_Port_Utils<CORBA::ComponentIR::ConsumesDef>
#pragma instantiate TAO_IFR_Strseq_Utils<CORBA::RepositoryIdSeq>
#pragma instantiate TAO_IFR_Strseq_Utils<CORBA::ContextIdSeq>
-#pragma instantiate TAO_IFR_Desc_Utils<CORBA::OperationDescription, TAO_OperationDef_i>
#pragma instantiate TAO_IFR_Desc_Utils<CORBA::ComponentIR::HomeDescription, TAO_HomeDef_i>
#pragma instantiate TAO_IFR_Desc_Utils<CORBA::ExceptionDescription, TAO_ExceptionDef_i>
#pragma instantiate TAO_IFR_Desc_Utils<CORBA::ExtAttributeDescription, TAO_AttributeDef_i>