summaryrefslogtreecommitdiff
path: root/src/systemc/ext/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h
diff options
context:
space:
mode:
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.h88
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__ */