#include <value_reader_generator.h>
 | 
| bool  | gen_enum (AST_Enum *, UTL_ScopedName *name, const std::vector< AST_EnumVal *> &contents, const char *repoid) | 
|   | 
| bool  | gen_typedef (AST_Typedef *, UTL_ScopedName *, AST_Type *, const char *) | 
|   | 
| 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_union (AST_Union *, UTL_ScopedName *, const std::vector< AST_UnionBranch *> &, AST_Type *, const char *) | 
|   | 
| virtual  | ~dds_generator ()=0 | 
|   | 
| virtual bool  | do_included_files () const | 
|   | 
| virtual void  | gen_prologue () | 
|   | 
| virtual void  | gen_epilogue () | 
|   | 
| virtual bool  | gen_const (UTL_ScopedName *, bool, AST_Constant *) | 
|   | 
| virtual bool  | gen_struct_fwd (UTL_ScopedName *, AST_Type::SIZE_TYPE) | 
|   | 
| virtual bool  | gen_interf (AST_Interface *, UTL_ScopedName *, bool, const std::vector< AST_Interface *> &, const std::vector< AST_Interface *> &, const std::vector< AST_Attribute *> &, const std::vector< AST_Operation *> &, const char *) | 
|   | 
| virtual bool  | gen_interf_fwd (UTL_ScopedName *) | 
|   | 
| virtual bool  | gen_native (AST_Native *, UTL_ScopedName *, const char *) | 
|   | 
| virtual bool  | gen_union_fwd (AST_UnionFwd *, UTL_ScopedName *, AST_Type::SIZE_TYPE) | 
|   | 
Definition at line 14 of file value_reader_generator.h.
 
◆ gen_enum()
  
  
      
        
          | bool value_reader_generator::gen_enum  | 
          ( | 
          AST_Enum *  | 
          ,  | 
         
        
           | 
           | 
          UTL_ScopedName *  | 
          name,  | 
         
        
           | 
           | 
          const std::vector< AST_EnumVal *> &  | 
          contents,  | 
         
        
           | 
           | 
          const char *  | 
          repoid  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
virtual   | 
  
 
Reimplemented from dds_generator.
Definition at line 212 of file value_reader_generator.cpp.
References Function::addArg(), be_global, canonical_name(), Function::endArgs(), read(), and scoped().
  217   be_global->add_include(
"dds/DCPS/Util.h", BE_GlobalData::STREAM_H);
   218   be_global->add_include(
"dds/DCPS/ValueReader.h", BE_GlobalData::STREAM_H);
   226     read.addArg(
"value_reader", 
"OpenDDS::DCPS::ValueReader&");
   227     read.addArg(
"value", type_name + 
"&");
   231       "  static const ListEnumHelper::Pair pairs[] = {";
   233     for (
size_t i = 0; i != contents.size(); ++i) {
   239         '{' << 
'"' << idl_name << 
'"' << 
',' << contents[i]->constant_value()->ev()->u.eval << 
'}';
   244       "  ListEnumHelper helper(pairs);\n"   245       "  return value_reader.read_enum(value, helper);\n";
 
std::string canonical_name(UTL_ScopedName *sn)
 
std::string scoped(UTL_ScopedName *sn, EscapeContext ec=EscapeContext_Normal)
 
ssize_t read(ACE_HANDLE handle, void *buf, size_t len)
 
BE_GlobalData * be_global
 
 
 
 
◆ gen_struct()
  
  
      
        
          | bool value_reader_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 259 of file value_reader_generator.cpp.
References Function::addArg(), be_global, canonical_name(), Function::endArgs(), read(), and scoped().
  265   be_global->add_include(
"dds/DCPS/Util.h", BE_GlobalData::STREAM_H);
   266   be_global->add_include(
"dds/DCPS/ValueReader.h", BE_GlobalData::STREAM_H);
   269   const bool use_cxx11 = 
be_global->language_mapping() == BE_GlobalData::LANGMAP_CXX11;
   270   const std::string accessor = use_cxx11 ? 
"()" : 
"";
   276     read.addArg(
"value_reader", 
"OpenDDS::DCPS::ValueReader&");
   277     read.addArg(
"value", type_name + 
"&");
   281       "  static const ListMemberHelper::Pair pairs[] = {";
   283     for (
size_t i = 0; i != fields.size(); ++i) {
   289         '{' << 
'"' << idl_name << 
'"' << 
',' << 
be_global->get_id(fields[i]) << 
'}';
   294       "  ListMemberHelper helper(pairs);\n";
   297       "  if (!value_reader.begin_struct()) return false;\n"   298       "  XTypes::MemberId member_id;\n"   299       "  while (value_reader.begin_struct_member(member_id, helper)) {\n"   300       "    switch (member_id) {\n";
   302     for (std::vector<AST_Field*>::const_iterator pos = fields.begin(), limit = fields.end();
   303          pos != limit; ++pos) {
   304       AST_Field* 
const field = *pos;
   305       const std::string field_name = field->local_name()->get_string();
   307         "    case " << 
be_global->get_id(field) << 
": {\n";
   308       generate_read(
"value." + field_name, accessor, field->field_type(), 
"i", 3);
   316       "    if (!value_reader.end_struct_member()) return false;\n"   318       "  if (!value_reader.end_struct()) return false;\n" 
std::string canonical_name(UTL_ScopedName *sn)
 
std::string scoped(UTL_ScopedName *sn, EscapeContext ec=EscapeContext_Normal)
 
ssize_t read(ACE_HANDLE handle, void *buf, size_t len)
 
BE_GlobalData * be_global
 
 
 
 
◆ gen_typedef()
  
  
      
        
          | bool value_reader_generator::gen_typedef  | 
          ( | 
          AST_Typedef *  | 
          ,  | 
         
        
           | 
           | 
          UTL_ScopedName *  | 
          ,  | 
         
        
           | 
           | 
          AST_Type *  | 
          ,  | 
         
        
           | 
           | 
          const char *  | 
            | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
virtual   | 
  
 
 
◆ gen_union()
  
  
      
        
          | bool value_reader_generator::gen_union  | 
          ( | 
          AST_Union *  | 
          u,  | 
         
        
           | 
           | 
          UTL_ScopedName *  | 
          name,  | 
         
        
           | 
           | 
          const std::vector< AST_UnionBranch *> &  | 
          branches,  | 
         
        
           | 
           | 
          AST_Type *  | 
          discriminator,  | 
         
        
           | 
           | 
          const char *  | 
            | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
virtual   | 
  
 
Implements dds_generator.
Definition at line 326 of file value_reader_generator.cpp.
References Function::addArg(), be_global, Function::endArgs(), generateSwitchForUnion(), read(), and scoped().
  332   be_global->add_include(
"dds/DCPS/Util.h", BE_GlobalData::STREAM_H);
   333   be_global->add_include(
"dds/DCPS/ValueReader.h", BE_GlobalData::STREAM_H);
   341     read.addArg(
"value_reader", 
"OpenDDS::DCPS::ValueReader&");
   342     read.addArg(
"value", type_name + 
"&");
   346       "  if (!value_reader.begin_union()) return false;\n"   347       "  if (!value_reader.begin_discriminator()) return false;\n"   349       "    " << 
scoped(discriminator->name()) << 
" d;\n";
   350     generate_read(
"d", 
"", discriminator, 
"i", 2);
   354       "  if (!value_reader.end_discriminator()) return false;\n";
   357                            discriminator, 
"", 
"", type_name.c_str(),
   360       "  if (!value_reader.end_union()) return false;\n" 
std::string scoped(UTL_ScopedName *sn, EscapeContext ec=EscapeContext_Normal)
 
ssize_t read(ACE_HANDLE handle, void *buf, size_t len)
 
bool generateSwitchForUnion(AST_Union *u, const char *switchExpr, CommonFn commonFn, const std::vector< AST_UnionBranch *> &branches, AST_Type *discriminator, const char *statementPrefix, const char *namePrefix="", const char *uni="", bool forceDisableDefault=false, bool parens=true, bool breaks=true, CommonFn commonFn2=0)
returns true if a default: branch was generated (no default: label in IDL) 
 
BE_GlobalData * be_global
 
 
 
 
The documentation for this class was generated from the following files: