#include <rc_abstract_exportal.h>
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_base * | get_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_type & | p_state |
a reference to the m_state member | |
unsigned int & | p_transaction_count |
a reference to the m_transaction_count member | |
wrapper_pool & | s_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_type * | p_first_dyn_filter |
first currently active dynamic filter in the chain | |
rc_reconfigurable * | p_dyn_module |
currently active dynamic module | |
wrapper_handle | p_reserved_wrapper_handle |
reserving the last active wrapper for later reuse | |
rc_interface_wrapper_base * | p_exclusive_wrapper |
wrapper of an exclusive bound interface |
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.
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.
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] |
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] |
void notify_event | ( | const std::string & | event_name | ) | [protected] |
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] |
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] |
virtual bool _rc_check_interface_type | ( | sc_interface * | dyn_if | ) | const [private, pure virtual] |
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().
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().