#include <rc_abstract_portal.h>
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_type & | p_state |
a reference to the m_state member | |
unsigned int & | p_transaction_count |
a reference to the m_transaction_count member | |
rc_interface_wrapper_base * | p_interface_wrapper |
a pointer to the interface wrapper | |
accessor_base_type * | p_dyn_accessor |
currently active dynamic accessor | |
accessor_base_type * | p_last_dyn_filter |
the last currently active dynamic filter in the chain | |
filter_chain | p_dyn_filter_chain |
currently active dynamic filter chain | |
rc_reconfigurable * | p_dyn_module |
currently active dynamic module |
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.
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.
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] |
void end_access_callback | ( | ) | [inline, protected] |
void add_event_forwarder_target | ( | sc_interface & | target_if, | |
rc_event_filter * | filter = NULL | |||
) | [private] |
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().
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().