rc_portal_base Class Reference

#include <rc_abstract_portal.h>

Inheritance diagram for rc_portal_base:

rc_switch rc_portal_b rc_portal_b< ReChannel::rc_port_traits< PORT >::port_traits::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_fifo_in< T > >::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_fifo_out< T > >::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_in< T > >::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_in_resolved >::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_in_rv< W > >::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_inout< T > >::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_inout_resolved >::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_inout_rv< W > >::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_event_queue_if > >::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_mutex_if > >::if_type > rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_semaphore_if > >::if_type >

List of all members.


Detailed Description

Base class of a portal implementation.

Definition at line 53 of file rc_abstract_portal.h.


Public Member Functions

virtual
rc_reconfigurable
get_current_reconfigurable () const
 returns the currently active dynamic module
virtual sc_interface * get_dynamic_interface () const
 returns the currently active dynamic interface

Protected Types

typedef
rc_interface_wrapper_base::accessor_base 
accessor_base_type
typedef
rc_switch::filter_chain 
filter_chain
 Type of the filter chain.

Protected Member Functions

 rc_portal_base (const sc_module_name &module_name, state_type &m_state, unsigned int &m_transaction_count)
void _rc_init (rc_interface_wrapper_base &interface_wrapper)
 initialize (must be called directly after construction)
void register_port (rc_port_handle port_)
virtual void rc_on_open ()
 this method is called when the portal is opened up
virtual void rc_on_close ()
 this method is called when the portal is closed
virtual void rc_on_undef ()
 this method is called when the portal is set to undefined state
virtual void rc_on_refresh_notify ()=0
 this method is called when the portal refreshes its event notif.
virtual void open ()
 opens up the portal irrespectively of a specific rc_reconfigurable
virtual void open (rc_reconfigurable &module, const filter_chain &filters=filter_chain())
 opens up the portal and activates the given dynamic module
virtual void close ()
 closes the portal and deactivates the current dynamic interface
virtual void set_undefined ()
 deactivates the current dynamic module and set to undefined state
virtual void refresh_notify ()
 refreshes the event notifications of this portal
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
rc_process_behavior_change begin_access_callback ()
 callback for interface accesses (begin access)
void end_access_callback ()
 callback for interface accesses (end access)
virtual ~rc_portal_base ()

Private Types

typedef
rc_switch::state_type 
state_type
 The three possible states of a switch.

Private Member Functions

void add_event_forwarder_target (sc_interface &target_if, rc_event_filter *filter=NULL)
void clear_event_forwarder_targets ()
virtual bool _rc_check_accessor_if_type (accessor_base_type *accessor) const =0

Private Attributes

state_typep_state
 a reference to the m_state member
unsigned int & p_transaction_count
 a reference to the m_transaction_count member
rc_interface_wrapper_basep_interface_wrapper
 a pointer to the interface wrapper
accessor_base_typep_dyn_accessor
 currently active dynamic accessor
accessor_base_typep_last_dyn_filter
 the last currently active dynamic filter in the chain
filter_chain p_dyn_filter_chain
 currently active dynamic filter chain
rc_reconfigurablep_dyn_module
 currently active dynamic module

Member Typedef Documentation

typedef rc_switch::state_type state_type [private]

The three possible states of a switch.

Reimplemented from rc_switch.

Reimplemented in rc_portal_b, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_mutex_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_semaphore_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_in< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< PORT >::port_traits::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_out< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_event_queue_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout< T > >::if_type >, and rc_portal_b< ReChannel::rc_port_traits< sc_in< T > >::if_type >.

Definition at line 58 of file rc_abstract_portal.h.

typedef rc_interface_wrapper_base::accessor_base accessor_base_type [protected]

Reimplemented in rc_portal_b, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_mutex_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_semaphore_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_in< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< PORT >::port_traits::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_out< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_event_queue_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout< T > >::if_type >, and rc_portal_b< ReChannel::rc_port_traits< sc_in< T > >::if_type >.

Definition at line 61 of file rc_abstract_portal.h.

typedef rc_switch::filter_chain filter_chain [protected]

Type of the filter chain.

A filter chain is a vector of interface filters.

Reimplemented from rc_switch.

Definition at line 62 of file rc_abstract_portal.h.


Constructor & Destructor Documentation

rc_portal_base ( const sc_module_name &  module_name,
state_type m_state,
unsigned int &  m_transaction_count 
) [protected]

Definition at line 41 of file rc_abstract_portal.cpp.

virtual ~rc_portal_base (  )  [inline, protected, virtual]

Definition at line 129 of file rc_abstract_portal.h.


Member Function Documentation

void _rc_init ( rc_interface_wrapper_base interface_wrapper  )  [protected]

initialize (must be called directly after construction)

Definition at line 50 of file rc_abstract_portal.cpp.

Referenced by rc_abstract_portal::rc_abstract_portal(), and rc_portal_b::rc_portal_b().

virtual rc_reconfigurable* get_current_reconfigurable (  )  const [inline, virtual]

returns the currently active dynamic module

Implements rc_switch.

Definition at line 75 of file rc_abstract_portal.h.

virtual sc_interface* get_dynamic_interface (  )  const [inline, virtual]

returns the currently active dynamic interface

Implements rc_switch.

Definition at line 79 of file rc_abstract_portal.h.

void register_port ( rc_port_handle  port_  )  [protected]

Definition at line 61 of file rc_abstract_portal.cpp.

Referenced by rc_abstract_portal::bind_dynamic().

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

this method is called when the portal is opened up

Definition at line 87 of file rc_abstract_portal.h.

Referenced by rc_portal_base::open().

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

this method is called when the portal is closed

Definition at line 90 of file rc_abstract_portal.h.

Referenced by rc_portal_base::close().

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

this method is called when the portal is set to undefined state

Definition at line 93 of file rc_abstract_portal.h.

Referenced by rc_portal_base::set_undefined().

virtual void rc_on_refresh_notify (  )  [protected, pure virtual]

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

Implemented in rc_portal_b, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_mutex_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_semaphore_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_in< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< PORT >::port_traits::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_out< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_event_queue_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout< T > >::if_type >, and rc_portal_b< ReChannel::rc_port_traits< sc_in< T > >::if_type >.

Referenced by rc_portal_base::refresh_notify().

void open (  )  [protected, virtual]

opens up the portal irrespectively of a specific rc_reconfigurable

Implements rc_switch.

Definition at line 94 of file rc_abstract_portal.cpp.

void open ( rc_reconfigurable module,
const filter_chain filters = filter_chain() 
) [protected, virtual]

opens up the portal and activates the given dynamic module

Definition at line 107 of file rc_abstract_portal.cpp.

void close (  )  [protected, virtual]

closes the portal and deactivates the current dynamic interface

Implements rc_switch.

Definition at line 249 of file rc_abstract_portal.cpp.

void set_undefined (  )  [protected, virtual]

deactivates the current dynamic module and set to undefined state

Implements rc_switch.

Definition at line 278 of file rc_abstract_portal.cpp.

Referenced by rc_portal_base::open().

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

refreshes the event notifications of this portal

Implements rc_switch.

Definition at line 113 of file rc_abstract_portal.h.

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

registers the given dynamic module/interface pair

Implements rc_switch.

Reimplemented in rc_portal_b, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_mutex_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_semaphore_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_in< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< PORT >::port_traits::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_out< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_event_queue_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout< T > >::if_type >, and rc_portal_b< ReChannel::rc_port_traits< sc_in< T > >::if_type >.

Definition at line 308 of file rc_abstract_portal.cpp.

Referenced by rc_portal_base::register_port(), and rc_portal_b::register_reconfigurable().

void unregister_reconfigurable ( rc_reconfigurable module  )  [protected, virtual]

unregisters the given reconfigurable module

Implements rc_switch.

Reimplemented in rc_portal_b, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_mutex_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_semaphore_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_in< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< PORT >::port_traits::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_out< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_event_queue_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout< T > >::if_type >, and rc_portal_b< ReChannel::rc_port_traits< sc_in< T > >::if_type >.

Definition at line 325 of file rc_abstract_portal.cpp.

Referenced by rc_portal_b::unregister_reconfigurable().

rc_process_behavior_change begin_access_callback (  )  [inline, protected]

callback for interface accesses (begin access)

Definition at line 407 of file rc_abstract_portal.h.

void end_access_callback (  )  [inline, protected]

callback for interface accesses (end access)

Definition at line 417 of file rc_abstract_portal.h.

void add_event_forwarder_target ( sc_interface &  target_if,
rc_event_filter filter = NULL 
) [private]

Definition at line 346 of file rc_abstract_portal.cpp.

Referenced by rc_portal_base::open().

void clear_event_forwarder_targets (  )  [private]

Definition at line 362 of file rc_abstract_portal.cpp.

Referenced by rc_portal_base::close(), and rc_portal_base::set_undefined().

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

Implemented in rc_portal_b, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_mutex_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_semaphore_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_in< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< PORT >::port_traits::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_out< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_event_queue_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout< T > >::if_type >, and rc_portal_b< ReChannel::rc_port_traits< sc_in< T > >::if_type >.

Referenced by rc_portal_base::open(), and rc_portal_base::register_reconfigurable().


Member Data Documentation

state_type& p_state [private]

a reference to the m_state member

Definition at line 148 of file rc_abstract_portal.h.

Referenced by rc_portal_base::close(), rc_portal_base::open(), rc_portal_base::set_undefined(), and rc_portal_base::unregister_reconfigurable().

unsigned int& p_transaction_count [private]

a reference to the m_transaction_count member

Definition at line 151 of file rc_abstract_portal.h.

Referenced by rc_portal_base::begin_access_callback(), rc_portal_base::close(), rc_portal_base::end_access_callback(), and rc_portal_base::set_undefined().

rc_interface_wrapper_base* p_interface_wrapper [private]

a pointer to the interface wrapper

Reimplemented in rc_portal_b, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_mutex_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_semaphore_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_in< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< PORT >::port_traits::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_fifo_out< T > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_port< sc_event_queue_if > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout_rv< W > >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_in_resolved >::if_type >, rc_portal_b< ReChannel::rc_port_traits< sc_inout< T > >::if_type >, and rc_portal_b< ReChannel::rc_port_traits< sc_in< T > >::if_type >.

Definition at line 154 of file rc_abstract_portal.h.

Referenced by rc_portal_base::_rc_init(), rc_portal_base::add_event_forwarder_target(), rc_portal_base::clear_event_forwarder_targets(), and rc_portal_base::open().

accessor_base_type* p_dyn_accessor [private]

currently active dynamic accessor

Definition at line 157 of file rc_abstract_portal.h.

Referenced by rc_portal_base::close(), rc_portal_base::get_dynamic_interface(), rc_portal_base::open(), and rc_portal_base::set_undefined().

accessor_base_type* p_last_dyn_filter [private]

the last currently active dynamic filter in the chain

Definition at line 160 of file rc_abstract_portal.h.

Referenced by rc_portal_base::open(), rc_portal_base::set_undefined(), and rc_portal_base::unregister_reconfigurable().

filter_chain p_dyn_filter_chain [private]

currently active dynamic filter chain

Definition at line 163 of file rc_abstract_portal.h.

Referenced by rc_portal_base::close(), rc_portal_base::open(), rc_portal_base::set_undefined(), and rc_portal_base::unregister_reconfigurable().

rc_reconfigurable* p_dyn_module [private]

currently active dynamic module

Definition at line 166 of file rc_abstract_portal.h.

Referenced by rc_portal_base::begin_access_callback(), rc_portal_base::end_access_callback(), rc_portal_base::get_current_reconfigurable(), rc_portal_base::open(), rc_portal_base::set_undefined(), and rc_portal_base::unregister_reconfigurable().


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