Sampa::Process< UserModule > Class Template Reference

#include <module.h>

Inheritance diagram for Sampa::Process< UserModule >:

Sampa::ProcessBase Sampa::Object

List of all members.

Public Types

typedef void(UserModule::* Method )()

Public Member Functions

 Process (const Name &name, UserModule *module, Method method)
void restart (Method method)
 SAMPA_PERSISTENT (Process)
ProcessBaseset_next_trigger (EventListenerSingle &event)
ProcessBasedont_initialize ()
const char * get_name () const
const char * get_full_name () const
 name can be ([^. ]+.)*[^. ]+
Objectget_parent () const
 return object containing this one
Objectget_sibling () const
 return next object with same parent or NULL if none
Objectget_first_child () const
 return first child object or NULL if none
int is_debug () const

Protected Types

enum  Severity { S_INFO, S_WARNING, S_ERROR, S_FATAL }

Protected Member Functions

void debug (const char *,...)
void error (Severity severity, const char *,...)
virtual void complete_restart ()

Protected Attributes

EventListenerSinglem_trigger

Private Member Functions

EventListenerSingleexecute ()
 Process (const Process &)
Processoperator= (const Process &)

Private Attributes

UserModule * m_module
Method m_method


Detailed Description

template<class UserModule>
class Sampa::Process< UserModule >

Definition at line 54 of file module.h.


Member Typedef Documentation

template<class UserModule>
typedef void(UserModule::* Sampa::Process< UserModule >::Method)()

Definition at line 56 of file module.h.


Member Enumeration Documentation

enum Sampa::Object::Severity [protected, inherited]

Enumerator:
S_INFO 
S_WARNING 
S_ERROR 
S_FATAL 

Definition at line 48 of file object.h.


Constructor & Destructor Documentation

template<class UserModule>
Sampa::Process< UserModule >::Process ( const Name name,
UserModule *  module,
Method  method 
) [inline]

Definition at line 25 of file module.cxx.

template<class UserModule>
Sampa::Process< UserModule >::Process ( const Process< UserModule > &   )  [private]


Member Function Documentation

template<class UserModule>
void Sampa::Process< UserModule >::restart ( Method  method  )  [inline]

Definition at line 58 of file module.h.

References Sampa::Process< UserModule >::m_method.

template<class UserModule>
EventListenerSingle * Sampa::Process< UserModule >::execute (  )  [inline, private, virtual]

Implements Sampa::ProcessBase.

Definition at line 31 of file module.cxx.

References Sampa::Process< UserModule >::m_method, Sampa::Process< UserModule >::m_module, and Sampa::ProcessBase::m_trigger.

template<class UserModule>
Process& Sampa::Process< UserModule >::operator= ( const Process< UserModule > &   )  [private]

template<class UserModule>
Sampa::Process< UserModule >::SAMPA_PERSISTENT ( Process< UserModule >   ) 

ProcessBase & Sampa::ProcessBase::set_next_trigger ( EventListenerSingle event  )  [inline, inherited]

Definition at line 109 of file module.h.

References Sampa::ProcessBase::m_trigger.

ProcessBase& Sampa::ProcessBase::dont_initialize (  )  [inherited]

const char* Sampa::Object::get_name (  )  const [inherited]

returns the local name

const char* Sampa::Object::get_full_name (  )  const [inherited]

name can be ([^. ]+.)*[^. ]+

Object* Sampa::Object::get_parent (  )  const [inherited]

return object containing this one

Object* Sampa::Object::get_sibling (  )  const [inherited]

return next object with same parent or NULL if none

Object* Sampa::Object::get_first_child (  )  const [inherited]

return first child object or NULL if none

int Sampa::Object::is_debug (  )  const [inline, inherited]

Definition at line 44 of file object.h.

void Sampa::Object::debug ( const char *  ,
  ... 
) [protected, inherited]

void Sampa::Object::error ( Severity  severity,
const char *  ,
  ... 
) [protected, inherited]

virtual void Sampa::Object::complete_restart (  )  [protected, virtual, inherited]

is called to finalize restart. On restart, one shall update pointers, or reopen ressources (files, ...).

Most of pointers are restored by the thanks to the post++ library provided that the CLASSINFO() was correctly set.

However, some pointers are not relocated by the library. These are for example the method pointers used for the processes. Take a look at

See also:
Module::restart_process, to see how this is handled

Reimplemented in Sampa::Bridge, Sampa::Dma, Sampa::FixLatencySlave, Sampa::PeriodicTrafficGenerator, Sampa::TwoPortL1Cpu, and Sampa::StochasticCpu.


Member Data Documentation

template<class UserModule>
UserModule* Sampa::Process< UserModule >::m_module [private]

Definition at line 65 of file module.h.

Referenced by Sampa::Process< UserModule >::execute().

template<class UserModule>
Method Sampa::Process< UserModule >::m_method [private]

Definition at line 66 of file module.h.

Referenced by Sampa::Process< UserModule >::execute(), and Sampa::Process< UserModule >::restart().

EventListenerSingle* Sampa::ProcessBase::m_trigger [protected, inherited]

Definition at line 39 of file module.h.

Referenced by Sampa::Process< UserModule >::execute(), and Sampa::ProcessBase::set_next_trigger().


The documentation for this class was generated from the following files:
Generated on Sat Feb 16 16:23:20 2008 for Sampa by  doxygen 1.5.3