OpenDDS  Snapshot(2023/04/07-19:43)
Public Member Functions | Private Attributes | List of all members
composite_generator Class Reference

#include <dds_generator.h>

Inheritance diagram for composite_generator:
Inheritance graph
[legend]
Collaboration diagram for composite_generator:
Collaboration graph
[legend]

Public Member Functions

void gen_prologue ()
 
void gen_epilogue ()
 
bool gen_const (UTL_ScopedName *name, bool nestedInInteface, AST_Constant *constant)
 
bool gen_enum (AST_Enum *node, UTL_ScopedName *name, const std::vector< AST_EnumVal *> &contents, const char *repoid)
 
bool gen_struct (AST_Structure *node, UTL_ScopedName *name, const std::vector< AST_Field *> &fields, AST_Type::SIZE_TYPE size, const char *repoid)
 
bool gen_struct_fwd (UTL_ScopedName *name, AST_Type::SIZE_TYPE size)
 
bool gen_typedef (AST_Typedef *node, UTL_ScopedName *name, AST_Type *base, const char *repoid)
 
bool gen_interf (AST_Interface *node, UTL_ScopedName *name, bool local, const std::vector< AST_Interface *> &inherits, const std::vector< AST_Interface *> &inherits_flat, const std::vector< AST_Attribute *> &attrs, const std::vector< AST_Operation *> &ops, const char *repoid)
 
bool gen_interf_fwd (UTL_ScopedName *name)
 
bool gen_native (AST_Native *node, UTL_ScopedName *name, const char *repoid)
 
bool gen_union (AST_Union *node, UTL_ScopedName *name, const std::vector< AST_UnionBranch *> &branches, AST_Type *discriminator, const char *repoid)
 
bool gen_union_fwd (AST_UnionFwd *, UTL_ScopedName *name, AST_Type::SIZE_TYPE size)
 
 composite_generator ()
 
template<typename InputIterator >
 composite_generator (InputIterator begin, InputIterator end)
 
void add_generator (dds_generator *gen)
 
- Public Member Functions inherited from dds_generator
virtual ~dds_generator ()=0
 
virtual bool do_included_files () const
 

Private Attributes

std::vector< dds_generator * > components_
 

Additional Inherited Members

- Static Public Member Functions inherited from dds_generator
static std::string get_tag_name (const std::string &base_name, bool nested_key_only=false)
 
static std::string get_xtag_name (UTL_ScopedName *name)
 
static bool cxx_escaped (const std::string &s)
 
static std::string valid_var_name (const std::string &str)
 
static std::string to_string (Identifier *id, EscapeContext ec=EscapeContext_Normal)
 
static std::string scoped_helper (UTL_ScopedName *sn, const char *sep, EscapeContext cxt=EscapeContext_Normal)
 
static std::string module_scope_helper (UTL_ScopedName *sn, const char *sep, EscapeContext cxt=EscapeContext_Normal)
 

Detailed Description

Definition at line 135 of file dds_generator.h.

Constructor & Destructor Documentation

◆ composite_generator() [1/2]

composite_generator::composite_generator ( )
inline

Definition at line 172 of file dds_generator.h.

172 : components_() {}
std::vector< dds_generator * > components_

◆ composite_generator() [2/2]

template<typename InputIterator >
composite_generator::composite_generator ( InputIterator  begin,
InputIterator  end 
)
inline

Definition at line 175 of file dds_generator.h.

176  : components_(begin, end) {}
std::vector< dds_generator * > components_

Member Function Documentation

◆ add_generator()

void composite_generator::add_generator ( dds_generator gen)
inline

Definition at line 178 of file dds_generator.h.

Referenced by dds_visitor::dds_visitor().

178 { components_.push_back(gen); }
std::vector< dds_generator * > components_

◆ gen_const()

bool composite_generator::gen_const ( UTL_ScopedName *  name,
bool  nestedInInteface,
AST_Constant *  constant 
)
virtual

Reimplemented from dds_generator.

Definition at line 148 of file dds_generator.cpp.

Referenced by dds_visitor::visit_constant().

150 {
151  for (vector<dds_generator*>::iterator it(components_.begin());
152  it != components_.end(); ++it) {
153  if (!constant->imported() || (*it)->do_included_files())
154  if (!(*it)->gen_const(name, nestedInInteface, constant))
155  return false;
156  }
157 
158  return true;
159 }
std::vector< dds_generator * > components_
const char *const name
Definition: debug.cpp:60

◆ gen_enum()

bool composite_generator::gen_enum ( AST_Enum *  node,
UTL_ScopedName *  name,
const std::vector< AST_EnumVal *> &  contents,
const char *  repoid 
)
virtual

Reimplemented from dds_generator.

Definition at line 161 of file dds_generator.cpp.

Referenced by dds_visitor::visit_enum().

163 {
164  for (vector<dds_generator*>::iterator it(components_.begin());
165  it != components_.end(); ++it) {
166  if (!node->imported() || (*it)->do_included_files())
167  if (!(*it)->gen_enum(node, name, contents, repoid))
168  return false;
169  }
170 
171  return true;
172 }
std::vector< dds_generator * > components_
const char *const name
Definition: debug.cpp:60

◆ gen_epilogue()

void composite_generator::gen_epilogue ( )
virtual

Reimplemented from dds_generator.

Definition at line 140 of file dds_generator.cpp.

Referenced by dds_visitor::visit_root().

141 {
142  for (vector<dds_generator*>::iterator it(components_.begin());
143  it != components_.end(); ++it) {
144  (*it)->gen_epilogue();
145  }
146 }
std::vector< dds_generator * > components_

◆ gen_interf()

bool composite_generator::gen_interf ( AST_Interface *  node,
UTL_ScopedName *  name,
bool  local,
const std::vector< AST_Interface *> &  inherits,
const std::vector< AST_Interface *> &  inherits_flat,
const std::vector< AST_Attribute *> &  attrs,
const std::vector< AST_Operation *> &  ops,
const char *  repoid 
)
virtual

Reimplemented from dds_generator.

Definition at line 213 of file dds_generator.cpp.

Referenced by dds_visitor::visit_interface().

218 {
219  for (vector<dds_generator*>::iterator it(components_.begin());
220  it != components_.end(); ++it) {
221  if (!node->imported() || (*it)->do_included_files())
222  if (!(*it)->gen_interf(node, name, local, inherits, inh_flat,
223  attrs, ops, repoid))
224  return false;
225  }
226 
227  return true;
228 }
std::vector< dds_generator * > components_
const char *const name
Definition: debug.cpp:60

◆ gen_interf_fwd()

bool composite_generator::gen_interf_fwd ( UTL_ScopedName *  name)
virtual

Reimplemented from dds_generator.

Definition at line 230 of file dds_generator.cpp.

Referenced by dds_visitor::visit_interface_fwd().

231 {
232  for (vector<dds_generator*>::iterator it(components_.begin());
233  it != components_.end(); ++it) {
234  if (!(*it)->gen_interf_fwd(name))
235  return false;
236  }
237 
238  return true;
239 }
std::vector< dds_generator * > components_
const char *const name
Definition: debug.cpp:60

◆ gen_native()

bool composite_generator::gen_native ( AST_Native *  node,
UTL_ScopedName *  name,
const char *  repoid 
)
virtual

Reimplemented from dds_generator.

Definition at line 241 of file dds_generator.cpp.

Referenced by dds_visitor::visit_native().

242 {
243  for (vector<dds_generator*>::iterator it(components_.begin());
244  it != components_.end(); ++it) {
245  if (!node->imported() || (*it)->do_included_files())
246  if (!(*it)->gen_native(node, name, repoid))
247  return false;
248  }
249 
250  return true;
251 }
std::vector< dds_generator * > components_
const char *const name
Definition: debug.cpp:60

◆ gen_prologue()

void composite_generator::gen_prologue ( )
virtual

Reimplemented from dds_generator.

Definition at line 132 of file dds_generator.cpp.

Referenced by dds_visitor::visit_root().

133 {
134  for (vector<dds_generator*>::iterator it(components_.begin());
135  it != components_.end(); ++it) {
136  (*it)->gen_prologue();
137  }
138 }
std::vector< dds_generator * > components_

◆ gen_struct()

bool composite_generator::gen_struct ( AST_Structure *  node,
UTL_ScopedName *  name,
const std::vector< AST_Field *> &  fields,
AST_Type::SIZE_TYPE  size,
const char *  repoid 
)
virtual

Implements dds_generator.

Definition at line 174 of file dds_generator.cpp.

Referenced by dds_visitor::visit_structure().

177 {
178  for (vector<dds_generator*>::iterator it(components_.begin());
179  it != components_.end(); ++it) {
180  if (!node->imported() || (*it)->do_included_files())
181  if (!(*it)->gen_struct(node, name, fields, size, repoid))
182  return false;
183  }
184 
185  return true;
186 }
std::vector< dds_generator * > components_
const char *const name
Definition: debug.cpp:60

◆ gen_struct_fwd()

bool composite_generator::gen_struct_fwd ( UTL_ScopedName *  name,
AST_Type::SIZE_TYPE  size 
)
virtual

Reimplemented from dds_generator.

Definition at line 188 of file dds_generator.cpp.

Referenced by dds_visitor::visit_structure_fwd().

190 {
191  for (vector<dds_generator*>::iterator it(components_.begin());
192  it != components_.end(); ++it) {
193  if (!(*it)->gen_struct_fwd(name, size))
194  return false;
195  }
196 
197  return true;
198 }
std::vector< dds_generator * > components_
const char *const name
Definition: debug.cpp:60

◆ gen_typedef()

bool composite_generator::gen_typedef ( AST_Typedef *  node,
UTL_ScopedName *  name,
AST_Type *  base,
const char *  repoid 
)
virtual

Implements dds_generator.

Definition at line 200 of file dds_generator.cpp.

Referenced by dds_visitor::visit_typedef().

202 {
203  for (vector<dds_generator*>::iterator it(components_.begin());
204  it != components_.end(); ++it) {
205  if (!node->imported() || (*it)->do_included_files())
206  if (!(*it)->gen_typedef(node, name, base, repoid))
207  return false;
208  }
209 
210  return true;
211 }
std::vector< dds_generator * > components_
const char *const name
Definition: debug.cpp:60

◆ gen_union()

bool composite_generator::gen_union ( AST_Union *  node,
UTL_ScopedName *  name,
const std::vector< AST_UnionBranch *> &  branches,
AST_Type *  discriminator,
const char *  repoid 
)
virtual

Implements dds_generator.

Definition at line 253 of file dds_generator.cpp.

Referenced by dds_visitor::visit_union().

258 {
259  for (vector<dds_generator*>::iterator it(components_.begin());
260  it != components_.end(); ++it) {
261  if (!node->imported() || (*it)->do_included_files())
262  if (!(*it)->gen_union(node, name, branches, discriminator, repoid))
263  return false;
264  }
265 
266  return true;
267 }
std::vector< dds_generator * > components_
const char *const name
Definition: debug.cpp:60

◆ gen_union_fwd()

bool composite_generator::gen_union_fwd ( AST_UnionFwd *  uf,
UTL_ScopedName *  name,
AST_Type::SIZE_TYPE  size 
)
virtual

Reimplemented from dds_generator.

Definition at line 269 of file dds_generator.cpp.

Referenced by dds_visitor::visit_union_fwd().

271 {
272  for (vector<dds_generator*>::iterator it(components_.begin());
273  it != components_.end(); ++it) {
274  if (!(*it)->gen_union_fwd(uf, name, size))
275  return false;
276  }
277 
278  return true;
279 }
std::vector< dds_generator * > components_
const char *const name
Definition: debug.cpp:60

Member Data Documentation

◆ components_

std::vector<dds_generator*> composite_generator::components_
private

Definition at line 181 of file dds_generator.h.


The documentation for this class was generated from the following files: