rc_exportal_base Class Reference

#include <rc_abstract_exportal.h>

Inheritance diagram for rc_exportal_base:

rc_switch wrapper_factory rc_abstract_exportal rc_abstract_exportal< if_type > rc_exportal rc_exportal< if_type >

List of all members.


Detailed Description

Base class of an exportal switch.

Definition at line 52 of file rc_abstract_exportal.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
internals::exportal::wrapper_factory 
wrapper_factory
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_exportal_base (const sc_module_name &module_name, state_type &m_state, unsigned int &m_transaction_count, wrapper_pool &s_wrapper_pool_)
void _rc_init (accessor_base_type &accessor)
 initialize (must be called (once) after construction)
void bind_dynamic (rc_export_handle export_)
 binds a dynamic export to this exportal
void bind_dynamic (sc_interface &dynamic_if_)
 binds a dynamic interface to this exportal
void bind_exclusively (rc_interface_wrapper_base &wrapper)
 binds a dynamic interface (+wrapper) exclusively to this exportal
virtual void rc_on_open ()
 this method is called when the exportal is opened up
virtual void rc_on_close ()
 this method is called when the exportal is closed
virtual void rc_on_refresh_notify ()=0
 this method is called when the exportal refreshes its event notif.
virtual void open ()
 opens up the exportal irrespectively of a specific rc_reconfigurable
virtual void open (rc_reconfigurable &module, const filter_chain &filters=filter_chain())
 opens up the exportal and activates the given dynamic module
virtual void close ()
 closes the exportal 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 exportal
virtual void register_reconfigurable (rc_reconfigurable &module, sc_interface &dyn_interface)
 registers the given reconfigurable module/interface pair
virtual void unregister_reconfigurable (rc_reconfigurable &module)
 unregisters the given reconfigurable module from this switch
rc_process_behavior_change begin_access_callback ()
 callback for interface accesses (begin access)
void end_access_callback ()
 callback for interface accesses (end access)
void notify_event (const std::string &event_name)
 notifies the specified dynamic event
rc_interface_wrapper_baseget_interface_wrapper_base () const
 returns least recently active dynamic interface wrapper
virtual ~rc_exportal_base ()

Private Types

typedef
internals::exportal::wrapper_pool 
wrapper_pool
typedef
internals::exportal::wrapper_handle 
wrapper_handle
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
accessor_base_type
_rc_get_static_accessor ()=0
virtual bool _rc_check_interface_type (sc_interface *dyn_if) const =0
virtual bool _rc_check_accessor_if_type (accessor_base_type *accessor) const =0
virtual void _rc_set_interface_wrapper_owner (rc_interface_wrapper_base *wrapper)=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
wrapper_pools_wrapper_pool
 a reference to the static interface wrapper pool
wrapper_handle p_dyn_wrapper_handle
 access to the wrapper of the currently active dynamic interface
filter_chain p_dyn_filter_chain
 currently active dynamic filter chain
accessor_base_typep_first_dyn_filter
 first currently active dynamic filter in the chain
rc_reconfigurablep_dyn_module
 currently active dynamic module
wrapper_handle p_reserved_wrapper_handle
 reserving the last active wrapper for later reuse
rc_interface_wrapper_basep_exclusive_wrapper
 wrapper of an exclusive bound interface

Member Typedef Documentation

typedef internals::exportal::wrapper_pool wrapper_pool [private]

Reimplemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Definition at line 58 of file rc_abstract_exportal.h.

typedef internals::exportal::wrapper_handle wrapper_handle [private]

Definition at line 59 of file rc_abstract_exportal.h.

typedef rc_switch::state_type state_type [private]

The three possible states of a switch.

Reimplemented from rc_switch.

Reimplemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Definition at line 60 of file rc_abstract_exportal.h.

typedef internals::exportal::wrapper_factory wrapper_factory [protected]

Reimplemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Definition at line 63 of file rc_abstract_exportal.h.

typedef rc_interface_wrapper_base::accessor_base accessor_base_type [protected]

Reimplemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Definition at line 65 of file rc_abstract_exportal.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 66 of file rc_abstract_exportal.h.


Constructor & Destructor Documentation

rc_exportal_base ( const sc_module_name &  module_name,
state_type m_state,
unsigned int &  m_transaction_count,
wrapper_pool s_wrapper_pool_ 
) [protected]

Definition at line 41 of file rc_abstract_exportal.cpp.

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

Definition at line 143 of file rc_abstract_exportal.h.


Member Function Documentation

void _rc_init ( accessor_base_type accessor  )  [protected]

initialize (must be called (once) after construction)

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

returns the currently active dynamic module

Implements rc_switch.

Definition at line 80 of file rc_abstract_exportal.h.

sc_interface * get_dynamic_interface (  )  const [virtual]

returns the currently active dynamic interface

Implements rc_switch.

Definition at line 52 of file rc_abstract_exportal.cpp.

void bind_dynamic ( rc_export_handle  export_  )  [protected]

binds a dynamic export to this exportal

Definition at line 61 of file rc_abstract_exportal.cpp.

Referenced by rc_abstract_exportal< sc_fifo_in_if< T > >::bind_dynamic(), and rc_abstract_exportal< sc_fifo_in_if< T > >::dynamic_export().

void bind_dynamic ( sc_interface &  dynamic_if_  )  [protected]

binds a dynamic interface to this exportal

Definition at line 94 of file rc_abstract_exportal.cpp.

void bind_exclusively ( rc_interface_wrapper_base wrapper  )  [protected]

binds a dynamic interface (+wrapper) exclusively to this exportal

Definition at line 120 of file rc_abstract_exportal.cpp.

Referenced by rc_abstract_exportal::bind_exclusively().

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

this method is called when the exportal is opened up

Definition at line 98 of file rc_abstract_exportal.h.

Referenced by rc_exportal_base::open().

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

this method is called when the exportal is closed

Definition at line 101 of file rc_abstract_exportal.h.

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

virtual void rc_on_refresh_notify (  )  [protected, pure virtual]

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

Implemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Referenced by rc_exportal_base::refresh_notify().

void open (  )  [protected, virtual]

opens up the exportal irrespectively of a specific rc_reconfigurable

Implements rc_switch.

Definition at line 151 of file rc_abstract_exportal.cpp.

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

opens up the exportal and activates the given dynamic module

Definition at line 163 of file rc_abstract_exportal.cpp.

void close (  )  [protected, virtual]

closes the exportal and deactivates the current dynamic interface

Implements rc_switch.

Definition at line 332 of file rc_abstract_exportal.cpp.

void set_undefined (  )  [protected, virtual]

deactivates the current dynamic module and set to undefined state

Implements rc_switch.

Definition at line 362 of file rc_abstract_exportal.cpp.

Referenced by rc_exportal_base::open().

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

refreshes the event notifications of this exportal

Implements rc_switch.

Definition at line 121 of file rc_abstract_exportal.h.

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

registers the given reconfigurable module/interface pair

Implements rc_switch.

Reimplemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Definition at line 393 of file rc_abstract_exportal.cpp.

Referenced by rc_exportal_base::bind_dynamic(), rc_exportal_base::bind_exclusively(), and rc_abstract_exportal::register_reconfigurable().

void unregister_reconfigurable ( rc_reconfigurable module  )  [protected, virtual]

unregisters the given reconfigurable module from this switch

Implements rc_switch.

Reimplemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Definition at line 405 of file rc_abstract_exportal.cpp.

Referenced by rc_abstract_exportal::unregister_reconfigurable().

rc_process_behavior_change begin_access_callback (  )  [inline, protected]

callback for interface accesses (begin access)

Definition at line 442 of file rc_abstract_exportal.h.

void end_access_callback (  )  [inline, protected]

callback for interface accesses (end access)

Definition at line 455 of file rc_abstract_exportal.h.

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

notifies the specified dynamic event

Definition at line 427 of file rc_abstract_exportal.cpp.

rc_interface_wrapper_base * get_interface_wrapper_base (  )  const [protected]

returns least recently active dynamic interface wrapper

Definition at line 439 of file rc_abstract_exportal.cpp.

Referenced by rc_abstract_exportal::get_interface(), and rc_abstract_exportal::get_interface_wrapper().

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

Definition at line 450 of file rc_abstract_exportal.cpp.

Referenced by rc_exportal_base::open().

void clear_event_forwarder_targets (  )  [private]

Definition at line 463 of file rc_abstract_exportal.cpp.

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

virtual accessor_base_type& _rc_get_static_accessor (  )  [private, pure virtual]

Implemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Referenced by rc_exportal_base::close(), rc_exportal_base::open(), and rc_exportal_base::set_undefined().

virtual bool _rc_check_interface_type ( sc_interface *  dyn_if  )  const [private, pure virtual]

Implemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

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

Implemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Referenced by rc_exportal_base::open().

virtual void _rc_set_interface_wrapper_owner ( rc_interface_wrapper_base wrapper  )  [private, pure virtual]

Implemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Referenced by rc_exportal_base::open().


Member Data Documentation

state_type& p_state [private]

a reference to the m_state member

Definition at line 169 of file rc_abstract_exportal.h.

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

unsigned int& p_transaction_count [private]

a reference to the m_transaction_count member

Definition at line 172 of file rc_abstract_exportal.h.

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

wrapper_pool& s_wrapper_pool [private]

a reference to the static interface wrapper pool

Reimplemented in rc_abstract_exportal, rc_abstract_exportal< if_type >, rc_abstract_exportal< sc_fifo_out_if< T > >, and rc_abstract_exportal< sc_fifo_in_if< T > >.

Definition at line 175 of file rc_abstract_exportal.h.

Referenced by rc_exportal_base::open().

wrapper_handle p_dyn_wrapper_handle [private]

access to the wrapper of the currently active dynamic interface

Definition at line 178 of file rc_abstract_exportal.h.

Referenced by rc_exportal_base::add_event_forwarder_target(), rc_exportal_base::clear_event_forwarder_targets(), rc_exportal_base::close(), rc_exportal_base::get_dynamic_interface(), rc_exportal_base::get_interface_wrapper_base(), rc_exportal_base::notify_event(), rc_exportal_base::open(), and rc_exportal_base::set_undefined().

filter_chain p_dyn_filter_chain [private]

currently active dynamic filter chain

Definition at line 181 of file rc_abstract_exportal.h.

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

accessor_base_type* p_first_dyn_filter [private]

first currently active dynamic filter in the chain

Definition at line 184 of file rc_abstract_exportal.h.

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

rc_reconfigurable* p_dyn_module [private]

currently active dynamic module

Definition at line 187 of file rc_abstract_exportal.h.

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

wrapper_handle p_reserved_wrapper_handle [private]

reserving the last active wrapper for later reuse

Definition at line 190 of file rc_abstract_exportal.h.

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

rc_interface_wrapper_base* p_exclusive_wrapper [private]

wrapper of an exclusive bound interface

Definition at line 193 of file rc_abstract_exportal.h.

Referenced by rc_exportal_base::bind_exclusively(), and rc_exportal_base::open().


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