summaryrefslogtreecommitdiff
path: root/TAO/CIAO/CIDLC
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-04-08 18:38:04 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-04-08 18:38:04 +0000
commitc29e7dc89bccdc884516a3b8164d8980332e4ffc (patch)
tree3ff22b8640b6b0cc5140f5e2681431facc898549 /TAO/CIAO/CIDLC
parent92f87ffa62e13094e4be4abd20ca2043971a8fbb (diff)
downloadATCD-c29e7dc89bccdc884516a3b8164d8980332e4ffc.tar.gz
ChangeLogTag: Fri Apr 8 13:33:24 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/CIAO/CIDLC')
-rw-r--r--TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp233
-rw-r--r--TAO/CIAO/CIDLC/ServantSourceGenerator.cpp370
2 files changed, 470 insertions, 133 deletions
diff --git a/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp b/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp
index ef34163f4d2..a7ac846a071 100644
--- a/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp
+++ b/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp
@@ -228,76 +228,216 @@ namespace
private:
std::ostream& os;
};
-
- // Generates operations associated with attributes.
- // @@@ (JP) Need to support exceptions.
- struct AttributeEmitter : Traversal::ReadWriteAttribute,
- EmitterBase
+
+ // Generates the set operation of a ReadWriteAttribute.
+ struct WriteAttributeEmitter : Traversal::ReadWriteAttribute,
+ EmitterBase
{
- AttributeEmitter (Context& c)
+ WriteAttributeEmitter (Context& c)
: EmitterBase (c),
write_type_name_emitter_ (c.os ()),
- read_type_name_emitter_ (c.os ())
+ type_name_emitter_ (c.os ())
{
write_belongs_.node_traverser (write_type_name_emitter_);
- read_belongs_.node_traverser (read_type_name_emitter_);
+
+ edge_traverser (set_raises_);
+ set_raises_.node_traverser (type_name_emitter_);
}
-
- virtual void traverse (SemanticGraph::ReadWriteAttribute& a)
+
+ virtual void
+ pre (SemanticGraph::ReadWriteAttribute&)
{
- os << "virtual ";
-
- Traversal::ReadWriteAttribute::belongs (a, read_belongs_);
-
- os << endl
- << a.name () << " (" << endl
- << STRS[ENV_SNGL_HDR] << ")" << endl
- << STRS[EXCP_SNGL] << ";" << endl << endl;
-
- os << "virtual void" << endl
- << a.name () << " (" << endl;
-
+ os << "virtual void" << endl;
+ }
+
+ virtual void
+ name (SemanticGraph::ReadWriteAttribute& a)
+ {
+ os << a.name () << " (" << endl;
+
Traversal::ReadWriteAttribute::belongs (a, write_belongs_);
-
- os << endl
- << STRS[ENV_HDR] << ")" << endl
- << STRS[EXCP_SNGL] << ";" << endl << endl;
+
+ os << " " << a.name () << endl
+ << STRS[ENV_HDR] << ")" << endl;
+ }
+
+ virtual void
+ get_raises (SemanticGraph::ReadWriteAttribute&)
+ {
+ }
+
+ virtual void
+ set_raises_none (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << STRS[EXCP_SNGL];
+ }
+
+ virtual void
+ set_raises_pre (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << STRS[EXCP_START] << endl
+ << STRS[EXCP_SYS] << "," << endl;
+ }
+
+ virtual void
+ set_raises_post (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << "))";
+ }
+
+ virtual void
+ post (SemanticGraph::ReadWriteAttribute& a)
+ {
+ os << ";" << endl << endl;
}
+ virtual void
+ comma (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << "," << endl;
+ }
+
private:
INArgTypeNameEmitter write_type_name_emitter_;
- ReturnTypeNameEmitter read_type_name_emitter_;
+ TypeNameEmitter type_name_emitter_;
Traversal::Belongs write_belongs_;
- Traversal::Belongs read_belongs_;
+ Traversal::SetRaises set_raises_;
};
- // Generates operations associated with readonly attributes.
- // @@@ (JP) Need to support exceptions.
- struct ReadOnlyAttributeEmitter : Traversal::ReadAttribute,
- EmitterBase
+ // Generates operations associated with attributes.
+ struct AttributeEmitter : Traversal::ReadAttribute,
+ Traversal::ReadWriteAttribute,
+ EmitterBase
{
- ReadOnlyAttributeEmitter (Context& c)
+ AttributeEmitter (Context& c)
: EmitterBase (c),
- read_type_name_emitter_ (c.os ())
+ read_type_name_emitter_ (c.os ()),
+ type_name_emitter_ (c.os ())
{
read_belongs_.node_traverser (read_type_name_emitter_);
+
+ edge_traverser (get_raises_);
+ get_raises_.node_traverser (type_name_emitter_);
}
+
+ // ReadWriteAttribute
+ //
+ virtual void
+ pre (SemanticGraph::ReadWriteAttribute& a)
+ {
+ os << "virtual ";
- virtual void traverse (SemanticGraph::ReadAttribute& a)
+ Traversal::ReadWriteAttribute::belongs (a, read_belongs_);
+
+ os << endl;
+ }
+
+ virtual void
+ name (SemanticGraph::ReadWriteAttribute& a)
+ {
+ os << a.name () << " (" << endl
+ << STRS[ENV_SNGL_HDR] << ")" << endl;
+ }
+
+ virtual void
+ get_raises_none (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << STRS[EXCP_SNGL];
+ }
+
+ virtual void
+ get_raises_pre (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << STRS[EXCP_START] << endl
+ << STRS[EXCP_SYS] << "," << endl;
+ }
+
+ virtual void
+ get_raises_post (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << "))";
+ }
+
+ virtual void
+ set_raises (SemanticGraph::ReadWriteAttribute&)
+ {
+ }
+
+ virtual void
+ post (SemanticGraph::ReadWriteAttribute& a)
+ {
+ os << ";" << endl << endl;
+
+ WriteAttributeEmitter write_attribute_emitter (ctx);
+ write_attribute_emitter.traverse (a);
+ }
+
+ virtual void
+ comma (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << "," << endl;
+ }
+
+ // ReadAttribute
+ //
+ virtual void
+ pre (SemanticGraph::ReadAttribute& a)
{
os << "virtual ";
Traversal::ReadAttribute::belongs (a, read_belongs_);
+
+ os << endl;
+ }
+
+ virtual void
+ name (SemanticGraph::ReadAttribute& a)
+ {
+ os << a.name () << " (" << endl
+ << STRS[ENV_SNGL_HDR] << ")" << endl;
+ }
+
+ virtual void
+ get_raises_none (SemanticGraph::ReadAttribute&)
+ {
+ os << STRS[EXCP_SNGL];
+ }
+
+ virtual void
+ get_raises_pre (SemanticGraph::ReadAttribute&)
+ {
+ os << STRS[EXCP_START] << endl
+ << STRS[EXCP_SYS] << "," << endl;
+ }
+
+ virtual void
+ get_raises_post (SemanticGraph::ReadAttribute&)
+ {
+ os << "))";
+ }
+
+ virtual void
+ set_raises (SemanticGraph::ReadAttribute&)
+ {
+ }
- os << endl
- << a.name () << " (" << endl
- << STRS[ENV_SNGL_HDR] << ")" << endl
- << STRS[EXCP_SNGL] << ";" << endl << endl;
+ virtual void
+ post (SemanticGraph::ReadAttribute& a)
+ {
+ os << ";" << endl << endl;
}
+ virtual void
+ comma (SemanticGraph::ReadAttribute&)
+ {
+ os << "," << endl;
+ }
+
private:
ReturnTypeNameEmitter read_type_name_emitter_;
+ TypeNameEmitter type_name_emitter_;
Traversal::Belongs read_belongs_;
+ Traversal::GetRaises get_raises_;
};
struct InterfaceEmitter : Traversal::Interface,
@@ -367,10 +507,9 @@ namespace
interface_emitter.edge_traverser (defines_);
interface_emitter.edge_traverser (inherits_);
+ // Works for both read/write and readonly attributes.
AttributeEmitter attribute_emitter (ctx);
- ReadOnlyAttributeEmitter read_only_attribute_emitter (ctx);
defines_.node_traverser (attribute_emitter);
- defines_.node_traverser (read_only_attribute_emitter);
OperationEmitter operation_emitter (ctx);
defines_.node_traverser (operation_emitter);
@@ -1319,10 +1458,9 @@ namespace
interface_emitter.edge_traverser (defines);
interface_emitter.edge_traverser (interface_inherits);
+ // Works for both read/write and readonly attributes.
AttributeEmitter attribute_emitter (ctx);
- ReadOnlyAttributeEmitter read_only_attribute_emitter (ctx);
defines.node_traverser (attribute_emitter);
- defines.node_traverser (read_only_attribute_emitter);
OperationEmitter operation_emitter (ctx);
defines.node_traverser (operation_emitter);
@@ -1395,10 +1533,9 @@ namespace
component_emitter.edge_traverser (defines);
component_emitter.edge_traverser (component_inherits);
+ // Works for both read/write and readonly attributes.
AttributeEmitter attribute_emitter (ctx);
- ReadOnlyAttributeEmitter read_only_attribute_emitter (ctx);
defines.node_traverser (attribute_emitter);
- defines.node_traverser (read_only_attribute_emitter);
component_emitter.traverse (t);
}
@@ -1962,10 +2099,9 @@ namespace
home_emitter.edge_traverser (defines);
home_emitter.edge_traverser (home_inherits);
+ // Works for both read/write and readonly attributes.
AttributeEmitter attribute_emitter (ctx);
- ReadOnlyAttributeEmitter read_only_attribute_emitter (ctx);
defines.node_traverser (attribute_emitter);
- defines.node_traverser (read_only_attribute_emitter);
home_emitter.traverse (t);
}
@@ -1989,10 +2125,9 @@ namespace
interface_emitter.edge_traverser (defines);
interface_emitter.edge_traverser (inherits);
+ // Works for both read/write and readonly attributes.
AttributeEmitter attribute_emitter (ctx);
- ReadOnlyAttributeEmitter read_only_attribute_emitter (ctx);
defines.node_traverser (attribute_emitter);
- defines.node_traverser (read_only_attribute_emitter);
OperationEmitter operation_emitter (ctx);
defines.node_traverser (operation_emitter);
diff --git a/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp b/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp
index 09fee310444..be9506a5840 100644
--- a/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp
+++ b/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp
@@ -428,26 +428,129 @@ namespace
std::set<Interface*> interfaces_;
};
+ // Generates the set operation of a ReadWriteAttribute.
+ template <typename T>
+ struct WriteAttributeEmitter : Traversal::ReadWriteAttribute,
+ EmitterBase
+ {
+ WriteAttributeEmitter (Context& c, T& scope, bool swapping)
+ : EmitterBase (c),
+ scope_ (scope),
+ write_type_name_emitter_ (c.os ()),
+ type_name_emitter_ (c.os ()),
+ swapping_ (swapping)
+ {
+ write_belongs_.node_traverser (write_type_name_emitter_);
+
+ edge_traverser (set_raises_);
+ set_raises_.node_traverser (type_name_emitter_);
+ }
+
+ virtual void
+ gen_swapping_set ()
+ {
+ os << "this->activate_component (" << STRS[ENV_SNGL_ARG] << ");"
+ << "ACE_CHECK;" << endl;
+ }
+
+ virtual void
+ pre (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << "void" << endl;
+ }
+
+ virtual void
+ name (SemanticGraph::ReadWriteAttribute& a)
+ {
+ os << scope_.name () << "_Servant::" << a.name () << " (" << endl;
+
+ Traversal::ReadWriteAttribute::belongs (a, write_belongs_);
+
+ os << " " << a.name () << endl
+ << STRS[ENV_SRC] << ")" << endl;
+ }
+
+ virtual void
+ get_raises (SemanticGraph::ReadWriteAttribute&)
+ {
+ }
+
+ virtual void
+ set_raises_none (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << STRS[EXCP_SNGL];
+ }
+
+ virtual void
+ set_raises_pre (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << STRS[EXCP_START] << endl
+ << STRS[EXCP_SYS] << "," << endl;
+ }
+
+ virtual void
+ set_raises_post (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << "))" << endl;
+ }
+
+ virtual void
+ post (SemanticGraph::ReadWriteAttribute& a)
+ {
+ os << "{";
+
+ if (swapping_)
+ {
+ this->gen_swapping_set ();
+ }
+
+ os << "this->executor_->" << a.name () << " (" << endl
+ << a.name () << endl
+ << STRS[ENV_ARG] << ");" << endl
+ << "}";
+ }
+
+ virtual void
+ comma (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << "," << endl;
+ }
+
+ protected:
+ T& scope_;
+ Traversal::Belongs write_belongs_;
+
+ private:
+ INArgTypeNameEmitter write_type_name_emitter_;
+ TypeNameEmitter type_name_emitter_;
+ Traversal::SetRaises set_raises_;
+ bool swapping_;
+ };
+
// Generates operations associated with attributes.
- // @@@ (JP) Need to support exceptions.
template <typename T>
- struct AttributeEmitter : Traversal::ReadWriteAttribute,
+ struct AttributeEmitter : Traversal::ReadAttribute,
+ Traversal::ReadWriteAttribute,
EmitterBase
{
AttributeEmitter (Context& c, T& scope)
: EmitterBase (c),
scope_ (scope),
- write_type_name_emitter_ (c.os ()),
read_type_name_emitter_ (c.os ()),
+ type_name_emitter_ (c.os ()),
ace_check_return_emitter_ (c.os ())
{
- write_belongs_.node_traverser (write_type_name_emitter_);
read_belongs_.node_traverser (read_type_name_emitter_);
ace_check_return_belongs_.node_traverser (ace_check_return_emitter_);
+
+ edge_traverser (get_raises_);
+ get_raises_.node_traverser (type_name_emitter_);
}
- // Overridden by facet attribute emitter to do nothing.
-
+ // ReadWriteAttribute
+ //
+
+ // Overridden by facet attribute emitter.
virtual void
gen_swapping_get (SemanticGraph::ReadWriteAttribute& a)
{
@@ -458,36 +561,60 @@ namespace
os << endl;
}
+ // Overridden by facet attribute emitter.
virtual void
- gen_swapping_set ()
+ gen_write_operation (SemanticGraph::ReadWriteAttribute& a,
+ bool swapping)
{
- os << "this->activate_component (" << STRS[ENV_SNGL_ARG] << ");"
- << "ACE_CHECK;" << endl;
+ WriteAttributeEmitter<T> write_attribute_emitter (ctx,
+ scope_,
+ swapping);
+ write_attribute_emitter.traverse (a);
+ }
+
+ virtual void
+ pre (SemanticGraph::ReadWriteAttribute& a)
+ {
+ Traversal::ReadWriteAttribute::belongs (a, read_belongs_);
+
+ os << endl;
}
virtual void
name (SemanticGraph::ReadWriteAttribute& a)
{
- os << scope_.name () << "_Servant::" << a.name ();
+ os << scope_.name () << "_Servant::" << a.name () << " (" << endl
+ << STRS[ENV_SNGL_SRC] << ")" << endl;
}
-
+
virtual void
- traverse (SemanticGraph::ReadWriteAttribute& a)
+ get_raises_none (SemanticGraph::ReadWriteAttribute&)
{
- // Does nothing here, overridden for facet attributes.
- this->pre (a);
-
- Traversal::ReadWriteAttribute::belongs (a, read_belongs_);
-
- os << endl;
-
- // Overridden for facet attributes.
- this->name (a);
+ os << STRS[EXCP_SNGL] << endl;
+ }
+
+ virtual void
+ get_raises_pre (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << STRS[EXCP_START] << endl
+ << STRS[EXCP_SYS] << "," << endl;
+ }
+
+ virtual void
+ get_raises_post (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << "))" << endl;
+ }
+
+ virtual void
+ set_raises (SemanticGraph::ReadWriteAttribute&)
+ {
+ }
- os << " (" << endl
- << STRS[ENV_SNGL_SRC] << ")" << endl
- << STRS[EXCP_SNGL] << endl
- << "{";
+ virtual void
+ post (SemanticGraph::ReadWriteAttribute& a)
+ {
+ os << "{";
string swap_option = ctx.cl ().get_value ("custom-container", "");
bool swapping = (swap_option == "upgradeable");
@@ -501,44 +628,102 @@ namespace
<< STRS[ENV_SNGL_ARG] << ");" << endl
<< "}";
- // Does nothing here, overridden for facet attributes.
- this->pre (a);
+ this->gen_write_operation (a, swapping);
+ }
- os << "void" << endl;
+ virtual void
+ comma (SemanticGraph::ReadWriteAttribute&)
+ {
+ os << "," << endl;
+ }
+
+ // ReadAttribute
+ //
- // Overridden for facet attributes.
- this->name (a);
+ // Overridden by facet attribute emitter to do nothing.
+ virtual void
+ gen_swapping_get (SemanticGraph::ReadAttribute& a)
+ {
+ os << "this->activate_component (" << STRS[ENV_SNGL_ARG] << ");";
- os << " (" << endl;
+ Traversal::ReadAttribute::belongs (a, ace_check_return_belongs_);
+
+ os << endl;
+ }
- Traversal::ReadWriteAttribute::belongs (a, write_belongs_);
+ virtual void
+ pre (SemanticGraph::ReadAttribute& a)
+ {
+ Traversal::ReadAttribute::belongs (a, read_belongs_);
- os << " " << a.name () << endl
- << STRS[ENV_SRC] << ")" << endl
- << STRS[EXCP_SNGL] << endl
- << "{";
+ os << endl;
+ }
+
+ virtual void
+ name (SemanticGraph::ReadAttribute& a)
+ {
+ os << scope_.name () << "_Servant::" << a.name () << " (" << endl
+ << STRS[ENV_SNGL_SRC] << ")" << endl;
+ }
+
+ virtual void
+ get_raises_none (SemanticGraph::ReadAttribute&)
+ {
+ os << STRS[EXCP_SNGL] << endl;
+ }
+
+ virtual void
+ get_raises_pre (SemanticGraph::ReadAttribute&)
+ {
+ os << STRS[EXCP_START] << endl
+ << STRS[EXCP_SYS] << "," << endl;
+ }
+
+ virtual void
+ get_raises_post (SemanticGraph::ReadAttribute&)
+ {
+ os << "))" << endl;
+ }
+
+ virtual void
+ set_raises (SemanticGraph::ReadAttribute&)
+ {
+ }
+
+ virtual void
+ post (SemanticGraph::ReadAttribute& a)
+ {
+ os << "{";
+ string swap_option = ctx.cl ().get_value ("custom-container", "");
+ bool swapping = (swap_option == "upgradeable");
+
if (swapping)
{
- this->gen_swapping_set ();
+ this->gen_swapping_get (a);
}
- os << "this->executor_->" << a.name () << " (" << endl
- << a.name () << endl
- << STRS[ENV_ARG] << ");" << endl
+ os << "return this->executor_->" << a.name () << " (" << endl
+ << STRS[ENV_SNGL_ARG] << ");" << endl
<< "}";
}
+ virtual void
+ comma (SemanticGraph::ReadAttribute&)
+ {
+ os << "," << endl;
+ }
+
protected:
T& scope_;
private:
- INArgTypeNameEmitter write_type_name_emitter_;
ReturnTypeNameEmitter read_type_name_emitter_;
+ TypeNameEmitter type_name_emitter_;
AceCheckReturnEmitter ace_check_return_emitter_;
- Traversal::Belongs write_belongs_;
Traversal::Belongs read_belongs_;
Traversal::Belongs ace_check_return_belongs_;
+ Traversal::GetRaises get_raises_;
};
// Generates operations associated with readonly attributes.
@@ -653,6 +838,36 @@ namespace
<< scope_.name () << "_Servant_T<T>::" << o.name ();
}
};
+
+ struct FacetWriteAttributeEmitter
+ : WriteAttributeEmitter<SemanticGraph::Interface>
+ {
+ // Since swapping does not affect facets, we can just pass 'false'
+ // to the base class constructor, and not override gen_swapping_set().
+ FacetWriteAttributeEmitter (Context& c, SemanticGraph::Interface& i)
+ : WriteAttributeEmitter<SemanticGraph::Interface> (c, i, false)
+ {}
+
+ virtual void
+ pre (SemanticGraph::ReadWriteAttribute& a)
+ {
+ os << "template <typename T>" << endl;
+
+ WriteAttributeEmitter<SemanticGraph::Interface>::pre (a);
+ }
+
+ virtual void
+ name (SemanticGraph::ReadWriteAttribute& a)
+ {
+ os << scope_.name () << "_Servant_T<T>::"
+ << a.name () << " (" << endl;
+
+ Traversal::ReadWriteAttribute::belongs (a, write_belongs_);
+
+ os << " " << a.name () << endl
+ << STRS[ENV_SRC] << ")" << endl;
+ }
+ };
struct FacetAttributeEmitter
: AttributeEmitter<SemanticGraph::Interface>
@@ -662,57 +877,62 @@ namespace
: AttributeEmitter<SemanticGraph::Interface> (c, i)
{}
- // No-op overrides because we don't want to generate any swapping
- // code for facets.
+ // ReadWriteAttribute
+ //
+ // No-op override because we don't want to generate any swapping
+ // code for facets.
virtual void gen_swapping_get (SemanticGraph::ReadWriteAttribute&)
{
}
-
- virtual void gen_swapping_set ()
+
+ virtual void
+ gen_write_operation (SemanticGraph::ReadWriteAttribute& a,
+ bool /* swapping */)
{
+ FacetWriteAttributeEmitter write_attribute_emitter (ctx, scope_);
+ write_attribute_emitter.traverse (a);
}
-
+
virtual void
- pre (SemanticGraph::ReadWriteAttribute&)
+ pre (SemanticGraph::ReadWriteAttribute& a)
{
os << "template <typename T>" << endl;
+
+ AttributeEmitter<SemanticGraph::Interface>::pre (a);
}
virtual void
name (SemanticGraph::ReadWriteAttribute& a)
{
- os << scope_.name () << "_Servant_T<T>::" << a.name ();
+ os << scope_.name () << "_Servant_T<T>::"
+ << a.name () << " (" << endl
+ << STRS[ENV_SNGL_SRC] << ")" << endl;
}
- };
- struct FacetReadOnlyAttributeEmitter
- : ReadOnlyAttributeEmitter<SemanticGraph::Interface>
- {
- FacetReadOnlyAttributeEmitter (Context& c,
- SemanticGraph::Interface& i)
- : ReadOnlyAttributeEmitter<SemanticGraph::Interface> (c, i)
- {}
-
- // Overridden from ReadOnlyAttributeEmitter to do nothing,
- // since we don't want to generate swapping-related code
- // facet attributes.
+ // ReadAttribute
+ //
- virtual void
- gen_swapping_get (SemanticGraph::ReadAttribute&)
+ // No-op override because we don't want to generate any swapping
+ // code for facets.
+ virtual void gen_swapping_get (SemanticGraph::ReadAttribute&)
{
}
-
+
virtual void
- pre (SemanticGraph::ReadAttribute&)
+ pre (SemanticGraph::ReadAttribute& a)
{
os << "template <typename T>" << endl;
+
+ AttributeEmitter<SemanticGraph::Interface>::pre (a);
}
virtual void
name (SemanticGraph::ReadAttribute& a)
{
- os << scope_.name () << "_Servant_T<T>::" << a.name ();
+ os << scope_.name () << "_Servant_T<T>::"
+ << a.name () << " (" << endl
+ << STRS[ENV_SNGL_SRC] << ")" << endl;
}
};
@@ -754,9 +974,7 @@ namespace
interface_emitter.edge_traverser (inherits_);
FacetAttributeEmitter attribute_emitter (ctx, i);
- FacetReadOnlyAttributeEmitter read_only_attribute_emitter (ctx, i);
defines_.node_traverser (attribute_emitter);
- defines_.node_traverser (read_only_attribute_emitter);
FacetOperationEmitter operation_emitter (ctx, i);
defines_.node_traverser (operation_emitter);
@@ -3324,11 +3542,7 @@ namespace
interface_emitter.edge_traverser (interface_inherits);
AttributeEmitter<SemanticGraph::Component> attribute_emitter (ctx, t);
- ReadOnlyAttributeEmitter<
- SemanticGraph::Component
- > read_only_attribute_emitter (ctx, t);
defines.node_traverser (attribute_emitter);
- defines.node_traverser (read_only_attribute_emitter);
OperationEmitter<SemanticGraph::Component> operation_emitter (ctx, t);
defines.node_traverser (operation_emitter);
@@ -3382,11 +3596,7 @@ namespace
component_emitter.edge_traverser (defines);
AttributeEmitter<SemanticGraph::Component> attribute_emitter (ctx, t);
- ReadOnlyAttributeEmitter<
- SemanticGraph::Component
- > read_only_attribute_emitter (ctx, t);
defines.node_traverser (attribute_emitter);
- defines.node_traverser (read_only_attribute_emitter);
component_emitter.traverse (t);
}
@@ -3854,11 +4064,7 @@ namespace
interface_emitter.edge_traverser (interface_inherits);
AttributeEmitter<SemanticGraph::Home> attribute_emitter (ctx, t);
- ReadOnlyAttributeEmitter<
- SemanticGraph::Home
- > read_only_attribute_emitter (ctx, t);
defines.node_traverser (attribute_emitter);
- defines.node_traverser (read_only_attribute_emitter);
OperationEmitter<SemanticGraph::Home> operation_emitter (ctx, t);
defines.node_traverser (operation_emitter);
@@ -3966,11 +4172,7 @@ namespace
home_emitter.edge_traverser (defines);
AttributeEmitter<SemanticGraph::Home> attribute_emitter (ctx, t);
- ReadOnlyAttributeEmitter<
- SemanticGraph::Home
- > read_only_attribute_emitter (ctx, t);
defines.node_traverser (attribute_emitter);
- defines.node_traverser (read_only_attribute_emitter);
home_emitter.traverse (t);
}