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

Public Member Functions | |
| ptr< ::lestes::std::list< srp< ss_base_specifier > > > | bases_get () const |
| The method bases_get returns the value of the field ss_class::bases. | |
| void | bases_set (const ptr< ::lestes::std::list< srp< ss_base_specifier > > > &) |
| The method bases_set sets the field ss_class::bases to the given value. | |
| ptr< ::lestes::std::set< srp< ss_class > > > | descendants_get () const |
| The method descendants_get returns the value of the field ss_class::descendants. | |
| void | descendants_set (const ptr< ::lestes::std::set< srp< ss_class > > > &) |
| The method descendants_set sets the field ss_class::descendants to the given value. | |
| bool | is_ancestor (ptr< ss_class > descendant) |
| Check whether is this class ancestor of parameter. | |
| 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_class > | create (ptr< ss_decl_seq > a__ss_struct_base__members, ptr< ss_declaration > a__ss_struct_base__decl, bool a__ss_struct_base__POD, ptr< ss_declaration_time > a__ss_struct_base__completion_time, ptr< ::lestes::std::list< srp< ss_base_specifier > > > a__ss_class__bases, ptr< ::lestes::std::set< srp< ss_class > > > a__ss_class__descendants) |
| First generated factory method for class ss_class. | |
| static ptr< ss_class > | create (ptr< ss_decl_seq > a__ss_struct_base__members, ptr< ss_declaration > a__ss_struct_base__decl, bool a__ss_struct_base__POD, ptr< ss_declaration_time > a__ss_struct_base__completion_time, ptr< ::lestes::std::list< srp< ss_base_specifier > > > a__ss_class__bases) |
| Second generated factory method for class ss_class. | |
Protected Member Functions | |
| ss_class (ptr< ss_decl_seq > a__ss_struct_base__members, ptr< ss_declaration > a__ss_struct_base__decl, bool a__ss_struct_base__POD, ptr< ss_declaration_time > a__ss_struct_base__completion_time, ptr< ::lestes::std::list< srp< ss_base_specifier > > > a__ss_class__bases, ptr< ::lestes::std::set< srp< ss_class > > > a__ss_class__descendants) | |
| Generated constructor for class ss_class. | |
| virtual void | gc_mark () |
| Marking routine for class ss_class. | |
Private Attributes | |
| srp< ::lestes::std::list< srp< ss_base_specifier > > > | bases |
| srp< ::lestes::std::set< srp< ss_class > > > | descendants |
| Direct descendant classes of current class. | |
Static Private Attributes | |
| static ptr< reflection_list > | reflection = reflection |
Distinction of struct-class: default visibility is resolved before. TODO struct x class POD status
Definition at line 893 of file ss_type.g.hh.
| lestes::lang::cplus::sem::ss_class::ss_class | ( | ptr< ss_decl_seq > | a__ss_struct_base__members, | |
| ptr< ss_declaration > | a__ss_struct_base__decl, | |||
| bool | a__ss_struct_base__POD, | |||
| ptr< ss_declaration_time > | a__ss_struct_base__completion_time, | |||
| ptr< ::lestes::std::list< srp< ss_base_specifier > > > | a__ss_class__bases, | |||
| ptr< ::lestes::std::set< srp< ss_class > > > | a__ss_class__descendants | |||
| ) | [protected] |
Generated constructor for class ss_class.
Generated constructor for class ss_class.
Definition at line 1477 of file ss_type.g.cc.
Referenced by create().
01483 : ss_struct_base(a__ss_struct_base__members, 01484 a__ss_struct_base__decl, 01485 a__ss_struct_base__POD, 01486 a__ss_struct_base__completion_time), bases(checked(a__ss_class__bases)), descendants(checked(a__ss_class__descendants)) 01487 {}
| ptr<::lestes::std::list< srp< ss_base_specifier > > > lestes::lang::cplus::sem::ss_class::bases_get | ( | ) | const |
The method bases_get returns the value of the field ss_class::bases.
Definition at line 1389 of file ss_type.g.cc.
References bases.
01390 { 01391 return bases; 01392 }
| void lestes::lang::cplus::sem::ss_class::bases_set | ( | const ptr< ::lestes::std::list< srp< ss_base_specifier > > > & | x | ) |
The method bases_set sets the field ss_class::bases to the given value.
| [in] | x | The new value to set ss_class::bases to. |
Definition at line 1398 of file ss_type.g.cc.
References bases.
01399 { 01400 ss_class::bases = x; 01401 }
| ptr<::lestes::std::set< srp< ss_class > > > lestes::lang::cplus::sem::ss_class::descendants_get | ( | ) | const |
The method descendants_get returns the value of the field ss_class::descendants.
Definition at line 1407 of file ss_type.g.cc.
References descendants.
01408 { 01409 return descendants; 01410 }
| void lestes::lang::cplus::sem::ss_class::descendants_set | ( | const ptr< ::lestes::std::set< srp< ss_class > > > & | x | ) |
The method descendants_set sets the field ss_class::descendants to the given value.
| [in] | x | The new value to set ss_class::descendants to. |
Definition at line 1416 of file ss_type.g.cc.
References descendants.
01417 { 01418 ss_class::descendants = x; 01419 }
| bool lestes::lang::cplus::sem::ss_class::is_ancestor | ( | ptr< ss_class > | descendant | ) |
Check whether is this class ancestor of parameter.
Used in overload resolution.
Definition at line 290 of file ss_type.cc.
00291 { 00292 typedef ::lestes::std::list< srp< ss_class > > classlist; 00293 ptr< classlist > lst = classlist::create(); 00294 ::lestes::std::list< srp< ss_class > >::iterator it_cl; 00295 ::lestes::std::list< srp< ss_base_specifier > >::iterator it; 00296 00297 /* push 1st level of bases into list */ 00298 for(it = descendant->bases_get()->begin(); it!= descendant->bases_get()->end(); it++) { 00299 lst->push_back((*it)->base_class_get()); 00300 /* have we found ourselves? */ 00301 if ((*it)->base_class_get() == this) 00302 return true; 00303 } 00304 00305 /* for every class in the list, push into list all bases */ 00306 for(it_cl = lst->begin(); it_cl != lst->end(); it_cl++){ 00307 for(it = (*it_cl)->bases_get()->begin(); it != (*it_cl)->bases_get()->end(); it_cl++) { 00308 lst->push_back((*it)->base_class_get()); 00309 /* have we found ourselves? */ 00310 if ((*it)->base_class_get() == this) 00311 return true; 00312 } 00313 } 00314 return false; 00315 00316 }
| ptr<::lestes::std::list< srp< or_ics_functional > > > lestes::lang::cplus::sem::ss_class::accept_or_ics_base | ( | ptr< or_ics_base > | v | ) | [virtual] |
| or_cv_enum lestes::lang::cplus::sem::ss_class::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_class::accept_ss_type2tm_type_gen_base | ( | ptr< ss_type2tm_type_gen_base > | v | ) | [virtual] |
| void lestes::lang::cplus::sem::ss_class::accept_ss_type_visitor | ( | ptr< ss_type_visitor > | v | ) | [virtual] |
| ptr< ss_class > lestes::lang::cplus::sem::ss_class::create | ( | ptr< ss_decl_seq > | a__ss_struct_base__members, | |
| ptr< ss_declaration > | a__ss_struct_base__decl, | |||
| bool | a__ss_struct_base__POD, | |||
| ptr< ss_declaration_time > | a__ss_struct_base__completion_time, | |||
| ptr< ::lestes::std::list< srp< ss_base_specifier > > > | a__ss_class__bases, | |||
| ptr< ::lestes::std::set< srp< ss_class > > > | a__ss_class__descendants | |||
| ) | [static] |
First generated factory method for class ss_class.
This factory method for class ss_class takes values of all fields as arguments.
Definition at line 1445 of file ss_type.g.cc.
References ss_class().
01451 { 01452 return ptr< ss_class > ( new ss_class(a__ss_struct_base__members, 01453 a__ss_struct_base__decl, 01454 a__ss_struct_base__POD, 01455 a__ss_struct_base__completion_time, 01456 a__ss_class__bases, 01457 a__ss_class__descendants) ); 01458 }
| ptr< ss_class > lestes::lang::cplus::sem::ss_class::create | ( | ptr< ss_decl_seq > | a__ss_struct_base__members, | |
| ptr< ss_declaration > | a__ss_struct_base__decl, | |||
| bool | a__ss_struct_base__POD, | |||
| ptr< ss_declaration_time > | a__ss_struct_base__completion_time, | |||
| ptr< ::lestes::std::list< srp< ss_base_specifier > > > | a__ss_class__bases | |||
| ) | [static] |
Second generated factory method for class ss_class.
This factory method for class ss_class uses initializers.
Definition at line 1464 of file ss_type.g.cc.
References lestes::intercode::intercode::create(), and ss_class().
01469 { 01470 return ptr< ss_class > ( new ss_class(a__ss_struct_base__members, a__ss_struct_base__decl, a__ss_struct_base__POD, a__ss_struct_base__completion_time, a__ss_class__bases, ::lestes::std::set< srp< ss_class > > ::create()) ); 01471 }
| ptr< object::reflection_list > lestes::lang::cplus::sem::ss_class::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::lang::cplus::sem::ss_struct_base.
Definition at line 1489 of file ss_type.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::lang::cplus::sem::ss_struct_base::reflection_get().
01490 { 01491 if (!reflection) { 01492 typedef class_reflection::field_metadata md; 01493 typedef class_reflection::field_metadata_list mdlist; 01494 ptr<mdlist> mdl = mdlist::create(); 01495 mdl->push_back( md::create( "bases", "list< srp< ss_base_specifier > >" ) ); 01496 mdl->push_back( md::create( "descendants", "set< srp< ss_class > >" ) ); 01497 reflection = reflection_list::create( ss_struct_base::reflection_get() ); 01498 reflection->push_back( class_reflection::create( "ss_class", mdl ) ); 01499 } 01500 return reflection; 01501 }
| ptr< object::field_list_list > lestes::lang::cplus::sem::ss_class::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::lang::cplus::sem::ss_struct_base.
Definition at line 1503 of file ss_type.g.cc.
References lestes::std::list< T >::create(), and lestes::lang::cplus::sem::ss_struct_base::field_values_get().
01504 { 01505 ptr < field_list_list > result = ss_struct_base::field_values_get(); 01506 result->push_back( value_list::create() ); 01507 result->back()->push_back( this->bases ); 01508 result->push_back( value_list::create() ); 01509 result->back()->push_back( this->descendants ); 01510 return result; 01511 }
| void lestes::lang::cplus::sem::ss_class::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class ss_class.
Marking routine is used for garbage collection.
Reimplemented from lestes::lang::cplus::sem::ss_struct_base.
Definition at line 1518 of file ss_type.g.cc.
References lestes::lang::cplus::sem::ss_struct_base::gc_mark().
01519 { 01520 ss_struct_base::gc_mark(); 01521 }
srp< ::lestes::std::list< srp< ss_base_specifier > > > lestes::lang::cplus::sem::ss_class::bases [private] |
Bases of the class are in the list, because ABI-structure-layout has to now order.
Definition at line 963 of file ss_type.g.hh.
Referenced by bases_get(), and bases_set().
srp< ::lestes::std::set< srp< ss_class > > > lestes::lang::cplus::sem::ss_class::descendants [private] |
Direct descendant classes of current class.
Rationale: Overload resolution needs to know descendants. (Conversions of member pointers into member pointer of derived class.[4.11/2])
Definition at line 970 of file ss_type.g.hh.
Referenced by descendants_get(), and descendants_set().
ptr< object::reflection_list > lestes::lang::cplus::sem::ss_class::reflection = reflection [static, private] |
Reimplemented from lestes::lang::cplus::sem::ss_struct_base.
Definition at line 971 of file ss_type.g.hh.
Referenced by reflection_get().
1.5.1-20070107