rc_event_forwarder Class Template Reference

#include <rc_event_forwarder.h>

Inheritance diagram for rc_event_forwarder:

rc_event_forwarder_base rc_event_trigger

List of all members.


Detailed Description

template<class IF>
class ReChannel::rc_event_forwarder< IF >

Implementation of an event forwarder (optimized for one or two targets).

Definition at line 90 of file rc_event_forwarder.h.


Public Member Functions

 rc_event_forwarder (event_getter_type event_getter_method)
 Constructor.
virtual bool add_target (sc_event &target_event, rc_event_filter *filter=NULL)
 Adds a target event.
virtual bool add_target (sc_interface &target_if, rc_event_filter *filter=NULL)
 Adds a target event obtained from the target interface.
virtual bool add_target (IF &target_if, rc_event_filter *filter=NULL)
 Adds a target event obtained from the target interface.
virtual int get_target_count () const
 Returns the number of added target events.
virtual void clear_targets ()
 Clears the target chain.
virtual void trigger_event ()
 Triggers the event notification on the target chain.
virtual ~rc_event_forwarder ()
 Virtual destructor.

Protected Types

typedef
boost::function
< const sc_event
&(IF *) 
event_getter_type )
 Event getter functor.
typedef std::vector
< target
target_vector

Protected Member Functions

virtual void rc_trigger_event (const sc_event &start_event)
 Event notification trigger (requested by a filter).

Protected Attributes

const event_getter_type m_get_event
 event getter functor
target m_target1
 first target event
target m_target2
 second target event
target_vector m_targets
 further target events

Private Member Functions

 RC_STATIC_ASSERT_VALID_INTERFACE (IF)

Classes

struct  target

Member Typedef Documentation

typedef boost::function<const sc_event& (IF*) event_getter_type) [protected]

Event getter functor.

An event getter functor must provide the following signature:

Definition at line 116 of file rc_event_forwarder.h.

typedef std::vector<target> target_vector [protected]

Definition at line 118 of file rc_event_forwarder.h.


Constructor & Destructor Documentation

rc_event_forwarder ( event_getter_type  event_getter_method  )  [inline]

Constructor.

Definition at line 262 of file rc_event_forwarder.h.

~rc_event_forwarder (  )  [inline, virtual]

Virtual destructor.

Definition at line 270 of file rc_event_forwarder.h.


Member Function Documentation

RC_STATIC_ASSERT_VALID_INTERFACE ( IF   )  [private]

bool add_target ( sc_event &  target_event,
rc_event_filter filter = NULL 
) [inline, virtual]

Adds a target event.

Implements rc_event_forwarder_base.

Definition at line 274 of file rc_event_forwarder.h.

Referenced by rc_event_forwarder::add_target().

bool add_target ( sc_interface &  target_if,
rc_event_filter filter = NULL 
) [inline, virtual]

Adds a target event obtained from the target interface.

Implements rc_event_forwarder_base.

Definition at line 312 of file rc_event_forwarder.h.

bool add_target ( IF &  target_if,
rc_event_filter filter = NULL 
) [inline, virtual]

Adds a target event obtained from the target interface.

Definition at line 324 of file rc_event_forwarder.h.

int get_target_count (  )  const [inline, virtual]

Returns the number of added target events.

Implements rc_event_forwarder_base.

Definition at line 333 of file rc_event_forwarder.h.

void clear_targets (  )  [inline, virtual]

Clears the target chain.

Implements rc_event_forwarder_base.

Definition at line 340 of file rc_event_forwarder.h.

void trigger_event (  )  [inline, virtual]

Triggers the event notification on the target chain.

Remarks:
May be used as a forwarder process.

Implements rc_event_forwarder_base.

Definition at line 373 of file rc_event_forwarder.h.

void rc_trigger_event ( const sc_event &  start_event  )  [inline, protected, virtual]

Event notification trigger (requested by a filter).

In constrast to trigger_event(), it starts triggering at the position of the specified event in the chain.

The call will be ignored if the event cannot be found in the chain.

Implements rc_event_trigger.

Definition at line 416 of file rc_event_forwarder.h.


Member Data Documentation

const event_getter_type m_get_event [protected]

event getter functor

Definition at line 181 of file rc_event_forwarder.h.

Referenced by rc_event_forwarder::add_target().

target m_target1 [protected]

first target event

Definition at line 185 of file rc_event_forwarder.h.

Referenced by rc_event_forwarder::add_target(), rc_event_forwarder::clear_targets(), rc_event_forwarder::get_target_count(), rc_event_forwarder::rc_trigger_event(), and rc_event_forwarder::trigger_event().

target m_target2 [protected]

second target event

Definition at line 189 of file rc_event_forwarder.h.

Referenced by rc_event_forwarder::add_target(), rc_event_forwarder::clear_targets(), rc_event_forwarder::get_target_count(), rc_event_forwarder::rc_trigger_event(), and rc_event_forwarder::trigger_event().

target_vector m_targets [protected]

further target events

Definition at line 193 of file rc_event_forwarder.h.

Referenced by rc_event_forwarder::add_target(), rc_event_forwarder::clear_targets(), rc_event_forwarder::get_target_count(), rc_event_forwarder::rc_trigger_event(), and rc_event_forwarder::trigger_event().


The documentation for this class was generated from the following file:
Generated on Tue Jan 1 23:14:12 2008 for ReChannel by  doxygen 1.5.3