lestes::lang::cplus::sem::sa_context_manager_concrete Class Reference

#include <sa_context.g.hh>

Inheritance diagram for lestes::lang::cplus::sem::sa_context_manager_concrete:

lestes::lang::cplus::sem::sa_context_manager lestes::std::object lestes::std::mem::keystone List of all members.

Public Member Functions

virtual ptr< sa_contextcurrent ()
virtual void push (ptr< sa_context > context)
virtual void pop ()
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< sa_context_manager_concreteinstance ()
static ptr< sa_context_manager_concretecreate (ptr< ::lestes::std::stack< srp< sa_context > > > a__sa_context_manager_concrete__contexts)
 First generated factory method for class sa_context_manager_concrete.

Protected Member Functions

 sa_context_manager_concrete (ptr< ::lestes::std::stack< srp< sa_context > > > a__sa_context_manager_concrete__contexts)
 Generated constructor for class sa_context_manager_concrete.
virtual void gc_mark ()
 Marking routine for class sa_context_manager_concrete.

Private Attributes

srp< ::lestes::std::stack<
srp< sa_context > > > 
contexts

Static Private Attributes

static ptr< sa_context_manager_concretesingleton = singleton
static ptr< reflection_listreflection = reflection

Detailed Description

Definition at line 149 of file sa_context.g.hh.


Constructor & Destructor Documentation

lestes::lang::cplus::sem::sa_context_manager_concrete::sa_context_manager_concrete ( ptr< ::lestes::std::stack< srp< sa_context > > >  a__sa_context_manager_concrete__contexts  )  [protected]

Generated constructor for class sa_context_manager_concrete.

Generated constructor for class sa_context_manager_concrete.

Author:
lsg

Definition at line 149 of file sa_context.g.cc.

Referenced by create().

00150         : sa_context_manager(), contexts(checked(a__sa_context_manager_concrete__contexts))
00151 {}


Member Function Documentation

ptr< sa_context_manager_concrete > lestes::lang::cplus::sem::sa_context_manager_concrete::instance ( void   )  [static]

Returns the only instance of the concrete SA context manager.

Returns:
The manager instance.

Reimplemented from lestes::lang::cplus::sem::sa_context_manager.

Definition at line 59 of file sa_context.cc.

References lestes::lang::cplus::sem::ss_access_specifier::ACCESS_PUBLIC, lestes::lang::cplus::sem::sa_context::create(), lestes::lang::cplus::sem::sa_sa_context::create(), lestes::lang::cplus::sem::sa_ss_context::create(), lestes::lang::cplus::sem::sa_as_context::create(), lestes::intercode::intercode::create(), create(), loc, lestes::lang::cplus::sem::ss_decl_seq::root_instance(), and singleton.

Referenced by lestes::lang::cplus::sem::sa_context_manager::instance().

00060 {
00061         if (!singleton) {
00062                 ptr< ::lestes::std::stack< srp<sa_context> > > st =
00063                         ::lestes::std::stack< srp<sa_context> >::create();
00064                 ptr<ss_decl_seq> decl_seq = ss_decl_seq::root_instance();
00065                 ptr<source_location> loc = decl_seq->location_get();
00066                 ptr<as_name> name = as_name::create(loc,NULL,as_global_namespace_fake_id::create(loc),false);
00067                 ptr<sa_as_context> asctx = sa_as_context::create(name,as_access_specifier_public::create(loc));
00068                 ptr<sa_ss_context> ssctx = sa_ss_context::create(decl_seq,ss_access_specifier::ACCESS_PUBLIC);
00069                 ptr<sa_sa_context> sactx = sa_sa_context::create();
00070                 ptr<sa_context> ctx = sa_context::create(asctx,ssctx,sactx);
00071                 st->push(ctx);
00072                 singleton = sa_context_manager_concrete::create(st);
00073         }
00074         return singleton;
00075 }

ptr< sa_context > lestes::lang::cplus::sem::sa_context_manager_concrete::current ( void   )  [virtual]

Returns current context.

Precondition:
Context stack is nonempty.
Returns:
The current context.

Implements lestes::lang::cplus::sem::sa_context_manager.

Definition at line 82 of file sa_context.cc.

References checked, contexts, and lassert.

00083 {
00084         lassert(!contexts->empty());
00085         return checked(contexts->top());
00086 }

void lestes::lang::cplus::sem::sa_context_manager_concrete::push ( ptr< sa_context context  )  [virtual]

Implements lestes::lang::cplus::sem::sa_context_manager.

Definition at line 88 of file sa_context.cc.

References contexts, and lassert.

00089 {
00090         lassert(ctx);
00091         contexts->push(ctx);
00092 }

void lestes::lang::cplus::sem::sa_context_manager_concrete::pop (  )  [virtual]

Implements lestes::lang::cplus::sem::sa_context_manager.

Definition at line 94 of file sa_context.cc.

References contexts.

00095 {
00096         contexts->pop();
00097 }

ptr< sa_context_manager_concrete > lestes::lang::cplus::sem::sa_context_manager_concrete::create ( ptr< ::lestes::std::stack< srp< sa_context > > >  a__sa_context_manager_concrete__contexts  )  [static]

First generated factory method for class sa_context_manager_concrete.

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

Author:
lsg

Definition at line 140 of file sa_context.g.cc.

References sa_context_manager_concrete().

Referenced by instance().

00141 {
00142         return ptr< sa_context_manager_concrete > ( new sa_context_manager_concrete(a__sa_context_manager_concrete__contexts) );
00143 }

ptr< object::reflection_list > lestes::lang::cplus::sem::sa_context_manager_concrete::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::lang::cplus::sem::sa_context_manager.

Definition at line 153 of file sa_context.g.cc.

References lestes::std::list< T >::create(), reflection, and lestes::lang::cplus::sem::sa_context_manager::reflection_get().

00154 {
00155         if (!reflection) {
00156                 typedef class_reflection::field_metadata md;
00157                 typedef class_reflection::field_metadata_list mdlist;
00158                 ptr<mdlist> mdl = mdlist::create();
00159                 mdl->push_back( md::create( "contexts", "stack&lt; srp&lt; sa_context &gt; &gt;" ) );
00160                 mdl->push_back( md::create( "singleton", "sa_context_manager_concrete" ) );
00161                 reflection = reflection_list::create( sa_context_manager::reflection_get() );
00162                 reflection->push_back( class_reflection::create( "sa_context_manager_concrete", mdl ) );
00163         }
00164         return reflection;
00165 }

ptr< object::field_list_list > lestes::lang::cplus::sem::sa_context_manager_concrete::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::lang::cplus::sem::sa_context_manager.

Definition at line 167 of file sa_context.g.cc.

References lestes::std::list< T >::create(), and lestes::lang::cplus::sem::sa_context_manager::field_values_get().

00168 {
00169         ptr < field_list_list > result = sa_context_manager::field_values_get();
00170         result->push_back( value_list::create() );
00171         result->back()->push_back( this->contexts );
00172         result->push_back( value_list::create() );
00173         result->back()->push_back( this->singleton );
00174         return result;
00175 }

void lestes::lang::cplus::sem::sa_context_manager_concrete::gc_mark ( void   )  [protected, virtual]

Marking routine for class sa_context_manager_concrete.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::lang::cplus::sem::sa_context_manager.

Definition at line 182 of file sa_context.g.cc.

References lestes::lang::cplus::sem::sa_context_manager::gc_mark().

00183 {
00184         sa_context_manager::gc_mark();
00185 }


Member Data Documentation

srp< ::lestes::std::stack< srp< sa_context > > > lestes::lang::cplus::sem::sa_context_manager_concrete::contexts [private]

Definition at line 180 of file sa_context.g.hh.

Referenced by current(), pop(), and push().

ptr< sa_context_manager_concrete > lestes::lang::cplus::sem::sa_context_manager_concrete::singleton = singleton [static, private]

Reimplemented from lestes::lang::cplus::sem::sa_context_manager.

Definition at line 181 of file sa_context.g.hh.

Referenced by instance().

ptr< object::reflection_list > lestes::lang::cplus::sem::sa_context_manager_concrete::reflection = reflection [static, private]

Reimplemented from lestes::lang::cplus::sem::sa_context_manager.

Definition at line 182 of file sa_context.g.hh.

Referenced by reflection_get().


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