AstTypeClassification Namespace Reference


Typedefs

typedef size_t Classification

Functions

AST_Type * resolveActualType (AST_Type *element)
Classification classify (AST_Type *type)

Variables

const Classification CL_UNKNOWN = 0
const Classification CL_SCALAR = 1
const Classification CL_PRIMITIVE = 2
const Classification CL_STRUCTURE = 4
const Classification CL_STRING = 8
const Classification CL_ENUM = 16
const Classification CL_UNION = 32
const Classification CL_ARRAY = 64
const Classification CL_SEQUENCE = 128
const Classification CL_WIDE = 256
const Classification CL_BOUNDED = 512
const Classification CL_INTERFACE = 1024
const Classification CL_FIXED = 2048


Typedef Documentation

typedef size_t AstTypeClassification::Classification

Definition at line 279 of file dds_generator.h.


Function Documentation

AST_Type* AstTypeClassification::resolveActualType ( AST_Type *  element  )  [inline]

Definition at line 229 of file dds_generator.h.

Referenced by array_dims(), assign_field(), classify(), findSizeCommon(), gen_array(), gen_copyto(), gen_field_getValue(), gen_field_getValueFromSerialized(), gen_sequence(), marshal_generator::gen_struct(), SafetyProfileGenerator::gen_struct(), FaceGenerator::gen_struct(), metaclass_generator::gen_typedef(), langmap_generator::gen_typedef(), GeneratorBase::generate_union_field(), GeneratorBase::generateAssign(), generateCaseBody(), GeneratorBase::generateCopyCtor(), GeneratorBase::generateEqual(), GeneratorBase::generateReset(), generateSwitchForUnion(), getV8Type(), is_bounded_type(), map_type(), max_marshaled_size(), NestedForLoops::NestedForLoops(), GeneratorBase::GenerateGettersAndSetters::operator()(), streamCommon(), and to_cxx_type().

00230   {
00231     if (element->node_type() == AST_Decl::NT_typedef) {
00232       AST_Typedef* td = AST_Typedef::narrow_from_decl(element);
00233       return td->primitive_base_type();
00234     }
00235 
00236     switch(element->node_type()) {
00237     case AST_Decl::NT_interface_fwd:
00238     {
00239       AST_InterfaceFwd* td = AST_InterfaceFwd::narrow_from_decl(element);
00240       return td->full_definition();
00241       break;
00242     }
00243     case AST_Decl::NT_valuetype_fwd:
00244     {
00245       AST_ValueTypeFwd* td = AST_ValueTypeFwd::narrow_from_decl(element);
00246       return td->full_definition();
00247       break;
00248     }
00249     case AST_Decl::NT_union_fwd:
00250     {
00251       AST_UnionFwd* td = AST_UnionFwd::narrow_from_decl(element);
00252       return td->full_definition();
00253       break;
00254     }
00255     case AST_Decl::NT_struct_fwd:
00256     {
00257       AST_StructureFwd* td = AST_StructureFwd::narrow_from_decl(element);
00258       return td->full_definition();
00259       break;
00260     }
00261     case AST_Decl::NT_component_fwd:
00262     {
00263       AST_ComponentFwd* td = AST_ComponentFwd::narrow_from_decl(element);
00264       return td->full_definition();
00265       break;
00266     }
00267     case AST_Decl::NT_eventtype_fwd:
00268     {
00269       AST_EventTypeFwd* td = AST_EventTypeFwd::narrow_from_decl(element);
00270       return td->full_definition();
00271       break;
00272     }
00273     default :
00274       return element;
00275       break;
00276     }
00277   }

Classification AstTypeClassification::classify ( AST_Type *  type  )  [inline]

Definition at line 285 of file dds_generator.h.

References CL_ARRAY, CL_BOUNDED, CL_ENUM, CL_FIXED, CL_INTERFACE, CL_PRIMITIVE, CL_SCALAR, CL_SEQUENCE, CL_STRING, CL_STRUCTURE, CL_UNION, CL_UNKNOWN, CL_WIDE, and resolveActualType().

Referenced by assign_field(), compare_field(), findSizeCommon(), func(), gen_array(), gen_copyto(), gen_field_createQC(), gen_field_getValue(), gen_field_getValueFromSerialized(), gen_sequence(), SafetyProfileGenerator::gen_sequence(), FaceGenerator::gen_sequence(), SafetyProfileGenerator::gen_struct(), FaceGenerator::gen_struct(), metaclass_generator::gen_typedef(), langmap_generator::gen_typedef(), GeneratorBase::generate_union_field(), GeneratorBase::generateAssign(), generateCaseBody(), GeneratorBase::generateCopyCtor(), GeneratorBase::generateEqual(), GeneratorBase::generateReset(), getV8Type(), is_bounded_type(), map_type(), GeneratorBase::GenerateGettersAndSetters::operator()(), operator<<(), streamCommon(), and to_cxx_type().

00286   {
00287     type = AstTypeClassification::resolveActualType(type);
00288     switch (type->node_type()) {
00289     case AST_Decl::NT_pre_defined: {
00290       AST_PredefinedType* p = AST_PredefinedType::narrow_from_decl(type);
00291       switch (p->pt()) {
00292       case AST_PredefinedType::PT_any:
00293       case AST_PredefinedType::PT_object:
00294         return CL_UNKNOWN;
00295       case AST_PredefinedType::PT_wchar:
00296         return CL_SCALAR | CL_PRIMITIVE | CL_WIDE;
00297       default:
00298         return CL_SCALAR | CL_PRIMITIVE;
00299       }
00300     }
00301     case AST_Decl::NT_array:
00302       return CL_ARRAY;
00303     case AST_Decl::NT_union:
00304       return CL_UNION;
00305     case AST_Decl::NT_string:
00306     case AST_Decl::NT_wstring:
00307       return CL_SCALAR | CL_STRING |
00308         ((AST_String::narrow_from_decl(type)->max_size()->ev()->u.ulval == 0)
00309         ? 0 : CL_BOUNDED) |
00310         ((type->node_type() == AST_Decl::NT_wstring) ? CL_WIDE : 0);
00311     case AST_Decl::NT_sequence:
00312       return CL_SEQUENCE |
00313         ((AST_Sequence::narrow_from_decl(type)->unbounded()) ? 0 : CL_BOUNDED);
00314     case AST_Decl::NT_struct:
00315       return CL_STRUCTURE;
00316     case AST_Decl::NT_enum:
00317       return CL_SCALAR | CL_ENUM;
00318     case AST_Decl::NT_interface:
00319       return CL_INTERFACE;
00320 #ifdef ACE_HAS_CDR_FIXED
00321     case AST_Decl::NT_fixed:
00322       return CL_FIXED;
00323 #endif
00324     default:
00325       return CL_UNKNOWN;
00326     }
00327   }


Variable Documentation

const Classification AstTypeClassification::CL_UNKNOWN = 0

Definition at line 280 of file dds_generator.h.

Referenced by classify(), findSizeCommon(), gen_sequence(), and streamCommon().

const Classification AstTypeClassification::CL_SCALAR = 1

Definition at line 280 of file dds_generator.h.

Referenced by assign_field(), classify(), compare_field(), func(), gen_copyto(), gen_field_createQC(), gen_field_getValue(), and gen_field_getValueFromSerialized().

const Classification AstTypeClassification::CL_PRIMITIVE = 2

Definition at line 280 of file dds_generator.h.

Referenced by classify(), findSizeCommon(), gen_array(), gen_sequence(), metaclass_generator::gen_typedef(), GeneratorBase::generate_union_field(), GeneratorBase::generateAssign(), GeneratorBase::generateCopyCtor(), GeneratorBase::generateEqual(), GeneratorBase::generateReset(), getV8Type(), map_type(), GeneratorBase::GenerateGettersAndSetters::operator()(), operator<<(), streamCommon(), and to_cxx_type().

const Classification AstTypeClassification::CL_STRUCTURE = 4

Definition at line 281 of file dds_generator.h.

Referenced by assign_field(), classify(), gen_field_createQC(), gen_field_getValue(), gen_field_getValueFromSerialized(), metaclass_generator::gen_typedef(), GeneratorBase::generate_union_field(), GeneratorBase::generateAssign(), GeneratorBase::generateCopyCtor(), GeneratorBase::generateEqual(), GeneratorBase::generateReset(), getV8Type(), is_bounded_type(), map_type(), and GeneratorBase::GenerateGettersAndSetters::operator()().

const Classification AstTypeClassification::CL_STRING = 8

Definition at line 281 of file dds_generator.h.

Referenced by assign_field(), classify(), compare_field(), findSizeCommon(), func(), gen_array(), gen_copyto(), gen_field_getValue(), gen_field_getValueFromSerialized(), gen_sequence(), SafetyProfileGenerator::gen_sequence(), FaceGenerator::gen_sequence(), SafetyProfileGenerator::gen_struct(), FaceGenerator::gen_struct(), metaclass_generator::gen_typedef(), langmap_generator::gen_typedef(), GeneratorBase::generate_union_field(), GeneratorBase::generateAssign(), generateCaseBody(), GeneratorBase::generateCopyCtor(), GeneratorBase::generateEqual(), GeneratorBase::generateReset(), getV8Type(), is_bounded_type(), map_type(), GeneratorBase::GenerateGettersAndSetters::operator()(), operator<<(), streamCommon(), and to_cxx_type().

const Classification AstTypeClassification::CL_ENUM = 16

Definition at line 281 of file dds_generator.h.

Referenced by classify(), findSizeCommon(), gen_array(), gen_copyto(), gen_field_getValue(), gen_sequence(), metaclass_generator::gen_typedef(), GeneratorBase::generate_union_field(), GeneratorBase::generateAssign(), GeneratorBase::generateCopyCtor(), GeneratorBase::generateEqual(), GeneratorBase::generateReset(), getV8Type(), map_type(), GeneratorBase::GenerateGettersAndSetters::operator()(), and to_cxx_type().

const Classification AstTypeClassification::CL_UNION = 32

Definition at line 281 of file dds_generator.h.

Referenced by assign_field(), classify(), GeneratorBase::generate_union_field(), GeneratorBase::generateAssign(), GeneratorBase::generateCopyCtor(), GeneratorBase::generateEqual(), GeneratorBase::generateReset(), getV8Type(), is_bounded_type(), map_type(), and GeneratorBase::GenerateGettersAndSetters::operator()().

const Classification AstTypeClassification::CL_ARRAY = 64

Definition at line 281 of file dds_generator.h.

Referenced by assign_field(), classify(), findSizeCommon(), func(), gen_array(), gen_field_getValueFromSerialized(), gen_sequence(), SafetyProfileGenerator::gen_sequence(), FaceGenerator::gen_sequence(), SafetyProfileGenerator::gen_struct(), FaceGenerator::gen_struct(), metaclass_generator::gen_typedef(), GeneratorBase::generate_union_field(), GeneratorBase::generateAssign(), generateCaseBody(), GeneratorBase::generateCopyCtor(), GeneratorBase::generateEqual(), GeneratorBase::generateReset(), getV8Type(), is_bounded_type(), map_type(), GeneratorBase::GenerateGettersAndSetters::operator()(), and streamCommon().

const Classification AstTypeClassification::CL_SEQUENCE = 128

Definition at line 282 of file dds_generator.h.

Referenced by assign_field(), classify(), gen_copyto(), metaclass_generator::gen_typedef(), GeneratorBase::generate_union_field(), GeneratorBase::generateAssign(), GeneratorBase::generateCopyCtor(), GeneratorBase::generateEqual(), GeneratorBase::generateReset(), getV8Type(), is_bounded_type(), map_type(), and GeneratorBase::GenerateGettersAndSetters::operator()().

const Classification AstTypeClassification::CL_WIDE = 256

Definition at line 282 of file dds_generator.h.

Referenced by assign_field(), classify(), findSizeCommon(), func(), gen_array(), gen_copyto(), gen_field_getValueFromSerialized(), gen_sequence(), SafetyProfileGenerator::gen_sequence(), FaceGenerator::gen_sequence(), SafetyProfileGenerator::gen_struct(), FaceGenerator::gen_struct(), metaclass_generator::gen_typedef(), langmap_generator::gen_typedef(), GeneratorBase::generate_union_field(), generateCaseBody(), map_type(), GeneratorBase::GenerateGettersAndSetters::operator()(), operator<<(), and to_cxx_type().

const Classification AstTypeClassification::CL_BOUNDED = 512

Definition at line 282 of file dds_generator.h.

Referenced by classify(), gen_sequence(), and is_bounded_type().

const Classification AstTypeClassification::CL_INTERFACE = 1024

Definition at line 282 of file dds_generator.h.

Referenced by classify(), gen_sequence(), and map_type().

const Classification AstTypeClassification::CL_FIXED = 2048

Definition at line 283 of file dds_generator.h.

Referenced by classify(), GeneratorBase::generate_union_field(), GeneratorBase::generateAssign(), GeneratorBase::generateCopyCtor(), GeneratorBase::generateEqual(), GeneratorBase::generateReset(), map_type(), and GeneratorBase::GenerateGettersAndSetters::operator()().


Generated on Fri Feb 12 20:06:06 2016 for OpenDDS by  doxygen 1.4.7