lestes::md::literals::li_compound Class Reference

Compound literal. More...

#include <literal_info.g.hh>

Inheritance diagram for lestes::md::literals::li_compound:

lestes::md::literals::li_compound_base lestes::md::literals::literal_info_base lestes::std::object lestes::std::mem::keystone List of all members.

Public Member Functions

virtual lstring get_asm_definition_val ()
 Returns asm string representing value of the literal.
virtual lstring get_asm_definition_type ()
 Returns string representing datatype of the literal.
virtual ptr< reflection_listreflection_get () const
 for purposes of dumping
virtual ptr< field_list_listfield_values_get () const
 for purposes of dumping

Static Public Member Functions

static ptr< li_compoundcreate (ptr< ::lestes::md::types::tm_data_type_base > a__literal_info_base__type, ptr< ::lestes::std::list< srp< literal_info_base > > > a__li_compound_base__items)
 First generated factory method for class li_compound.

Protected Member Functions

 li_compound (ptr< ::lestes::md::types::tm_data_type_base > a__literal_info_base__type, ptr< ::lestes::std::list< srp< literal_info_base > > > a__li_compound_base__items)
 Generated constructor for class li_compound.
virtual void gc_mark ()
 Marking routine for class li_compound.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Compound literal.

It is composed of several literals (e.g. string "Hello" is composed of 'h','e','l','l','o' literals).

Definition at line 68 of file literal_info.g.hh.


Constructor & Destructor Documentation

lestes::md::literals::li_compound::li_compound ( ptr< ::lestes::md::types::tm_data_type_base a__literal_info_base__type,
ptr< ::lestes::std::list< srp< literal_info_base > > >  a__li_compound_base__items 
) [protected]

Generated constructor for class li_compound.

Generated constructor for class li_compound.

Author:
lsg

Definition at line 92 of file literal_info.g.cc.

Referenced by create().

00094         : li_compound_base(a__literal_info_base__type,
00095                 a__li_compound_base__items)
00096 {}


Member Function Documentation

lstring lestes::md::literals::li_compound::get_asm_definition_val (  )  [virtual]

Returns asm string representing value of the literal.

Implements lestes::md::literals::li_compound_base.

Definition at line 19 of file literal_info.cc.

References lestes::md::literals::li_compound_base::items_get(), and lassert.

00019                                             {
00020         ::std::ostringstream oss;
00021         
00022         lassert(items_get()->size()>0);
00023         
00024         lit_list_type::iterator it;
00025         it=items_get()->begin();
00026         
00027         oss << (*it)->get_asm_definition_val();
00028         it++;
00029         for(; it!=items_get()->end(); it++) {
00030                 oss <<  ',' << (*it)->get_asm_definition_val();
00031         }       
00032         
00033         return oss.str();
00034 }

lstring lestes::md::literals::li_compound::get_asm_definition_type (  )  [virtual]

Returns string representing datatype of the literal.

Implements lestes::md::literals::li_compound_base.

Definition at line 39 of file literal_info.cc.

References lestes::md::literals::li_compound_base::items_get().

00039                                              {
00040         return (*items_get()->begin())->get_asm_definition_type();
00041 }

ptr< li_compound > lestes::md::literals::li_compound::create ( ptr< ::lestes::md::types::tm_data_type_base a__literal_info_base__type,
ptr< ::lestes::std::list< srp< literal_info_base > > >  a__li_compound_base__items 
) [static]

First generated factory method for class li_compound.

This factory method for class li_compound takes values of all fields as arguments.

Author:
lsg

Definition at line 81 of file literal_info.g.cc.

References li_compound().

00083 {
00084         return ptr< li_compound > ( new li_compound(a__literal_info_base__type,
00085                 a__li_compound_base__items) );
00086 }

ptr< object::reflection_list > lestes::md::literals::li_compound::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::md::literals::li_compound_base.

Definition at line 98 of file literal_info.g.cc.

References lestes::std::list< T >::create(), reflection, and lestes::md::literals::li_compound_base::reflection_get().

00099 {
00100         if (!reflection) {
00101                 typedef class_reflection::field_metadata md;
00102                 typedef class_reflection::field_metadata_list mdlist;
00103                 ptr<mdlist> mdl = mdlist::create();
00104                 reflection = reflection_list::create( li_compound_base::reflection_get() );
00105                 reflection->push_back( class_reflection::create( "li_compound", mdl ) );
00106         }
00107         return reflection;
00108 }

ptr< object::field_list_list > lestes::md::literals::li_compound::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::md::literals::li_compound_base.

Definition at line 110 of file literal_info.g.cc.

References lestes::md::literals::li_compound_base::field_values_get().

00111 {
00112         ptr < field_list_list > result = li_compound_base::field_values_get();
00113         return result;
00114 }

void lestes::md::literals::li_compound::gc_mark ( void   )  [protected, virtual]

Marking routine for class li_compound.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::md::literals::li_compound_base.

Definition at line 121 of file literal_info.g.cc.

References lestes::md::literals::li_compound_base::gc_mark().

00122 {
00123         li_compound_base::gc_mark();
00124 }


Member Data Documentation

ptr< object::reflection_list > lestes::md::literals::li_compound::reflection = reflection [static, private]

Reimplemented from lestes::md::literals::li_compound_base.

Definition at line 97 of file literal_info.g.hh.

Referenced by reflection_get().


The documentation for this class was generated from the following files:
Generated on Mon Feb 12 18:25:49 2007 for lestes by doxygen 1.5.1-20070107