summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2010-02-04 09:25:13 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2010-02-04 09:25:13 +0000
commit8189ac17a47e0d5d36697c13d064bc135787e236 (patch)
tree88d940d0512a8dbcb391f09bd075f030311df429 /TAO
parent4892ae1d9a33f71efe90f90aade4174c097b0c7b (diff)
downloadATCD-8189ac17a47e0d5d36697c13d064bc135787e236.tar.gz
Thu Feb 4 09:25:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
Merged revision 88756-88826 from idl3_plus_backend2 to svn head. * orbsvcs/IFR_Service/ifr_adding_visitor.h: * orbsvcs/IFR_Service/ifr_adding_visitor.cpp: Change IFR loader backend correspondingly with the change above to home factories and finders.
Diffstat (limited to 'TAO')
-rw-r--r--TAO/ChangeLog16
-rw-r--r--TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp90
-rw-r--r--TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h3
-rw-r--r--TAO/orbsvcs/IFR_Service/ifr_visitor.cpp6
-rw-r--r--TAO/orbsvcs/IFR_Service/ifr_visitor.h3
5 files changed, 66 insertions, 52 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 071ae6cf5cb..839efc361f4 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,13 @@
+Thu Feb 4 09:25:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ Merged revision 88756-88826 from idl3_plus_backend2 to svn head.
+
+ * orbsvcs/IFR_Service/ifr_adding_visitor.h:
+ * orbsvcs/IFR_Service/ifr_adding_visitor.cpp:
+
+ Change IFR loader backend correspondingly with the
+ change above to home factories and finders.
+
Thu Feb 4 09:15:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* TAO_IDL/*.cpp:
@@ -30,12 +40,6 @@ Thu Feb 4 08:36:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
as part of the home scope rather than in separate list
members of the home class.
- * orbsvcs/IFR_Service/ifr_adding_visitor.h:
- * orbsvcs/IFR_Service/ifr_adding_visitor.cpp:
-
- Change IFR loader backend correspondingly with the
- change above to home factories and finders.
-
Mon Feb 1 22:30:44 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
* TAO_IDL/be/be_visitor_home/factory_svs.cpp:
diff --git a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp
index 4dadcf226da..8e980c90a93 100644
--- a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp
+++ b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp
@@ -17,7 +17,7 @@
#include "ast_eventtype_fwd.h"
#include "ast_exception.h"
#include "ast_expression.h"
-#include "ast_factory.h"
+#include "ast_finder.h"
#include "ast_field.h"
#include "ast_home.h"
#include "ast_interface.h"
@@ -52,16 +52,13 @@
#include "ace/Vector_T.h"
-ACE_RCSID (IFR_Service,
- ifr_adding_visitor,
- "$Id$")
-
-ifr_adding_visitor::ifr_adding_visitor (AST_Decl *scope,
- bool in_reopened,
- bool allow_duplicate_typedefs)
+ifr_adding_visitor::ifr_adding_visitor (
+ AST_Decl *scope,
+ bool in_reopened,
+ bool allow_duplicate_typedefs)
: scope_ (scope),
- in_reopened_ (in_reopened),
- allow_duplicate_typedefs_ (allow_duplicate_typedefs)
+ in_reopened_ (in_reopened),
+ allow_duplicate_typedefs_ (allow_duplicate_typedefs)
{
}
@@ -582,7 +579,7 @@ ifr_adding_visitor::visit_valuetype (AST_ValueType *node)
try
{
- // Is this interface already in the respository?
+ // Is this valuetype already in the respository?
CORBA::Contained_var prev_def =
be_global->repository ()->lookup_id (node->repoID ());
@@ -1626,12 +1623,6 @@ ifr_adding_visitor::visit_home (AST_Home *node)
}
int
-ifr_adding_visitor::visit_factory (AST_Factory *)
-{
- return 0;
-}
-
-int
ifr_adding_visitor::visit_structure (AST_Structure *node)
{
if (node->imported () && !be_global->do_included_files ())
@@ -3909,6 +3900,7 @@ ifr_adding_visitor::fill_exceptions (CORBA::ExceptionDefSeq &result,
return;
}
case AST_Decl::NT_factory:
+ case AST_Decl::NT_finder:
{
AST_Factory *f = AST_Factory::narrow_from_decl (node);
this->fill_exceptions (result,
@@ -3956,10 +3948,10 @@ ifr_adding_visitor::fill_exceptions (CORBA::ExceptionDefSeq &result,
void
ifr_adding_visitor::fill_params (CORBA::ParDescriptionSeq &result,
- AST_Operation *node)
+ UTL_Scope *node)
{
AST_Argument *arg = 0;
- CORBA::ULong n_args = static_cast<CORBA::ULong> (node->argument_count ());
+ CORBA::ULong n_args = static_cast<CORBA::ULong> (node->nmembers ());
result.length (n_args);
CORBA::ULong index = 0;
CORBA::Contained_var holder;
@@ -3988,26 +3980,33 @@ void
ifr_adding_visitor::visit_all_factories (AST_Home *node,
CORBA::ComponentIR::HomeDef_ptr h)
{
- AST_Operation **tmp = 0;
CORBA::Contained_var contained;
CORBA::ComponentIR::FactoryDef_var new_def;
- for (ACE_Unbounded_Queue_Iterator<AST_Operation *> i (node->factories ());
- ! i.done ();
- i.advance ())
+ for (UTL_ScopeActiveIterator h_iter (node,
+ UTL_Scope::IK_decls);
+ !h_iter.is_done ();
+ h_iter.next ())
{
- i.next (tmp);
+ AST_Decl *d = h_iter.item ();
+ AST_Decl::NodeType nt = d->node_type ();
+
+ if (nt != AST_Decl::NT_factory)
+ {
+ continue;
+ }
+
+ AST_Factory *f = AST_Factory::narrow_from_decl (d);
+
CORBA::ParDescriptionSeq params;
- this->fill_params (params,
- *tmp);
+ this->fill_params (params, f);
CORBA::ExceptionDefSeq exceptions;
- this->fill_exceptions (exceptions,
- *tmp);
+ this->fill_exceptions (exceptions, f);
- new_def = h->create_factory ((*tmp)->repoID (),
- (*tmp)->local_name ()->get_string (),
- (*tmp)->version (),
+ new_def = h->create_factory (f->repoID (),
+ f->local_name ()->get_string (),
+ f->version (),
params,
exceptions);
}
@@ -4017,26 +4016,31 @@ void
ifr_adding_visitor::visit_all_finders (AST_Home *node,
CORBA::ComponentIR::HomeDef_ptr h)
{
- AST_Operation **tmp = 0;
+ AST_Finder *f = 0;
CORBA::Contained_var contained;
CORBA::ComponentIR::FinderDef_var new_def;
- for (ACE_Unbounded_Queue_Iterator<AST_Operation *> i (node->finders ());
- ! i.done ();
- i.advance ())
+ for (UTL_ScopeActiveIterator h_iter (node,
+ UTL_Scope::IK_decls);
+ !h_iter.is_done ();
+ h_iter.next ())
{
- i.next (tmp);
+ f = AST_Finder::narrow_from_decl (h_iter.item ());
+
+ if (f == 0)
+ {
+ continue;
+ }
+
CORBA::ParDescriptionSeq params;
- this->fill_params (params,
- *tmp);
+ this->fill_params (params, f);
CORBA::ExceptionDefSeq exceptions;
- this->fill_exceptions (exceptions,
- *tmp);
+ this->fill_exceptions (exceptions, f);
- new_def = h->create_finder ((*tmp)->repoID (),
- (*tmp)->local_name ()->get_string (),
- (*tmp)->version (),
+ new_def = h->create_finder (f->repoID (),
+ f->local_name ()->get_string (),
+ f->version (),
params,
exceptions);
}
diff --git a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h
index 79668d18cfc..bc42e852620 100644
--- a/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h
+++ b/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.h
@@ -64,7 +64,6 @@ public:
virtual int visit_eventtype (AST_EventType *node);
virtual int visit_eventtype_fwd (AST_EventTypeFwd *node);
virtual int visit_home (AST_Home *node);
- virtual int visit_factory (AST_Factory *node);
virtual int visit_structure (AST_Structure *node);
virtual int visit_structure_fwd (AST_StructureFwd *node);
virtual int visit_exception (AST_Exception *node);
@@ -161,7 +160,7 @@ protected:
UTL_ExceptList *list);
void fill_params (CORBA::ParDescriptionSeq &result,
- AST_Operation *node);
+ UTL_Scope *node);
void visit_all_factories (AST_Home *node,
CORBA::ComponentIR::HomeDef_ptr h);
diff --git a/TAO/orbsvcs/IFR_Service/ifr_visitor.cpp b/TAO/orbsvcs/IFR_Service/ifr_visitor.cpp
index 70febf0d065..523ee0e5ea9 100644
--- a/TAO/orbsvcs/IFR_Service/ifr_visitor.cpp
+++ b/TAO/orbsvcs/IFR_Service/ifr_visitor.cpp
@@ -205,6 +205,12 @@ ifr_visitor::visit_factory (AST_Factory *)
}
int
+ifr_visitor::visit_finder (AST_Finder *)
+{
+ return 0;
+}
+
+int
ifr_visitor::visit_structure (AST_Structure *)
{
return 0;
diff --git a/TAO/orbsvcs/IFR_Service/ifr_visitor.h b/TAO/orbsvcs/IFR_Service/ifr_visitor.h
index 3352e32f1b4..a280bd84101 100644
--- a/TAO/orbsvcs/IFR_Service/ifr_visitor.h
+++ b/TAO/orbsvcs/IFR_Service/ifr_visitor.h
@@ -57,7 +57,6 @@ public:
virtual int visit_template_module (AST_Template_Module *node);
virtual int visit_template_module_inst (AST_Template_Module_Inst *node);
virtual int visit_template_module_ref (AST_Template_Module_Ref *node);
- virtual int visit_param_holder(AST_Param_Holder *node);
virtual int visit_porttype (AST_PortType *node);
virtual int visit_provides (AST_Provides *node);
virtual int visit_uses (AST_Uses *node);
@@ -71,6 +70,7 @@ public:
virtual int visit_eventtype_fwd (AST_EventTypeFwd *node);
virtual int visit_home (AST_Home *node);
virtual int visit_factory (AST_Factory *node);
+ virtual int visit_finder (AST_Finder *node);
virtual int visit_structure (AST_Structure *node);
virtual int visit_structure_fwd (AST_StructureFwd *node);
virtual int visit_exception (AST_Exception *node);
@@ -92,6 +92,7 @@ public:
virtual int visit_typedef (AST_Typedef *node);
virtual int visit_root (AST_Root *node);
virtual int visit_native (AST_Native *node);
+ virtual int visit_param_holder (AST_Param_Holder *node);
ACE_Lock &lock (void) const;
// Accessor for our lock.