rc_portal_b Class Template Reference

#include <rc_abstract_portal.h>

Inheritance diagram for rc_portal_b:

rc_portal_base rc_abstract_switch rc_switch rc_abstract_switch_b rc_switch rc_abstract_portal rc_abstract_portal< sc_fifo_in< T > > rc_abstract_portal< sc_fifo_out< T > > rc_abstract_portal< sc_in< T > > rc_abstract_portal< sc_in_resolved > rc_abstract_portal< sc_in_rv< W > > rc_abstract_portal< sc_inout< T > > rc_abstract_portal< sc_inout_resolved > rc_abstract_portal< sc_inout_rv< W > > rc_abstract_portal< sc_port< sc_event_queue_if > > rc_abstract_portal< sc_port< sc_mutex_if > > rc_abstract_portal< sc_port< sc_semaphore_if > >

List of all members.


Detailed Description

template<class IF>
class ReChannel::rc_portal_b< IF >

Base class of a portal implementation.

Definition at line 173 of file rc_abstract_portal.h.


Public Types

typedef IF if_type
typedef rc_accessor< IF > accessor_type

Public Member Functions

virtual std::string get_switch_kind () const
 returns the kind of this portal
virtual std::string get_switch_name () const
 returns the name of this portal
virtual sc_interface * get_static_interface () const
 returns the static interface

Protected Member Functions

 rc_portal_b (const sc_module_name &module_name)
 constructor
void _rc_init (rc_port_handle static_port)
 initialize (must be called directly after construction)
virtual accessor_typecreate_accessor () const
 creates an unconnected accessor
virtual void rc_on_refresh_notify ()
 this method is called when the portal refreshes its event notif.
virtual void register_reconfigurable (rc_reconfigurable &module, sc_interface &dyn_interface)
 registers the given dynamic module/interface pair
virtual void unregister_reconfigurable (rc_reconfigurable &module)
 unregisters the given reconfigurable module
virtual void end_of_elaboration ()
 things which have to be done at end of elaboration
virtual void unused ()=0
 bind static_port to rc_fallback_interface<IF>
virtual bool is_unused () const =0
template<class IF_>
void add_event_forwarder (const sc_event &(IF_::*event_getter)() const, const std::string &event_name=NULL)
 creates an event forwarder for the specified event getter method
void notify_event (const std::string &event_name)
 triggers the notification of the specified dynamic event
rc_interface_wrapper
< IF > & 
get_interface_wrapper ()
 returns a reference to the portal's interface wrapper

Private Types

typedef rc_portal_b< IF > this_type
typedef rc_portal_base base_type
typedef
rc_abstract_switch
< IF > 
switch_parent_type
typedef
base_type::accessor_base_type 
accessor_base_type
typedef
rc_interface_wrapper
< IF >::accessor 
accessor_b_type
typedef
rc_switch::state_type 
state_type
 The three possible states of a switch.
typedef
boost::function
< const sc_event
&(IF *) 
event_getter_functor )
typedef std::vector
< std::pair
< event_getter_functor,
std::string > > 
ef_constr_vector

Private Member Functions

 RC_STATIC_ASSERT_VALID_INTERFACE (IF)
virtual bool _rc_check_accessor_if_type (accessor_base_type *accessor) const

Private Attributes

interface_wrapper p_interface_wrapper
 the interface wrapper for the static interface
rc_port_handle p_static_port
 a handle to the static port
ef_constr_vector p_ef_constr_vector
 event forwarder construction vector

Classes

class  interface_wrapper
 The interface wrapper within portals. More...

Member Typedef Documentation

typedef rc_portal_b<IF> this_type [private]

Reimplemented in rc_abstract_portal, rc_abstract_portal< sc_in_rv< W > >, rc_abstract_portal< sc_port< sc_mutex_if > >, rc_abstract_portal< sc_in_resolved >, rc_abstract_portal< sc_inout< T > >, rc_abstract_portal< sc_in< T > >, rc_abstract_portal< sc_inout_rv< W > >, rc_abstract_portal< sc_inout_resolved >, rc_abstract_portal< sc_fifo_in< T > >, rc_abstract_portal< sc_fifo_out< T > >, rc_abstract_portal< sc_port< sc_event_queue_if > >, and rc_abstract_portal< sc_port< sc_semaphore_if > >.

Definition at line 180 of file rc_abstract_portal.h.

typedef rc_portal_base base_type [private]

Reimplemented from rc_abstract_switch.

Reimplemented in rc_abstract_portal, rc_event_queue_portal, rc_fifo_in_portal, rc_fifo_out_portal, rc_mutex_portal, rc_portal, rc_portal< sc_out_resolved >, rc_in_resolved_portal, rc_inout_resolved_portal, rc_out_resolved_portal, rc_portal< sc_out_rv< W > >, rc_in_rv_portal, rc_inout_rv_portal, rc_out_rv_portal, rc_semaphore_portal, rc_portal< sc_out< T > >, rc_in_portal, rc_inout_portal, rc_out_portal, rc_abstract_portal< sc_in_rv< W > >, rc_abstract_portal< sc_port< sc_mutex_if > >, rc_abstract_portal< sc_in_resolved >, rc_abstract_portal< sc_inout< T > >, rc_abstract_portal< sc_in< T > >, rc_abstract_portal< sc_inout_rv< W > >, rc_abstract_portal< sc_inout_resolved >, rc_abstract_portal< sc_fifo_in< T > >, rc_abstract_portal< sc_fifo_out< T > >, rc_abstract_portal< sc_port< sc_event_queue_if > >, rc_abstract_portal< sc_port< sc_semaphore_if > >, rc_portal< sc_in_rv< W > >, rc_portal< sc_port< sc_mutex_if > >, rc_portal< sc_in_resolved >, rc_portal< sc_inout< T > >, rc_portal< sc_in< T > >, rc_portal< sc_inout_rv< W > >, rc_portal< sc_inout_resolved >, rc_portal< sc_fifo_in< T > >, rc_portal< sc_fifo_out< T > >, rc_portal< sc_port< sc_event_queue_if > >, and rc_portal< sc_port< sc_semaphore_if > >.

Definition at line 181 of file rc_abstract_portal.h.

typedef rc_abstract_switch<IF> switch_parent_type [private]

Definition at line 182 of file rc_abstract_portal.h.

typedef base_type::accessor_base_type accessor_base_type [private]

Reimplemented from rc_portal_base.

Definition at line 184 of file rc_abstract_portal.h.

typedef rc_interface_wrapper<IF>::accessor accessor_b_type [private]

Definition at line 185 of file rc_abstract_portal.h.

typedef rc_switch::state_type state_type [private]

The three possible states of a switch.

Reimplemented from rc_portal_base.

Definition at line 187 of file rc_abstract_portal.h.

typedef boost::function<const sc_event& (IF*) event_getter_functor) [private]

Definition at line 189 of file rc_abstract_portal.h.

typedef std::vector<std::pair<event_getter_functor, std::string> > ef_constr_vector [private]

Definition at line 191 of file rc_abstract_portal.h.

typedef IF if_type

Reimplemented in rc_abstract_portal, rc_event_queue_portal, rc_fifo_in_portal, rc_fifo_out_portal, rc_mutex_portal, rc_portal, rc_portal< sc_out_resolved >, rc_in_resolved_portal, rc_inout_resolved_portal, rc_out_resolved_portal, rc_portal< sc_out_rv< W > >, rc_in_rv_portal, rc_inout_rv_portal, rc_out_rv_portal, rc_semaphore_portal, rc_portal< sc_out< T > >, rc_in_portal, rc_inout_portal, rc_out_portal, rc_abstract_portal< sc_in_rv< W > >, rc_abstract_portal< sc_port< sc_mutex_if > >, rc_abstract_portal< sc_in_resolved >, rc_abstract_portal< sc_inout< T > >, rc_abstract_portal< sc_in< T > >, rc_abstract_portal< sc_inout_rv< W > >, rc_abstract_portal< sc_inout_resolved >, rc_abstract_portal< sc_fifo_in< T > >, rc_abstract_portal< sc_fifo_out< T > >, rc_abstract_portal< sc_port< sc_event_queue_if > >, rc_abstract_portal< sc_port< sc_semaphore_if > >, rc_portal< sc_in_rv< W > >, rc_portal< sc_port< sc_mutex_if > >, rc_portal< sc_in_resolved >, rc_portal< sc_inout< T > >, rc_portal< sc_in< T > >, rc_portal< sc_inout_rv< W > >, rc_portal< sc_inout_resolved >, rc_portal< sc_fifo_in< T > >, rc_portal< sc_fifo_out< T > >, rc_portal< sc_port< sc_event_queue_if > >, and rc_portal< sc_port< sc_semaphore_if > >.

Definition at line 198 of file rc_abstract_portal.h.

typedef rc_accessor<IF> accessor_type

Reimplemented in rc_abstract_portal, rc_event_queue_portal, rc_fifo_in_portal, rc_fifo_out_portal, rc_mutex_portal, rc_portal, rc_portal< sc_out_resolved >, rc_in_resolved_portal, rc_inout_resolved_portal, rc_out_resolved_portal, rc_portal< sc_out_rv< W > >, rc_in_rv_portal, rc_inout_rv_portal, rc_out_rv_portal, rc_semaphore_portal, rc_portal< sc_out< T > >, rc_in_portal, rc_inout_portal, rc_out_portal, rc_abstract_portal< sc_in_rv< W > >, rc_abstract_portal< sc_port< sc_mutex_if > >, rc_abstract_portal< sc_in_resolved >, rc_abstract_portal< sc_inout< T > >, rc_abstract_portal< sc_in< T > >, rc_abstract_portal< sc_inout_rv< W > >, rc_abstract_portal< sc_inout_resolved >, rc_abstract_portal< sc_fifo_in< T > >, rc_abstract_portal< sc_fifo_out< T > >, rc_abstract_portal< sc_port< sc_event_queue_if > >, rc_abstract_portal< sc_port< sc_semaphore_if > >, rc_portal< sc_in_rv< W > >, rc_portal< sc_port< sc_mutex_if > >, rc_portal< sc_in_resolved >, rc_portal< sc_inout< T > >, rc_portal< sc_in< T > >, rc_portal< sc_inout_rv< W > >, rc_portal< sc_inout_resolved >, rc_portal< sc_fifo_in< T > >, rc_portal< sc_fifo_out< T > >, rc_portal< sc_port< sc_event_queue_if > >, and rc_portal< sc_port< sc_semaphore_if > >.

Definition at line 199 of file rc_abstract_portal.h.


Constructor & Destructor Documentation

rc_portal_b ( const sc_module_name &  module_name  )  [inline, explicit, protected]

constructor

Definition at line 430 of file rc_abstract_portal.h.


Member Function Documentation

RC_STATIC_ASSERT_VALID_INTERFACE ( IF   )  [private]

Reimplemented from rc_abstract_switch.

void _rc_init ( rc_port_handle  static_port  )  [inline, protected]

initialize (must be called directly after construction)

Definition at line 439 of file rc_abstract_portal.h.

virtual std::string get_switch_kind (  )  const [inline, virtual]

returns the kind of this portal

Reimplemented from rc_abstract_switch_b.

Definition at line 214 of file rc_abstract_portal.h.

virtual std::string get_switch_name (  )  const [inline, virtual]

returns the name of this portal

Reimplemented from rc_abstract_switch_b.

Definition at line 218 of file rc_abstract_portal.h.

sc_interface * get_static_interface (  )  const [inline, virtual]

returns the static interface

Implements rc_switch.

Definition at line 451 of file rc_abstract_portal.h.

Referenced by rc_portal_b::end_of_elaboration().

virtual accessor_type* create_accessor (  )  const [inline, protected, virtual]

creates an unconnected accessor

Definition at line 227 of file rc_abstract_portal.h.

Referenced by rc_abstract_portal::bind_dynamic().

virtual void rc_on_refresh_notify (  )  [inline, protected, virtual]

this method is called when the portal refreshes its event notif.

Implements rc_portal_base.

Definition at line 231 of file rc_abstract_portal.h.

void register_reconfigurable ( rc_reconfigurable module,
sc_interface &  dyn_interface 
) [inline, protected, virtual]

registers the given dynamic module/interface pair

Reimplemented from rc_portal_base.

Definition at line 483 of file rc_abstract_portal.h.

void unregister_reconfigurable ( rc_reconfigurable module  )  [inline, protected, virtual]

unregisters the given reconfigurable module

Reimplemented from rc_portal_base.

Definition at line 491 of file rc_abstract_portal.h.

void end_of_elaboration (  )  [inline, protected, virtual]

things which have to be done at end of elaboration

Definition at line 498 of file rc_abstract_portal.h.

virtual void unused (  )  [protected, pure virtual]

bind static_port to rc_fallback_interface<IF>

Implemented in rc_abstract_portal, rc_abstract_portal< sc_in_rv< W > >, rc_abstract_portal< sc_port< sc_mutex_if > >, rc_abstract_portal< sc_in_resolved >, rc_abstract_portal< sc_inout< T > >, rc_abstract_portal< sc_in< T > >, rc_abstract_portal< sc_inout_rv< W > >, rc_abstract_portal< sc_inout_resolved >, rc_abstract_portal< sc_fifo_in< T > >, rc_abstract_portal< sc_fifo_out< T > >, rc_abstract_portal< sc_port< sc_event_queue_if > >, and rc_abstract_portal< sc_port< sc_semaphore_if > >.

virtual bool is_unused (  )  const [protected, pure virtual]

Implemented in rc_abstract_portal, rc_abstract_portal< sc_in_rv< W > >, rc_abstract_portal< sc_port< sc_mutex_if > >, rc_abstract_portal< sc_in_resolved >, rc_abstract_portal< sc_inout< T > >, rc_abstract_portal< sc_in< T > >, rc_abstract_portal< sc_inout_rv< W > >, rc_abstract_portal< sc_inout_resolved >, rc_abstract_portal< sc_fifo_in< T > >, rc_abstract_portal< sc_fifo_out< T > >, rc_abstract_portal< sc_port< sc_event_queue_if > >, and rc_abstract_portal< sc_port< sc_semaphore_if > >.

void add_event_forwarder ( const sc_event &(IF_::*)() const   event_getter,
const std::string &  event_name = NULL 
) [inline, protected]

creates an event forwarder for the specified event getter method

Definition at line 462 of file rc_abstract_portal.h.

void notify_event ( const std::string &  event_name  )  [inline, protected]

triggers the notification of the specified dynamic event

Definition at line 256 of file rc_abstract_portal.h.

rc_interface_wrapper<IF>& get_interface_wrapper (  )  [inline, protected]

returns a reference to the portal's interface wrapper

Definition at line 260 of file rc_abstract_portal.h.

bool _rc_check_accessor_if_type ( accessor_base_type accessor  )  const [inline, private, virtual]

Implements rc_portal_base.

Definition at line 529 of file rc_abstract_portal.h.


Member Data Documentation

interface_wrapper p_interface_wrapper [private]

the interface wrapper for the static interface

Reimplemented from rc_portal_base.

Definition at line 272 of file rc_abstract_portal.h.

Referenced by rc_portal_b::add_event_forwarder(), rc_portal_b::end_of_elaboration(), rc_portal_b< ReChannel::rc_port_traits< sc_in< T > >::if_type >::get_interface_wrapper(), rc_portal_b< ReChannel::rc_port_traits< sc_in< T > >::if_type >::notify_event(), and rc_portal_b::rc_portal_b().

rc_port_handle p_static_port [private]

a handle to the static port

Definition at line 275 of file rc_abstract_portal.h.

Referenced by rc_portal_b::_rc_init(), rc_portal_b::add_event_forwarder(), and rc_portal_b::get_static_interface().

ef_constr_vector p_ef_constr_vector [private]

event forwarder construction vector

Definition at line 278 of file rc_abstract_portal.h.

Referenced by rc_portal_b::add_event_forwarder(), and rc_portal_b::end_of_elaboration().


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