lestes::md::literals::literal_loader Class Reference

#include <literal_loader.g.hh>

Inheritance diagram for lestes::md::literals::literal_loader:

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

Public Member Functions

ptr< ::lestes::std::map< srp<
::lestes::backend_v2::intercode::pi_lit >,
ulint > > 
managed_literals_get () const
 The method managed_literals_get returns the value of the field literal_loader::managed_literals.
void managed_literals_set (const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > &)
 The method managed_literals_set sets the field literal_loader::managed_literals to the given value.
virtual ptr< list< srp<
::lestes::backend_v2::intercode::pi_pi > > > 
generate_load (ptr< ::lestes::backend_v2::intercode::pi_preg > preg, ptr< ::lestes::backend_v2::intercode::pi_lit > lit, ptr< ::lestes::backend_v2::intercode::pi_sp > psp, ptr< ::lestes::backend_v2::intercode::pi_sp > nsp)
 Generates list of pseudoinstructions that loads literal to a pseudoregister.
void emit_global_declarations (::std::ostream &output)
 Emits declarations for managed literals to a stream.
bool is_managed (ptr< ::lestes::backend_v2::intercode::pi_lit > lit)
 Tells whether a literal is managed.
lstring get_id_for_managed_literal (ptr< ::lestes::backend_v2::intercode::pi_lit > lit)
 Returns id of managed 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< literal_loadersingleton_instance_get ()
 The method singleton_instance_get returns the value of the field literal_loader::singleton_instance.
static void singleton_instance_set (const ptr< literal_loader > &)
 The method singleton_instance_set sets the field literal_loader::singleton_instance to the given value.
static ptr< literal_loaderinstance ()
 Returns instance.
static ptr< literal_loadercreate (ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > a__literal_loader__managed_literals)
 First generated factory method for class literal_loader.
static ptr< literal_loadercreate ()
 Second generated factory method for class literal_loader.

Protected Member Functions

 literal_loader (ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > a__literal_loader__managed_literals)
 Generated constructor for class literal_loader.
virtual void gc_mark ()
 Marking routine for class literal_loader.

Private Attributes

srp< ::lestes::std::map< srp<
::lestes::backend_v2::intercode::pi_lit >,
ulint > > 
managed_literals
 Registered literals.

Static Private Attributes

static ptr< literal_loadersingleton_instance = NULL
static ptr< reflection_listreflection = reflection

Detailed Description

Definition at line 57 of file literal_loader.g.hh.


Constructor & Destructor Documentation

lestes::md::literals::literal_loader::literal_loader ( ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > >  a__literal_loader__managed_literals  )  [protected]

Generated constructor for class literal_loader.

Generated constructor for class literal_loader.

Author:
lsg

Definition at line 77 of file literal_loader.g.cc.

Referenced by create().

00078         : literal_loader_base(), managed_literals(checked(a__literal_loader__managed_literals))
00079 {}


Member Function Documentation

ptr<::lestes::std::map< srp<::lestes::backend_v2::intercode::pi_lit >, ulint > > lestes::md::literals::literal_loader::managed_literals_get (  )  const

The method managed_literals_get returns the value of the field literal_loader::managed_literals.

Returns:
The value of literal_loader::managed_literals.
Author:
lsg

Definition at line 23 of file literal_loader.g.cc.

References managed_literals.

00024 {
00025         return managed_literals;
00026 }

void lestes::md::literals::literal_loader::managed_literals_set ( const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > &  x  ) 

The method managed_literals_set sets the field literal_loader::managed_literals to the given value.

Parameters:
[in] x The new value to set literal_loader::managed_literals to.
Author:
lsg

Definition at line 32 of file literal_loader.g.cc.

References managed_literals.

00033 {
00034         literal_loader::managed_literals = x;
00035 }

ptr< literal_loader > lestes::md::literals::literal_loader::singleton_instance_get (  )  [static]

The method singleton_instance_get returns the value of the field literal_loader::singleton_instance.

Returns:
The value of literal_loader::singleton_instance.
Author:
lsg

Definition at line 41 of file literal_loader.g.cc.

References singleton_instance.

00042 {
00043         return singleton_instance;
00044 }

void lestes::md::literals::literal_loader::singleton_instance_set ( const ptr< literal_loader > &  x  )  [static]

The method singleton_instance_set sets the field literal_loader::singleton_instance to the given value.

Parameters:
[in] x The new value to set literal_loader::singleton_instance to.
Author:
lsg

Definition at line 50 of file literal_loader.g.cc.

References singleton_instance.

Referenced by instance().

00051 {
00052         literal_loader::singleton_instance = x;
00053 }

virtual ptr<list<srp< ::lestes::backend_v2::intercode::pi_pi> > > lestes::md::literals::literal_loader::generate_load ( ptr< ::lestes::backend_v2::intercode::pi_preg preg,
ptr< ::lestes::backend_v2::intercode::pi_lit lit,
ptr< ::lestes::backend_v2::intercode::pi_sp psp,
ptr< ::lestes::backend_v2::intercode::pi_sp nsp 
) [virtual]

Generates list of pseudoinstructions that loads literal to a pseudoregister.

Implements lestes::md::literals::literal_loader_base.

void lestes::md::literals::literal_loader::emit_global_declarations ( ::std::ostream &  output  ) 

Emits declarations for managed literals to a stream.

Parameters:
output The stream.

Definition at line 84 of file literal_loader.cc.

References get_id_for_managed_literal(), managed_literals, and lestes::md::string_replace().

00084                                                                 {
00085         //Go through managed literals and emit global declaration for them.
00086         lit2ulint_map_type::iterator it;
00087         for(it=managed_literals->begin(); it!=managed_literals->end(); it++) {
00088                 //Get template for global declaration.
00089                 lstring code = tm_asm::ent_global_simple_decl_get();
00090                 
00091                 //Get literal id.
00092                 lstring id = get_id_for_managed_literal(it->first);
00093                 
00094                 //Get literal type.
00095                 lstring type = it->first->value_get()->get_asm_definition_type();
00096                 
00097                 //Get literal initial value.
00098                 lstring value = it->first->value_get()->get_asm_definition_val();
00099                 
00100                 code = string_replace(code,"$id",id);
00101                 code = string_replace(code,"$type",type);
00102                 code = string_replace(code, "$value", value);
00103                 
00104                 //Emit declaration to output stream.
00105                 output << code;
00106         }
00107 }

bool lestes::md::literals::literal_loader::is_managed ( ptr< ::lestes::backend_v2::intercode::pi_lit lit  ) 

Tells whether a literal is managed.

lstring lestes::md::literals::literal_loader::get_id_for_managed_literal ( ptr< ::lestes::backend_v2::intercode::pi_lit lit  ) 

Returns id of managed literal.

Referenced by emit_global_declarations().

ptr< literal_loader > lestes::md::literals::literal_loader::instance (  )  [static]

Returns instance.

Definition at line 30 of file literal_loader.cc.

References create(), singleton_instance, and singleton_instance_set().

00030                                              {
00031         if ( !singleton_instance ) {
00032                 //An singleton instance has not been created yet. Create it!
00033                 singleton_instance_set(literal_loader::create());
00034         }
00035         //Return instance.
00036         return singleton_instance;
00037 }

ptr< literal_loader > lestes::md::literals::literal_loader::create ( ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > >  a__literal_loader__managed_literals  )  [static]

First generated factory method for class literal_loader.

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

Author:
lsg

Definition at line 59 of file literal_loader.g.cc.

References literal_loader().

00060 {
00061         return ptr< literal_loader > ( new literal_loader(a__literal_loader__managed_literals) );
00062 }

ptr< literal_loader > lestes::md::literals::literal_loader::create ( void   )  [static]

Second generated factory method for class literal_loader.

This factory method for class literal_loader uses initializers.

Author:
lsg

Definition at line 68 of file literal_loader.g.cc.

References literal_loader().

Referenced by instance().

00069 {
00070         return ptr< literal_loader > ( new literal_loader(::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > ::create()) );
00071 }

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

for purposes of dumping

Reimplemented from lestes::md::literals::literal_loader_base.

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

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

00082 {
00083         if (!reflection) {
00084                 typedef class_reflection::field_metadata md;
00085                 typedef class_reflection::field_metadata_list mdlist;
00086                 ptr<mdlist> mdl = mdlist::create();
00087                 mdl->push_back( md::create( "managed_literals", "map&lt; srp&lt; ::lestes::backend_v2::intercode::pi_lit &gt;, ulint &gt;" ) );
00088                 mdl->push_back( md::create( "singleton_instance", "literal_loader" ) );
00089                 reflection = reflection_list::create( literal_loader_base::reflection_get() );
00090                 reflection->push_back( class_reflection::create( "literal_loader", mdl ) );
00091         }
00092         return reflection;
00093 }

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

for purposes of dumping

Reimplemented from lestes::md::literals::literal_loader_base.

Definition at line 95 of file literal_loader.g.cc.

References lestes::std::list< T >::create(), and lestes::md::literals::literal_loader_base::field_values_get().

00096 {
00097         ptr < field_list_list > result = literal_loader_base::field_values_get();
00098         result->push_back( value_list::create() );
00099         result->back()->push_back( this->managed_literals );
00100         result->push_back( value_list::create() );
00101         result->back()->push_back( this->singleton_instance );
00102         return result;
00103 }

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

Marking routine for class literal_loader.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::md::literals::literal_loader_base.

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

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

00111 {
00112         literal_loader_base::gc_mark();
00113 }


Member Data Documentation

srp< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > lestes::md::literals::literal_loader::managed_literals [private]

Registered literals.

Definition at line 111 of file literal_loader.g.hh.

Referenced by emit_global_declarations(), managed_literals_get(), and managed_literals_set().

ptr< literal_loader > lestes::md::literals::literal_loader::singleton_instance = NULL [static, private]

Definition at line 112 of file literal_loader.g.hh.

Referenced by instance(), singleton_instance_get(), and singleton_instance_set().

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

Reimplemented from lestes::md::literals::literal_loader_base.

Definition at line 113 of file literal_loader.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