lestes::std::class_reflection Class Reference

#include <reflect.hh>

Inheritance diagram for lestes::std::class_reflection:

lestes::std::object lestes::std::mem::keystone List of all members.

Public Types

typedef pair< lstring, lstringfield_metadata
typedef list< srp< field_metadata > > field_metadata_list

Public Member Functions

lstring name_get () const
ptr< field_metadata_listfield_metadata_get ()
 returns *a copy* of the field list

Static Public Member Functions

static ptr< class_reflectioncreate (lstring a_name, ptr< field_metadata_list > a_metadata)

Protected Member Functions

 class_reflection (lstring a_name, ptr< field_metadata_list > a_metadata)
void gc_mark ()
 Marks the keystone.

Private Attributes

const lstring name
srp< field_metadata_listmetadata

Detailed Description

Definition at line 46 of file reflect.hh.


Member Typedef Documentation

typedef pair<lstring,lstring> lestes::std::class_reflection::field_metadata

Definition at line 48 of file reflect.hh.

typedef list< srp<field_metadata> > lestes::std::class_reflection::field_metadata_list

Definition at line 49 of file reflect.hh.


Constructor & Destructor Documentation

lestes::std::class_reflection::class_reflection ( lstring  a_name,
ptr< field_metadata_list a_metadata 
) [protected]

Definition at line 34 of file reflect.cc.

Referenced by create().

00035         : name(a_name), metadata(checked(a_metadata))
00036 {}


Member Function Documentation

void lestes::std::class_reflection::gc_mark ( void   )  [protected, virtual]

Marks the keystone.

Marks all directly reachable parts of the class. The method must be overriden for each inherited class. It should contain abc.gc_mark() for each field abc of the inherited class and call to gc_mark() of the direct ancestor of the class. Does nothing for keystone, only stops processing of ancestors.

Reimplemented from lestes::std::mem::keystone.

Definition at line 38 of file reflect.cc.

References lestes::std::mem::keystone::gc_mark(), lestes::std::mem::simple_pointer::gc_mark(), and metadata.

00039 {
00040         metadata.gc_mark();
00041         object::gc_mark();
00042 }

lstring lestes::std::class_reflection::name_get ( void   )  const [inline]

Definition at line 61 of file reflect.hh.

00062         {
00063                 return name;
00064         }

ptr< class_reflection::field_metadata_list > lestes::std::class_reflection::field_metadata_get (  ) 

returns *a copy* of the field list

Definition at line 44 of file reflect.cc.

References metadata.

00045 {
00046         //FIXME:
00047 //      return field_metadata_list::create(metadata);
00048         return metadata;
00049 }

ptr< class_reflection > lestes::std::class_reflection::create ( lstring  a_name,
ptr< field_metadata_list a_metadata 
) [static]

Definition at line 51 of file reflect.cc.

References class_reflection().

Referenced by lestes::std::collection_refl::list_simple_init(), lestes::std::collection_refl::list_srp_init(), lestes::std::collection_refl::map_simple_simple_init(), lestes::std::collection_refl::map_simple_srp_init(), lestes::std::collection_refl::map_srp_simple_init(), lestes::std::collection_refl::map_srp_srp_init(), lestes::std::collection_refl::pair_simple_simple_init(), lestes::std::collection_refl::pair_simple_srp_init(), lestes::std::collection_refl::pair_srp_simple_init(), lestes::std::collection_refl::pair_srp_srp_init(), lestes::std::stack< T, Container >::reflection_get(), lestes::std::source_location::reflection_get(), lestes::std::multi_action::reflection_get(), lestes::std::collection_refl::set_simple_init(), lestes::std::collection_refl::set_srp_init(), lestes::std::collection_refl::vector_simple_init(), and lestes::std::collection_refl::vector_srp_init().

00052 {
00053         return new class_reflection( a_name, a_metadata );
00054 }


Member Data Documentation

const lstring lestes::std::class_reflection::name [private]

Definition at line 52 of file reflect.hh.

srp<field_metadata_list> lestes::std::class_reflection::metadata [private]

Definition at line 53 of file reflect.hh.

Referenced by field_metadata_get(), and gc_mark().


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