lestes::std::multi_action Class Reference

Action that holds a list of other actions; it runs them in its run() method. More...

#include <action.g.hh>

Inheritance diagram for lestes::std::multi_action:

lestes::std::action lestes::std::object lestes::std::mem::keystone List of all members.

Public Member Functions

bool running_get () const
 The method running_get returns the value of the field multi_action::running.
void running_set (bool)
 The method running_set sets the field multi_action::running to the given value.
ptr< ::lestes::std::list<
srp< action > > > 
action_list_get () const
 The method action_list_get returns the value of the field multi_action::action_list.
void attach (ptr< action >)
void detach (ptr< action >)
void trigger ()
 Non-virtual shortcut for run().
virtual void run ()
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< multi_actioncreate (bool a__multi_action__running, ptr< ::lestes::std::list< srp< action > > > a__multi_action__action_list)
 First generated factory method for class multi_action.
static ptr< multi_actioncreate ()
 Second generated factory method for class multi_action.

Protected Member Functions

 multi_action (bool a__multi_action__running, ptr< ::lestes::std::list< srp< action > > > a__multi_action__action_list)
 Generated constructor for class multi_action.
virtual void gc_mark ()
 Marking routine for class multi_action.

Private Attributes

bool running
srp< ::lestes::std::list<
srp< action > > > 
action_list

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Action that holds a list of other actions; it runs them in its run() method.

Definition at line 45 of file action.g.hh.


Constructor & Destructor Documentation

lestes::std::multi_action::multi_action ( bool  a__multi_action__running,
ptr< ::lestes::std::list< srp< action > > >  a__multi_action__action_list 
) [protected]

Generated constructor for class multi_action.

Generated constructor for class multi_action.

Author:
lsg

Definition at line 107 of file action.g.cc.

Referenced by create().

00109         : action(), running(a__multi_action__running), action_list(checked(a__multi_action__action_list))
00110 {}


Member Function Documentation

bool lestes::std::multi_action::running_get (  )  const

The method running_get returns the value of the field multi_action::running.

Returns:
The value of multi_action::running.
Author:
lsg

Definition at line 60 of file action.g.cc.

References running.

00061 {
00062         return running;
00063 }

void lestes::std::multi_action::running_set ( bool  x  ) 

The method running_set sets the field multi_action::running to the given value.

Parameters:
[in] x The new value to set multi_action::running to.
Author:
lsg

Definition at line 69 of file action.g.cc.

References running.

00070 {
00071         multi_action::running = x;
00072 }

ptr<::lestes::std::list< srp< action > > > lestes::std::multi_action::action_list_get (  )  const

The method action_list_get returns the value of the field multi_action::action_list.

Returns:
The value of multi_action::action_list.
Author:
lsg

Definition at line 78 of file action.g.cc.

References action_list.

Referenced by attach(), and run().

00079 {
00080         return action_list;
00081 }

void lestes::std::multi_action::attach ( ptr< action  ) 

Definition at line 53 of file action.cc.

References a, action_list_get(), and lassert2.

00054 {
00055         lassert2( a, "Tried to attach a NULL action." );
00056         action_list_get()->push_back( a );
00057 }

void lestes::std::multi_action::detach ( ptr< action  ) 

Definition at line 59 of file action.cc.

References lassert2.

00060 {
00061         lassert2( false, "Not implemented yet. Will anyone ever need this?" );
00062 }

void lestes::std::multi_action::trigger (  ) 

Non-virtual shortcut for run().

Definition at line 48 of file action.cc.

References run().

00049 {
00050         run();
00051 }

void lestes::std::multi_action::run (  )  [virtual]

Implements lestes::std::action.

Definition at line 36 of file action.cc.

References action_list_get(), lassert, and running.

Referenced by trigger().

00037 {
00038         lassert( !running );
00039 
00040         running = true;
00041         typedef list< srp<action> > al_type;
00042         ptr<al_type> al = action_list_get();
00043         for ( al_type::const_iterator it = al->begin(); it != al->end(); ++it )
00044                 (*it)->run();
00045         running = false;
00046 }

ptr< multi_action > lestes::std::multi_action::create ( bool  a__multi_action__running,
ptr< ::lestes::std::list< srp< action > > >  a__multi_action__action_list 
) [static]

First generated factory method for class multi_action.

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

Author:
lsg

Definition at line 87 of file action.g.cc.

References multi_action().

00089 {
00090         return ptr< multi_action > ( new multi_action(a__multi_action__running,
00091                 a__multi_action__action_list) );
00092 }

ptr< multi_action > lestes::std::multi_action::create ( void   )  [static]

Second generated factory method for class multi_action.

This factory method for class multi_action uses initializers.

Author:
lsg

Definition at line 98 of file action.g.cc.

References multi_action().

00099 {
00100         return ptr< multi_action > ( new multi_action(false, ::lestes::std::list< srp< action > > ::create()) );
00101 }

ptr< object::reflection_list > lestes::std::multi_action::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::action.

Definition at line 112 of file action.g.cc.

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

00113 {
00114         if (!reflection) {
00115                 typedef class_reflection::field_metadata md;
00116                 typedef class_reflection::field_metadata_list mdlist;
00117                 ptr<mdlist> mdl = mdlist::create();
00118                 mdl->push_back( md::create( "running", "bool" ) );
00119                 mdl->push_back( md::create( "action_list", "list&lt; srp&lt; action &gt; &gt;" ) );
00120                 reflection = reflection_list::create( action::reflection_get() );
00121                 reflection->push_back( class_reflection::create( "multi_action", mdl ) );
00122         }
00123         return reflection;
00124 }

ptr< object::field_list_list > lestes::std::multi_action::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::action.

Definition at line 126 of file action.g.cc.

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

00127 {
00128         ptr < field_list_list > result = action::field_values_get();
00129         result->push_back( value_list::create() );
00130         result->back()->push_back( objectize< bool > ::create( this->running ) );
00131         result->push_back( value_list::create() );
00132         result->back()->push_back( this->action_list );
00133         return result;
00134 }

void lestes::std::multi_action::gc_mark ( void   )  [protected, virtual]

Marking routine for class multi_action.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::std::action.

Definition at line 141 of file action.g.cc.

References lestes::std::action::gc_mark().

00142 {
00143         action::gc_mark();
00144 }


Member Data Documentation

bool lestes::std::multi_action::running [private]

Definition at line 92 of file action.g.hh.

Referenced by run(), running_get(), and running_set().

srp< ::lestes::std::list< srp< action > > > lestes::std::multi_action::action_list [private]

Definition at line 93 of file action.g.hh.

Referenced by action_list_get().

ptr< object::reflection_list > lestes::std::multi_action::reflection = reflection [static, private]

Reimplemented from lestes::std::action.

Definition at line 94 of file action.g.hh.

Referenced by reflection_get().


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