lestes::md::functions::function_parameter_accessor Class Reference

Interface used for accessing function's parameters within the function. More...

#include <function_parameter_accessor.g.hh>

Inheritance diagram for lestes::md::functions::function_parameter_accessor:

lestes::md::functions::function_parameter_accessor_base lestes::std::object lestes::std::mem::keystone List of all members.

Public Member Functions

ptr< ::lestes::backend_v2::intercode::pi_mem_factorythis_par_get () const
 The method this_par_get returns the value of the field function_parameter_accessor::this_par.
void this_par_set (const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > &)
 The method this_par_set sets the field function_parameter_accessor::this_par to the given value.
ptr< ::lestes::backend_v2::intercode::pi_mem_factoryret_val_par_get () const
 The method ret_val_par_get returns the value of the field function_parameter_accessor::ret_val_par.
void ret_val_par_set (const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > &)
 The method ret_val_par_set sets the field function_parameter_accessor::ret_val_par to the given value.
t_ptrdiff this_end_offset_get () const
 The method this_end_offset_get returns the value of the field function_parameter_accessor::this_end_offset.
void this_end_offset_set (t_ptrdiff)
 The method this_end_offset_set sets the field function_parameter_accessor::this_end_offset to the given value.
t_ptrdiff ret_val_end_offset_get () const
 The method ret_val_end_offset_get returns the value of the field function_parameter_accessor::ret_val_end_offset.
void ret_val_end_offset_set (t_ptrdiff)
 The method ret_val_end_offset_set sets the field function_parameter_accessor::ret_val_end_offset to the given value.
ptr< ::lestes::std::map< ulint,
srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > 
params_get () const
 The method params_get returns the value of the field function_parameter_accessor::params.
void params_set (const ptr< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > &)
 The method params_set sets the field function_parameter_accessor::params to the given value.
virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factoryget_parameter (ulint index)
 Gets parameter with given index.
virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factoryget_this ()
 Gets secret "this" parameter.
virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factoryget_ret_val ()
 Gets secret parameter with pointer to space for returning value from the function.
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< ::lestes::std::map<
srp< ::lestes::lang::cplus::sem::ss_function_declaration >,
srp< function_parameter_accessor > > > 
singleton_instances_get ()
 The method singleton_instances_get returns the value of the field function_parameter_accessor::singleton_instances.
static void singleton_instances_set (const ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< function_parameter_accessor > > > &)
 The method singleton_instances_set sets the field function_parameter_accessor::singleton_instances to the given value.
static ptr< function_parameter_accessorinstance (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > function)
static ptr< function_parameter_accessorcreate (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__function_parameter_accessor_base__function, ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__function_parameter_accessor__this_par, ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__function_parameter_accessor__ret_val_par, t_ptrdiff a__function_parameter_accessor__this_end_offset, t_ptrdiff a__function_parameter_accessor__ret_val_end_offset, ptr< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > a__function_parameter_accessor__params)
 First generated factory method for class function_parameter_accessor.
static ptr< function_parameter_accessorcreate (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__function_parameter_accessor_base__function)
 Second generated factory method for class function_parameter_accessor.

Protected Member Functions

 function_parameter_accessor (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__function_parameter_accessor_base__function, ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__function_parameter_accessor__this_par, ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__function_parameter_accessor__ret_val_par, t_ptrdiff a__function_parameter_accessor__this_end_offset, t_ptrdiff a__function_parameter_accessor__ret_val_end_offset, ptr< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > a__function_parameter_accessor__params)
 Generated constructor for class function_parameter_accessor.
virtual void gc_mark ()
 Marking routine for class function_parameter_accessor.

Private Attributes

srp< ::lestes::backend_v2::intercode::pi_mem_factorythis_par
 "this" parameter.
srp< ::lestes::backend_v2::intercode::pi_mem_factoryret_val_par
 Secret parameter with pointer to space for returning value from the function.
t_ptrdiff this_end_offset
 Stack offset where "this" parameter ends.
t_ptrdiff ret_val_end_offset
 Stack offset where ret_val parameter ends.
srp< ::lestes::std::map< ulint,
srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > 
params
 Mapping from parameter index to parameter.

Static Private Attributes

static ptr< ::lestes::std::map<
srp< ::lestes::lang::cplus::sem::ss_function_declaration >,
srp< function_parameter_accessor > > > 
singleton_instances = ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< function_parameter_accessor > > ::create()
static ptr< reflection_listreflection = reflection

Detailed Description

Interface used for accessing function's parameters within the function.

Definition at line 50 of file function_parameter_accessor.g.hh.


Constructor & Destructor Documentation

lestes::md::functions::function_parameter_accessor::function_parameter_accessor ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration a__function_parameter_accessor_base__function,
ptr< ::lestes::backend_v2::intercode::pi_mem_factory a__function_parameter_accessor__this_par,
ptr< ::lestes::backend_v2::intercode::pi_mem_factory a__function_parameter_accessor__ret_val_par,
t_ptrdiff  a__function_parameter_accessor__this_end_offset,
t_ptrdiff  a__function_parameter_accessor__ret_val_end_offset,
ptr< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > >  a__function_parameter_accessor__params 
) [protected]

Generated constructor for class function_parameter_accessor.

Generated constructor for class function_parameter_accessor.

Author:
lsg

Definition at line 166 of file function_parameter_accessor.g.cc.

Referenced by create().

00172         : function_parameter_accessor_base(a__function_parameter_accessor_base__function), this_par(a__function_parameter_accessor__this_par), ret_val_par(a__function_parameter_accessor__ret_val_par), this_end_offset(a__function_parameter_accessor__this_end_offset), ret_val_end_offset(a__function_parameter_accessor__ret_val_end_offset), params(checked(a__function_parameter_accessor__params))
00173 {}


Member Function Documentation

ptr<::lestes::backend_v2::intercode::pi_mem_factory > lestes::md::functions::function_parameter_accessor::this_par_get (  )  const

The method this_par_get returns the value of the field function_parameter_accessor::this_par.

Returns:
The value of function_parameter_accessor::this_par.
Author:
lsg

Definition at line 30 of file function_parameter_accessor.g.cc.

References this_par.

Referenced by get_this().

00031 {
00032         return this_par;
00033 }

void lestes::md::functions::function_parameter_accessor::this_par_set ( const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > &  x  ) 

The method this_par_set sets the field function_parameter_accessor::this_par to the given value.

Parameters:
[in] x The new value to set function_parameter_accessor::this_par to.
Author:
lsg

Definition at line 39 of file function_parameter_accessor.g.cc.

References this_par.

Referenced by get_this().

00040 {
00041         function_parameter_accessor::this_par = x;
00042 }

ptr<::lestes::backend_v2::intercode::pi_mem_factory > lestes::md::functions::function_parameter_accessor::ret_val_par_get (  )  const

The method ret_val_par_get returns the value of the field function_parameter_accessor::ret_val_par.

Returns:
The value of function_parameter_accessor::ret_val_par.
Author:
lsg

Definition at line 48 of file function_parameter_accessor.g.cc.

References ret_val_par.

Referenced by get_ret_val().

00049 {
00050         return ret_val_par;
00051 }

void lestes::md::functions::function_parameter_accessor::ret_val_par_set ( const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > &  x  ) 

The method ret_val_par_set sets the field function_parameter_accessor::ret_val_par to the given value.

Parameters:
[in] x The new value to set function_parameter_accessor::ret_val_par to.
Author:
lsg

Definition at line 57 of file function_parameter_accessor.g.cc.

References ret_val_par.

Referenced by get_ret_val().

00058 {
00059         function_parameter_accessor::ret_val_par = x;
00060 }

t_ptrdiff lestes::md::functions::function_parameter_accessor::this_end_offset_get (  )  const

The method this_end_offset_get returns the value of the field function_parameter_accessor::this_end_offset.

Returns:
The value of function_parameter_accessor::this_end_offset.
Author:
lsg

Definition at line 66 of file function_parameter_accessor.g.cc.

References this_end_offset.

00067 {
00068         return this_end_offset;
00069 }

void lestes::md::functions::function_parameter_accessor::this_end_offset_set ( t_ptrdiff  x  ) 

The method this_end_offset_set sets the field function_parameter_accessor::this_end_offset to the given value.

Parameters:
[in] x The new value to set function_parameter_accessor::this_end_offset to.
Author:
lsg

Definition at line 75 of file function_parameter_accessor.g.cc.

References this_end_offset.

t_ptrdiff lestes::md::functions::function_parameter_accessor::ret_val_end_offset_get (  )  const

The method ret_val_end_offset_get returns the value of the field function_parameter_accessor::ret_val_end_offset.

Returns:
The value of function_parameter_accessor::ret_val_end_offset.
Author:
lsg

Definition at line 84 of file function_parameter_accessor.g.cc.

References ret_val_end_offset.

00085 {
00086         return ret_val_end_offset;
00087 }

void lestes::md::functions::function_parameter_accessor::ret_val_end_offset_set ( t_ptrdiff  x  ) 

The method ret_val_end_offset_set sets the field function_parameter_accessor::ret_val_end_offset to the given value.

Parameters:
[in] x The new value to set function_parameter_accessor::ret_val_end_offset to.
Author:
lsg

Definition at line 93 of file function_parameter_accessor.g.cc.

References ret_val_end_offset.

ptr<::lestes::std::map< ulint, srp<::lestes::backend_v2::intercode::pi_mem_factory > > > lestes::md::functions::function_parameter_accessor::params_get (  )  const

The method params_get returns the value of the field function_parameter_accessor::params.

Returns:
The value of function_parameter_accessor::params.
Author:
lsg

Definition at line 102 of file function_parameter_accessor.g.cc.

References params.

Referenced by get_parameter().

00103 {
00104         return params;
00105 }

void lestes::md::functions::function_parameter_accessor::params_set ( const ptr< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > &  x  ) 

The method params_set sets the field function_parameter_accessor::params to the given value.

Parameters:
[in] x The new value to set function_parameter_accessor::params to.
Author:
lsg

Definition at line 111 of file function_parameter_accessor.g.cc.

References params.

00112 {
00113         function_parameter_accessor::params = x;
00114 }

ptr<::lestes::std::map< srp<::lestes::lang::cplus::sem::ss_function_declaration >, srp< function_parameter_accessor > > > lestes::md::functions::function_parameter_accessor::singleton_instances_get (  )  [static]

The method singleton_instances_get returns the value of the field function_parameter_accessor::singleton_instances.

Returns:
The value of function_parameter_accessor::singleton_instances.
Author:
lsg

Definition at line 120 of file function_parameter_accessor.g.cc.

References singleton_instances.

00121 {
00122         return singleton_instances;
00123 }

void lestes::md::functions::function_parameter_accessor::singleton_instances_set ( const ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< function_parameter_accessor > > > &  x  )  [static]

The method singleton_instances_set sets the field function_parameter_accessor::singleton_instances to the given value.

Parameters:
[in] x The new value to set function_parameter_accessor::singleton_instances to.
Author:
lsg

Definition at line 129 of file function_parameter_accessor.g.cc.

References singleton_instances.

ptr< pi_mem_factory > lestes::md::functions::function_parameter_accessor::get_parameter ( ulint  index  )  [virtual]

Gets parameter with given index.

Note:

Parameters:
index The index.
Returns:
Memory space with parameter.

Implements lestes::md::functions::function_parameter_accessor_base.

Definition at line 40 of file function_parameter_accessor.cc.

References lestes::md::functions::function_parameter_accessor_base::function_get(), get_ret_val(), get_this(), lassert, params_get(), ret_val_end_offset, and this_end_offset.

00041 {
00042         //Gen parameter with given index.
00043         params_map_type::iterator it = params_get()->find(index);
00044         
00045         if ( it!=params_get()->end() ) {
00046                 //Parameter has already been accessed. Return cached result.
00047                 return it->second;
00048         }
00049         
00050         //Get ss_type of the function. It contains also list of parameter types.
00051         ptr<ss_function> fnc_type = function_get()->type_get().dncast<ss_function>();
00052 
00053         //Get offset of the 1st parameter.
00054         t_size offset = 64;
00055         
00056         if ( get_ret_val() ) {
00057                 offset = ret_val_end_offset;
00058         }
00059 
00060         if ( get_this() ) {
00061                 offset = this_end_offset;
00062         }
00063         
00064         ptr<tm_data_type_base> param_dt_type;
00065         ulint param_index = 0;
00066         ss_type_list_type::iterator it1;
00067         for(it1=fnc_type->params_get()->begin(); it1!=fnc_type->params_get()->end(); it1++, param_index++) {
00068                 param_dt_type = (*it1)->accept_ss_type2tm_type_gen_base(ss_type2tm_type::instance());
00069                 
00070                 if ( param_index == index ) {
00071                         break;
00072                 }
00073                 
00074                 if ( param_dt_type->bitwidth_get() % 32 == 0 ) {
00075                         offset += param_dt_type->bitwidth_get();
00076                 } else {
00077                         offset += (param_dt_type->bitwidth_get()/32 +1)*32;
00078                 }
00079         }
00080         
00081         lassert(param_dt_type);
00082 
00083         //Create factory representing space where the parameter is located.
00084         ptr<pi_mem_factory> ret_val = pi_mf_stack::create(NULL,param_dt_type, offset);
00085         
00086         //Add parameter factory to parameter cache.
00087         (*params_get())[index] = ret_val;
00088         
00089         return ret_val; 
00090 }

ptr< pi_mem_factory > lestes::md::functions::function_parameter_accessor::get_this (  )  [virtual]

Gets secret "this" parameter.

Returns:
If function is member function then it returns memory space with "this" parameter. NULL otherwise.

Implements lestes::md::functions::function_parameter_accessor_base.

Definition at line 97 of file function_parameter_accessor.cc.

References lestes::md::functions::function_parameter_accessor_base::function_get(), this_end_offset, this_par_get(), and this_par_set().

Referenced by get_parameter().

00098 {
00099         if ( this_par_get() ) {
00100                 //Parameter has already been accessed. Return cached result.
00101                 return this_par_get();
00102         }
00103 
00104         if ( ss_type2id::instance()->process(function_get()->type_get()) != ss_type2id::MEMBER_FUNCTION ) {
00105                 //The function is NOT member function.
00106                 return NULL;
00107         }
00108         
00109         //Get type of this pointer.
00110         ptr<ss_member_function> fnc_type = function_get()->type_get().dncast<ss_member_function>();     
00111         ptr<tm_data_type_base> this_type = fnc_type->this_type_get()->accept_ss_type2tm_type_gen_base(ss_type2tm_type::instance());
00112         
00113         /*
00114                 Initial offset is 64, because EIP is pushed on the stack during call instruction
00115                 and EBP is pushed during function prologue.
00116         */
00117         t_size offset = 64;
00118         
00119         if ( !fnc_type->is_void() ) {
00120                 //Get return type.
00121                 ptr<tm_data_type_base> ret_type = fnc_type->returns_get()->accept_ss_type2tm_type_gen_base(ss_type2tm_type::instance());
00122         
00123                 if ( !ret_type->return_reg_get() ) {
00124                         //Type is not returned in register.
00125                         offset += 32;
00126                 }
00127         }
00128         
00129         this_end_offset = offset+32;
00130         this_par_set(pi_mf_stack::create(NULL,this_type, offset));
00131         return this_par_get();
00132 }

ptr< pi_mem_factory > lestes::md::functions::function_parameter_accessor::get_ret_val (  )  [virtual]

Gets secret parameter with pointer to space for returning value from the function.

Returns:
If function returns non-void type then it returns memory space with pointer. NULL otherwise.

Implements lestes::md::functions::function_parameter_accessor_base.

Definition at line 140 of file function_parameter_accessor.cc.

References lestes::md::functions::function_parameter_accessor_base::function_get(), lassert, ret_val_end_offset, ret_val_par_get(), and ret_val_par_set().

Referenced by get_parameter().

00141 {
00142         if ( ret_val_par_get() ) {
00143                 //Parameter has already been accessed. Return cached result.
00144                 return ret_val_par_get();
00145         }
00146         
00147         //Get ss_type of function.
00148         ptr<ss_function> fnc_type = function_get()->type_get().dncast<ss_function>();
00149         
00150         if ( fnc_type->returns_get()->is_void() ) {
00151                 //Function returns void.
00152                 return NULL;
00153         }
00154         lassert(fnc_type->returns_get());
00155         
00156         //Get returned type.
00157         ptr<tm_data_type_base> type = fnc_type->returns_get()->accept_ss_type2tm_type_gen_base(ss_type2tm_type::instance());
00158         
00159         ptr<pi_mem_factory> ret_val;
00160         if (type->return_reg_get() ){
00161                 /*
00162                         Type is returned in register.
00163                 */
00164                 ret_val = pi_mf_preg::create(NULL, type, pi_preg::create(NULL, type)); 
00165                 ret_val_end_offset = 64;
00166         } else {
00167                 /*
00168                         Type is returned in memory as 1st parameter.
00169                         Starting offset is 64, because of EIP and EBP are pushed on the stack during call instruction.
00170                 */
00171                 ret_val = pi_mf_stack::create(NULL,type, 64);
00172                 ret_val_end_offset = 96;
00173         }
00174         
00175         ret_val_par_set(ret_val);
00176         return ret_val_par_get();
00177 }

static ptr< function_parameter_accessor > lestes::md::functions::function_parameter_accessor::instance ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration function  )  [static]

ptr< function_parameter_accessor > lestes::md::functions::function_parameter_accessor::create ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration a__function_parameter_accessor_base__function,
ptr< ::lestes::backend_v2::intercode::pi_mem_factory a__function_parameter_accessor__this_par,
ptr< ::lestes::backend_v2::intercode::pi_mem_factory a__function_parameter_accessor__ret_val_par,
t_ptrdiff  a__function_parameter_accessor__this_end_offset,
t_ptrdiff  a__function_parameter_accessor__ret_val_end_offset,
ptr< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > >  a__function_parameter_accessor__params 
) [static]

First generated factory method for class function_parameter_accessor.

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

Author:
lsg

Definition at line 138 of file function_parameter_accessor.g.cc.

References function_parameter_accessor().

Referenced by create().

00144 {
00145         return ptr< function_parameter_accessor > ( new function_parameter_accessor(a__function_parameter_accessor_base__function,
00146                 a__function_parameter_accessor__this_par,
00147                 a__function_parameter_accessor__ret_val_par,
00148                 a__function_parameter_accessor__this_end_offset,
00149                 a__function_parameter_accessor__ret_val_end_offset,
00150                 a__function_parameter_accessor__params) );
00151 }

ptr< function_parameter_accessor > lestes::md::functions::function_parameter_accessor::create ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration a__function_parameter_accessor_base__function  )  [static]

Second generated factory method for class function_parameter_accessor.

This factory method for class function_parameter_accessor uses initializers.

Author:
lsg

Definition at line 157 of file function_parameter_accessor.g.cc.

References create(), and function_parameter_accessor().

00158 {
00159         return ptr< function_parameter_accessor > ( new function_parameter_accessor(a__function_parameter_accessor_base__function, NULL, NULL, 0, 0, ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > ::create()) );
00160 }

ptr< object::reflection_list > lestes::md::functions::function_parameter_accessor::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::md::functions::function_parameter_accessor_base.

Definition at line 175 of file function_parameter_accessor.g.cc.

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

00176 {
00177         if (!reflection) {
00178                 typedef class_reflection::field_metadata md;
00179                 typedef class_reflection::field_metadata_list mdlist;
00180                 ptr<mdlist> mdl = mdlist::create();
00181                 mdl->push_back( md::create( "this_par", "pi_mem_factory" ) );
00182                 mdl->push_back( md::create( "ret_val_par", "pi_mem_factory" ) );
00183                 mdl->push_back( md::create( "this_end_offset", "t_ptrdiff" ) );
00184                 mdl->push_back( md::create( "ret_val_end_offset", "t_ptrdiff" ) );
00185                 mdl->push_back( md::create( "params", "map&lt; ulint, srp&lt; ::lestes::backend_v2::intercode::pi_mem_factory &gt; &gt;" ) );
00186                 mdl->push_back( md::create( "singleton_instances", "map&lt; srp&lt; ::lestes::lang::cplus::sem::ss_function_declaration &gt;, srp&lt; function_parameter_accessor &gt; &gt;" ) );
00187                 reflection = reflection_list::create( function_parameter_accessor_base::reflection_get() );
00188                 reflection->push_back( class_reflection::create( "function_parameter_accessor", mdl ) );
00189         }
00190         return reflection;
00191 }

ptr< object::field_list_list > lestes::md::functions::function_parameter_accessor::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::md::functions::function_parameter_accessor_base.

Definition at line 193 of file function_parameter_accessor.g.cc.

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

00194 {
00195         ptr < field_list_list > result = function_parameter_accessor_base::field_values_get();
00196         result->push_back( value_list::create() );
00197         result->back()->push_back( this->this_par );
00198         result->push_back( value_list::create() );
00199         result->back()->push_back( this->ret_val_par );
00200         result->push_back( value_list::create() );
00201         result->back()->push_back( objectize< t_ptrdiff > ::create( this->this_end_offset ) );
00202         result->push_back( value_list::create() );
00203         result->back()->push_back( objectize< t_ptrdiff > ::create( this->ret_val_end_offset ) );
00204         result->push_back( value_list::create() );
00205         result->back()->push_back( this->params );
00206         result->push_back( value_list::create() );
00207         result->back()->push_back( this->singleton_instances );
00208         return result;
00209 }

void lestes::md::functions::function_parameter_accessor::gc_mark ( void   )  [protected, virtual]

Marking routine for class function_parameter_accessor.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::md::functions::function_parameter_accessor_base.

Definition at line 216 of file function_parameter_accessor.g.cc.

References lestes::md::functions::function_parameter_accessor_base::gc_mark().


Member Data Documentation

srp< ::lestes::backend_v2::intercode::pi_mem_factory > lestes::md::functions::function_parameter_accessor::this_par [private]

"this" parameter.

Definition at line 135 of file function_parameter_accessor.g.hh.

Referenced by this_par_get(), and this_par_set().

srp< ::lestes::backend_v2::intercode::pi_mem_factory > lestes::md::functions::function_parameter_accessor::ret_val_par [private]

Secret parameter with pointer to space for returning value from the function.

Definition at line 137 of file function_parameter_accessor.g.hh.

Referenced by ret_val_par_get(), and ret_val_par_set().

t_ptrdiff lestes::md::functions::function_parameter_accessor::this_end_offset [private]

Stack offset where "this" parameter ends.

Definition at line 139 of file function_parameter_accessor.g.hh.

Referenced by get_parameter(), get_this(), this_end_offset_get(), and this_end_offset_set().

t_ptrdiff lestes::md::functions::function_parameter_accessor::ret_val_end_offset [private]

Stack offset where ret_val parameter ends.

Definition at line 141 of file function_parameter_accessor.g.hh.

Referenced by get_parameter(), get_ret_val(), ret_val_end_offset_get(), and ret_val_end_offset_set().

srp< ::lestes::std::map< ulint, srp< ::lestes::backend_v2::intercode::pi_mem_factory > > > lestes::md::functions::function_parameter_accessor::params [private]

Mapping from parameter index to parameter.

Definition at line 143 of file function_parameter_accessor.g.hh.

Referenced by params_get(), and params_set().

ptr<::lestes::std::map< srp<::lestes::lang::cplus::sem::ss_function_declaration >, srp< function_parameter_accessor > > > lestes::md::functions::function_parameter_accessor::singleton_instances = ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< function_parameter_accessor > > ::create() [static, private]

Definition at line 144 of file function_parameter_accessor.g.hh.

Referenced by singleton_instances_get(), and singleton_instances_set().

ptr< object::reflection_list > lestes::md::functions::function_parameter_accessor::reflection = reflection [static, private]

Reimplemented from lestes::md::functions::function_parameter_accessor_base.

Definition at line 145 of file function_parameter_accessor.g.hh.

Referenced by reflection_get().


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