#include <ss_type.g.hh>
Inheritance diagram for lestes::lang::cplus::sem::ss_reference:

Public Member Functions | |
| virtual ptr< ::lestes::std::list< srp< or_ics_functional > > > | accept_or_ics_base (ptr< or_ics_base > v) |
| virtual or_cv_enum | accept_or_ics_base_cv (ptr< or_ics_base_cv > v) |
| virtual ptr< ::lestes::md::types::tm_data_type_base > | accept_ss_type2tm_type_gen_base (ptr< ss_type2tm_type_gen_base > v) |
| virtual void | accept_ss_type_visitor (ptr< ss_type_visitor > v) |
| virtual ptr< reflection_list > | reflection_get () const |
| for purposes of dumping | |
| virtual ptr< field_list_list > | field_values_get () const |
| for purposes of dumping | |
Static Public Member Functions | |
| static ptr< ss_type > | instance (ptr< ss_type > type) |
| get the instance representing reference to the argument type | |
| static ptr< ss_reference > | create (ptr< ss_type > a__ss_referential__what) |
| First generated factory method for class ss_reference. | |
Protected Member Functions | |
| ss_reference (ptr< ss_type > a__ss_referential__what) | |
| Generated constructor for class ss_reference. | |
| virtual void | gc_mark () |
| Marking routine for class ss_reference. | |
Static Private Attributes | |
| static ptr< ::lestes::std::map< srp< ss_type >, srp< ss_type > > > | the_instances = ::lestes::std::map< srp< ss_type >, srp< ss_type > > ::create() |
| holder for the class instances | |
| static ptr< reflection_list > | reflection = reflection |
Compare with ss_address_of. Singleton class.
Definition at line 416 of file ss_type.g.hh.
| lestes::lang::cplus::sem::ss_reference::ss_reference | ( | ptr< ss_type > | a__ss_referential__what | ) | [protected] |
Generated constructor for class ss_reference.
Generated constructor for class ss_reference.
Definition at line 488 of file ss_type.g.cc.
Referenced by create().
00489 : ss_referential(a__ss_referential__what) 00490 {}
get the instance representing reference to the argument type
Returns type representing reference to a given type.
| x | The type to make reference to. |
Definition at line 229 of file ss_type.cc.
References lestes::intercode::intercode::create(), lestes::lang::cplus::sem::ss_type2info::create(), lassert, lassert2, lestes::lang::cplus::sem::ss_type2info::SS_PSEUDOREFERENCE, lestes::lang::cplus::sem::ss_type2info::SS_REFERENCE, and the_instances.
Referenced by lestes::lang::cplus::sem::or_builtin_operator_declaration_creator::add_vq_ref_vq_ref_nonref_REF().
00230 { 00231 the_instances->dump_barrier_set(true); // XXX: needed just once :-I 00232 00233 lassert(x); 00234 00235 ptr<ss_type2info> ssti = ss_type2info::create(); 00236 x->accept_ss_type_visitor(ssti); 00237 00238 switch (ssti->info_get()) { 00239 case ss_type2info::SS_PSEUDOREFERENCE: 00240 lassert2(false, "Reference to pseudoreference shall not be made."); 00241 break; 00242 case ss_type2info::SS_REFERENCE: 00243 lassert2( 0, "FIXME: (ERRREPORT): Creating reference to a reference type" ); 00244 return NULL; 00245 default: 00246 break; 00247 } 00248 00249 srp<ss_type> &result = (*the_instances)[x]; 00250 00251 if (result) 00252 return result; 00253 00254 return result = ss_reference::create(x); 00255 }
| ptr<::lestes::std::list< srp< or_ics_functional > > > lestes::lang::cplus::sem::ss_reference::accept_or_ics_base | ( | ptr< or_ics_base > | v | ) | [virtual] |
| or_cv_enum lestes::lang::cplus::sem::ss_reference::accept_or_ics_base_cv | ( | ptr< or_ics_base_cv > | v | ) | [virtual] |
| ptr<::lestes::md::types::tm_data_type_base > lestes::lang::cplus::sem::ss_reference::accept_ss_type2tm_type_gen_base | ( | ptr< ss_type2tm_type_gen_base > | v | ) | [virtual] |
| void lestes::lang::cplus::sem::ss_reference::accept_ss_type_visitor | ( | ptr< ss_type_visitor > | v | ) | [virtual] |
| ptr< ss_reference > lestes::lang::cplus::sem::ss_reference::create | ( | ptr< ss_type > | a__ss_referential__what | ) | [static] |
First generated factory method for class ss_reference.
This factory method for class ss_reference takes values of all fields as arguments.
Definition at line 479 of file ss_type.g.cc.
References ss_reference().
00480 { 00481 return ptr< ss_reference > ( new ss_reference(a__ss_referential__what) ); 00482 }
| ptr< object::reflection_list > lestes::lang::cplus::sem::ss_reference::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::lang::cplus::sem::ss_referential.
Definition at line 492 of file ss_type.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::lang::cplus::sem::ss_referential::reflection_get().
00493 { 00494 if (!reflection) { 00495 typedef class_reflection::field_metadata md; 00496 typedef class_reflection::field_metadata_list mdlist; 00497 ptr<mdlist> mdl = mdlist::create(); 00498 mdl->push_back( md::create( "the_instances", "map< srp< ss_type >, srp< ss_type > >" ) ); 00499 reflection = reflection_list::create( ss_referential::reflection_get() ); 00500 reflection->push_back( class_reflection::create( "ss_reference", mdl ) ); 00501 } 00502 return reflection; 00503 }
| ptr< object::field_list_list > lestes::lang::cplus::sem::ss_reference::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::lang::cplus::sem::ss_referential.
Definition at line 505 of file ss_type.g.cc.
References lestes::std::list< T >::create(), and lestes::lang::cplus::sem::ss_referential::field_values_get().
00506 { 00507 ptr < field_list_list > result = ss_referential::field_values_get(); 00508 result->push_back( value_list::create() ); 00509 result->back()->push_back( this->the_instances ); 00510 return result; 00511 }
| void lestes::lang::cplus::sem::ss_reference::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class ss_reference.
Marking routine is used for garbage collection.
Reimplemented from lestes::lang::cplus::sem::ss_referential.
Definition at line 518 of file ss_type.g.cc.
References lestes::lang::cplus::sem::ss_referential::gc_mark().
00519 { 00520 ss_referential::gc_mark(); 00521 }
ptr<::lestes::std::map< srp< ss_type >, srp< ss_type > > > lestes::lang::cplus::sem::ss_reference::the_instances = ::lestes::std::map< srp< ss_type >, srp< ss_type > > ::create() [static, private] |
holder for the class instances
Definition at line 447 of file ss_type.g.hh.
Referenced by instance().
ptr< object::reflection_list > lestes::lang::cplus::sem::ss_reference::reflection = reflection [static, private] |
Reimplemented from lestes::lang::cplus::sem::ss_referential.
Definition at line 448 of file ss_type.g.hh.
Referenced by reflection_get().
1.5.1-20070107