summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/ast/ast_home.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/ast/ast_home.cpp')
-rw-r--r--TAO/TAO_IDL/ast/ast_home.cpp145
1 files changed, 145 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/ast/ast_home.cpp b/TAO/TAO_IDL/ast/ast_home.cpp
new file mode 100644
index 00000000000..69a44d98bf3
--- /dev/null
+++ b/TAO/TAO_IDL/ast/ast_home.cpp
@@ -0,0 +1,145 @@
+// $Id$
+
+#include "ast_home.h"
+#include "ast_component.h"
+#include "ast_valuetype.h"
+#include "ast_visitor.h"
+#include "utl_identifier.h"
+#include "utl_indenter.h"
+#include "global_extern.h"
+
+ACE_RCSID (ast,
+ ast_home,
+ "$Id$")
+
+AST_Home::AST_Home (void)
+ : pd_base_home (0),
+ pd_managed_component (0),
+ pd_primary_key (0)
+{
+}
+
+AST_Home::AST_Home (UTL_ScopedName *n,
+ AST_Home *base_home,
+ AST_Component *managed_component,
+ AST_ValueType *primary_key)
+ : AST_Interface (n,
+ 0,
+ 0,
+ 0,
+ 0,
+ I_TRUE,
+ I_FALSE),
+ AST_Type (AST_Decl::NT_home,
+ n),
+ AST_Decl (AST_Decl::NT_home,
+ n),
+ UTL_Scope (AST_Decl::NT_home),
+ COMMON_Base (I_TRUE,
+ I_FALSE),
+ pd_base_home (base_home),
+ pd_managed_component (managed_component),
+ pd_primary_key (primary_key)
+{
+}
+
+AST_Home::~AST_Home (void)
+{
+}
+
+AST_Home *
+AST_Home::base_home (void) const
+{
+ return this->pd_base_home;
+}
+
+AST_Component *
+AST_Home::managed_component (void) const
+{
+ return this->pd_managed_component;
+}
+
+AST_ValueType *
+AST_Home::primary_key (void) const
+{
+ return this->pd_primary_key;
+}
+
+ACE_Unbounded_Queue<AST_Operation *> &
+AST_Home::factories (void)
+{
+ return this->pd_factories;
+}
+
+void
+AST_Home::factories (AST_Operation *d)
+{
+ this->pd_factories.enqueue_tail (d);
+}
+
+ACE_Unbounded_Queue<AST_Operation *> &
+AST_Home::finders (void)
+{
+ return this->pd_finders;
+}
+
+void
+AST_Home::finders (AST_Operation *d)
+{
+ this->pd_finders.enqueue_tail (d);
+}
+
+void
+AST_Home::destroy (void)
+{
+ this->AST_Interface::destroy ();
+}
+
+void
+AST_Home::dump (ACE_OSTREAM_TYPE &o)
+{
+ o << "home ";
+
+ this->local_name ()->dump (o);
+
+ o << " ";
+
+ if (this->pd_base_home != 0)
+ {
+ o << ": ";
+ this->pd_base_home->local_name ()->dump (o);
+ }
+
+ if (this->pd_managed_component != 0)
+ {
+ o << "\n";
+ o << "manages ";
+ this->pd_managed_component->local_name ()->dump (o);
+ }
+
+ if (this->pd_primary_key != 0)
+ {
+ o << "\n";
+ o << "primary key ";
+ this->pd_primary_key->local_name ()->dump (o);
+ }
+
+ o << " {\n";
+
+ UTL_Scope::dump (o);
+ idl_global->indent ()->skip_to (o);
+
+ o << "}";
+}
+
+int
+AST_Home::ast_accept (ast_visitor *visitor)
+{
+ return visitor->visit_home (this);
+}
+
+ // Narrowing.
+IMPL_NARROW_METHODS1(AST_Home, AST_Interface);
+IMPL_NARROW_FROM_DECL(AST_Home);
+IMPL_NARROW_FROM_SCOPE(AST_Home);
+