diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-06-10 14:51:08 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-06-10 14:51:08 +0000 |
commit | 5c7a25ecf92c7eeccfe86f51710d7959cd6acf5a (patch) | |
tree | fb317c76166caac55545d66891a183d0f72cc30d | |
parent | dfec1870e7edb3a57f37b018e608410c11795511 (diff) | |
download | ATCD-5c7a25ecf92c7eeccfe86f51710d7959cd6acf5a.tar.gz |
ChangeLogTag: Tue Jun 10 09:33:41 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 20 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp | 2 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp | 63 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/tmplinst.cpp | 2 |
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> |