diff options
Diffstat (limited to 'src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h')
-rw-r--r-- | src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h | 88 |
1 files changed, 41 insertions, 47 deletions
diff --git a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h index 999092538..5195417a8 100644 --- a/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h +++ b/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h @@ -17,68 +17,62 @@ *****************************************************************************/ -#ifndef __TLM_ANALYSIS_PORT_H__ -#define __TLM_ANALYSIS_PORT_H__ +#ifndef __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_PORT_H__ +#define __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_PORT_H__ -#include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h" -#include <deque> #include <algorithm> +#include <deque> -namespace tlm { - +#include "tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h" -template < typename T> -class tlm_analysis_port : - public sc_core::sc_object , - public virtual tlm_analysis_if< T > +namespace tlm { - public: - tlm_analysis_port() : sc_core::sc_object() {} - tlm_analysis_port( const char *nm ) : sc_core::sc_object( nm ) {} - // bind and () work for both interfaces and analysis ports, since - // analysis ports implement the analysis interface - - virtual void bind( tlm_analysis_if<T> &_if ) { - m_interfaces.push_back( &_if ); - } - - void operator() ( tlm_analysis_if<T> &_if ) { bind( _if ); } - - virtual bool unbind( tlm_analysis_if<T> &_if ) { +template <typename T> +class tlm_analysis_port : public sc_core::sc_object, + public virtual tlm_analysis_if<T> +{ + public: + tlm_analysis_port() : sc_core::sc_object() {} + tlm_analysis_port(const char *nm) : sc_core::sc_object(nm) {} - typename std::deque< tlm_analysis_if<T> * >::iterator i - = std::remove( m_interfaces.begin(), m_interfaces.end(), &_if ); + // bind and () work for both interfaces and analysis ports, since + // analysis ports implement the analysis interface. - if( i != m_interfaces.end() ) { - m_interfaces.erase(i, m_interfaces.end() ); - return 1; + virtual void + bind(tlm_analysis_if<T> &_if) + { + m_interfaces.push_back(&_if); } - return 0; - - } - - void write( const T &t ) { - typename std::deque< tlm_analysis_if<T> * >::iterator i; - - for( i = m_interfaces.begin(); - i != m_interfaces.end(); - i++ ) { - - (*i)->write( t ); - + void operator() (tlm_analysis_if<T> &_if) { bind(_if); } + virtual bool + unbind(tlm_analysis_if<T> &_if) + { + typename std::deque<tlm_analysis_if<T> *>::iterator i = + std::remove(m_interfaces.begin(), m_interfaces.end(), &_if); + + if (i != m_interfaces.end()) { + m_interfaces.erase(i, m_interfaces.end()); + return 1; + } + return 0; } - } + void + write(const T &t) + { + typename std::deque<tlm_analysis_if<T> *>::iterator i; - private: - std::deque< tlm_analysis_if<T> * > m_interfaces; + for (i = m_interfaces.begin(); i != m_interfaces.end(); i++) { + (*i)->write(t); + } + } + private: + std::deque<tlm_analysis_if<T> *> m_interfaces; }; } // namespace tlm -#endif - - +#endif /* __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_ANALYSIS_TLM_ANALYSIS_PORT_H__ */ |