lestes::lang::cplus::sem::sa_context_manager Class Reference

The context manager for sa. More...

#include <sa_context.g.hh>

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

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

Public Member Functions

virtual ptr< sa_contextcurrent () override
virtual void push (ptr< sa_context > context) override
virtual void pop () override
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_managerinstance ()

Protected Member Functions

 sa_context_manager ()
 Generated constructor for class sa_context_manager.
virtual void gc_mark ()
 Marking routine for class sa_context_manager.

Static Private Attributes

static ptr< sa_context_managersingleton = singleton
static ptr< reflection_listreflection = reflection

Detailed Description

The context manager for sa.

Provides interface for manipulationg the sa_context by the parser.

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


Constructor & Destructor Documentation

lestes::lang::cplus::sem::sa_context_manager::sa_context_manager (  )  [protected]

Generated constructor for class sa_context_manager.

Generated constructor for class sa_context_manager.

Author:
lsg

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

00098         : object()
00099 {}


Member Function Documentation

virtual ptr< sa_context > lestes::lang::cplus::sem::sa_context_manager::current (  )  [pure virtual]

Implemented in lestes::lang::cplus::sem::sa_context_manager_concrete.

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

Implemented in lestes::lang::cplus::sem::sa_context_manager_concrete.

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

Implemented in lestes::lang::cplus::sem::sa_context_manager_concrete.

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

Returns the only instance of the SA context manager.

Returns:
The manager instance.

Reimplemented in lestes::lang::cplus::sem::sa_context_manager_concrete.

Definition at line 47 of file sa_context.cc.

References lestes::lang::cplus::sem::sa_context_manager_concrete::instance(), and singleton.

Referenced by lestes::lang::cplus::sem::sa_statements::enter_else(), lestes::lang::cplus::sem::sa_statements::enter_subcompound(), lestes::lang::cplus::sem::sa_class_declaration::insert_class_forward_into_scope(), lestes::lang::cplus::sem::sa_statements::leave_function(), lestes::lang::cplus::sem::sa_statements::leave_scope(), lestes::lang::cplus::sem::sa_usings::process_declaration(), lestes::lang::cplus::sem::sa_namespace_definition::process_end(), and lestes::lang::cplus::sem::sa_namespace_definition::process_named().

00048 {
00049         if (!singleton) {
00050                 singleton = sa_context_manager_concrete::instance();
00051         }
00052         return singleton;
00053 }

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

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::lang::cplus::sem::sa_context_manager_concrete.

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

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

Referenced by lestes::lang::cplus::sem::sa_context_manager_concrete::reflection_get().

00102 {
00103         if (!reflection) {
00104                 typedef class_reflection::field_metadata md;
00105                 typedef class_reflection::field_metadata_list mdlist;
00106                 ptr<mdlist> mdl = mdlist::create();
00107                 mdl->push_back( md::create( "singleton", "sa_context_manager" ) );
00108                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00109                 reflection->push_back( class_reflection::create( "sa_context_manager", mdl ) );
00110         }
00111         return reflection;
00112 }

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

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::lang::cplus::sem::sa_context_manager_concrete.

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

References lestes::std::list< T >::create(), and lestes::std::object::field_values_get().

Referenced by lestes::lang::cplus::sem::sa_context_manager_concrete::field_values_get().

00115 {
00116         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00117         result->push_back( value_list::create() );
00118         result->back()->push_back( this->singleton );
00119         return result;
00120 }

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

Marking routine for class sa_context_manager.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::std::mem::keystone.

Reimplemented in lestes::lang::cplus::sem::sa_context_manager_concrete.

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

References lestes::std::mem::keystone::gc_mark().

Referenced by lestes::lang::cplus::sem::sa_context_manager_concrete::gc_mark().

00128 {
00129 	::lestes::std::object::gc_mark();
00130 }


Member Data Documentation

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

Reimplemented in lestes::lang::cplus::sem::sa_context_manager_concrete.

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

Referenced by instance().

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

Reimplemented from lestes::std::object.

Reimplemented in lestes::lang::cplus::sem::sa_context_manager_concrete.

Definition at line 144 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