summaryrefslogtreecommitdiff
path: root/CIAO/CIDLC/ExecutorMappingGenerator.cpp
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-05-28 18:54:15 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-05-28 18:54:15 +0000
commitde1b942e16961772442938d5d59acfc06a359e9b (patch)
treec7d2bf7bcbbc030232d90aef41660b2cf316117a /CIAO/CIDLC/ExecutorMappingGenerator.cpp
parentfa4e6defa72f5b6d2b4ef8cad2b00097846736fa (diff)
downloadATCD-de1b942e16961772442938d5d59acfc06a359e9b.tar.gz
ChangeLogTag: Thu May 28 18:52:27 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'CIAO/CIDLC/ExecutorMappingGenerator.cpp')
-rw-r--r--CIAO/CIDLC/ExecutorMappingGenerator.cpp106
1 files changed, 87 insertions, 19 deletions
diff --git a/CIAO/CIDLC/ExecutorMappingGenerator.cpp b/CIAO/CIDLC/ExecutorMappingGenerator.cpp
index 8bd8f38d7a6..ccfcd34e85b 100644
--- a/CIAO/CIDLC/ExecutorMappingGenerator.cpp
+++ b/CIAO/CIDLC/ExecutorMappingGenerator.cpp
@@ -471,13 +471,14 @@ namespace
//
struct MonolithEmitter : ComponentEmitter
{
- MonolithEmitter (Context& c, ostream& os)
+ MonolithEmitter (Context& c, ostream& os, CommandLine const& cl)
: ComponentEmitter (c, os),
monolith_name_emitter (c, os, "CCM_"),
attribute (c, os),
consumer (c, os),
- provider (c, os),
- type_name_emitter (c, os)
+ provider (c, os, cl),
+ type_name_emitter (c, os),
+ cl_ (cl)
{
edge_traverser (inherits);
edge_traverser (defines);
@@ -512,6 +513,13 @@ namespace
inherits_pre (Type&)
{
os << " : ";
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
}
virtual void
@@ -592,9 +600,21 @@ namespace
struct Provider : Traversal::ProviderGet, Emitter
{
- Provider (Context& c, ostream& os)
- : Emitter (c, os)
+ Provider (Context& c, ostream& os, CommandLine const& cl)
+ : Emitter (c, os),
+ cl_ (cl)
+ {
+ }
+
+ virtual void
+ pre (Type& c)
{
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
}
virtual void
@@ -620,6 +640,9 @@ namespace
{
os << ";";
}
+
+ private:
+ CommandLine const& cl_;
};
Traversal::Inherits inherits;
@@ -635,6 +658,7 @@ namespace
Traversal::Belongs provider_belongs;
FullTypeNameEmitter type_name_emitter;
+ CommandLine const& cl_;
};
@@ -807,6 +831,13 @@ namespace
inherits_pre (Type&)
{
os << " : ";
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
}
virtual void
@@ -1101,8 +1132,9 @@ namespace
struct HomeExplicitEmitter : HomeEmitter
{
- HomeExplicitEmitter (Context& c, ostream& os)
- : HomeEmitter (c, os), name_emitter (c, os, "CCM_", "Explicit")
+ HomeExplicitEmitter (Context& c, ostream& os, CommandLine const& cl)
+ : HomeEmitter (c, os), name_emitter (c, os, "CCM_", "Explicit"),
+ cl_ (cl)
{
edge_traverser (inherits);
inherits.node_traverser (name_emitter);
@@ -1124,6 +1156,13 @@ namespace
inherits_pre (Type&)
{
os << " : ";
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
}
virtual void
@@ -1165,6 +1204,7 @@ namespace
private:
Traversal::Inherits inherits;
NameMangler name_emitter;
+ CommandLine const& cl_;
};
@@ -1433,7 +1473,7 @@ namespace
virtual void
inherits (Type& i)
{
- os << " : " << i.name ();
+ os << " : " << i.scoped_name ();
}
virtual void
@@ -1509,9 +1549,10 @@ namespace
struct ComponentContextEmitter : Traversal::ComponentExecutor, Emitter
{
- ComponentContextEmitter (Context& c, ostream& os)
+ ComponentContextEmitter (Context& c, ostream& os, CommandLine const& cl)
: Emitter (c, os),
- name_emitter_ (c, os, "CCM_", "_Context")
+ name_emitter_ (c, os, "CCM_", "_Context"),
+ cl_ (cl)
{
implements_traverser_.node_traverser (name_emitter_);
}
@@ -1524,6 +1565,14 @@ namespace
//
// os << "local interface ";
os << "typedef ";
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
+
Traversal::ComponentExecutor::implements (i, implements_traverser_);
}
@@ -1555,14 +1604,16 @@ namespace
private:
NameMangler name_emitter_;
Traversal::Implements implements_traverser_;
+ CommandLine const& cl_;
};
struct ComponentExecutorEmitter : Traversal::ComponentExecutor, Emitter
{
- ComponentExecutorEmitter (Context& c, ostream& os)
+ ComponentExecutorEmitter (Context& c, ostream& os, CommandLine const& cl)
: Emitter (c, os),
- name_emitter_ (c, os, "CCM_")
+ name_emitter_ (c, os, "CCM_"),
+ cl_ (cl)
{
implements_traverser_.node_traverser (name_emitter_);
}
@@ -1583,6 +1634,13 @@ namespace
implements (Type& i)
{
os << " : ";
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
Traversal::ComponentExecutor::implements (i, implements_traverser_);
@@ -1599,14 +1657,16 @@ namespace
private:
NameMangler name_emitter_;
Traversal::Implements implements_traverser_;
+ CommandLine const& cl_;
};
struct HomeExecutorEmitter : Traversal::HomeExecutor, Emitter
{
- HomeExecutorEmitter (Context& c, ostream& os)
+ HomeExecutorEmitter (Context& c, ostream& os, CommandLine const& cl)
: Emitter (c, os),
- name_emitter_ (c, os, "CCM_")
+ name_emitter_ (c, os, "CCM_"),
+ cl_ (cl)
{
implements_traverser_.node_traverser (name_emitter_);
}
@@ -1628,6 +1688,13 @@ namespace
{
os << " : ";
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
+
Traversal::HomeExecutor::implements (i, implements_traverser_);
}
@@ -1640,6 +1707,7 @@ namespace
private:
NameMangler name_emitter_;
Traversal::Implements implements_traverser_;
+ CommandLine const& cl_;
};
//
@@ -2024,11 +2092,11 @@ generate (CommandLine const& cl,
InterfaceEmitter interface_ (ctx, os);
InterfaceFwdEmitter interface_fwd (ctx, os);
- MonolithEmitter component_monolith (ctx, os);
+ MonolithEmitter component_monolith (ctx, os, cl);
ContextEmitter component_context (ctx, os, cl);
HomeImplicitEmitter home_implicit (ctx, os);
- HomeExplicitEmitter home_explicit (ctx, os);
+ HomeExplicitEmitter home_explicit (ctx, os, cl);
HomeMainEmitter home_main (ctx, os);
defines.node_traverser (module);
@@ -2070,9 +2138,9 @@ generate (CommandLine const& cl,
//--
FullTypeNameEmitter type (ctx, os);
- ComponentContextEmitter session_component_context (ctx, os);
- ComponentExecutorEmitter session_component_executor (ctx, os);
- HomeExecutorEmitter session_home_executor (ctx, os);
+ ComponentContextEmitter session_component_context (ctx, os, cl);
+ ComponentExecutorEmitter session_component_executor (ctx, os, cl);
+ HomeExecutorEmitter session_home_executor (ctx, os, cl);
ContextPortEmitter port_context (ctx, os);
ExplicitPortEmitter port_explicit (ctx, os);