Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef TWOWAYTHREADMODULE_H
00012 #define TWOWAYTHREADMODULE_H
00013
00014 #include "Thread.h"
00015 #include "Condition.h"
00016 #include "ThreadQueue.h"
00017
00038 template<class OutT, class InT>
00039 class TwoWayThreadModule : public Thread
00040 {
00041
00042 public:
00043
00048 TwoWayThreadModule( size_t numInQueues ) : Thread()
00049 {
00050
00051 }
00052
00053 virtual ~TwoWayThreadModule()
00054 {}
00055
00061 void pushOut ( OutT element, size_t queueId )
00062 {
00063 m_OutboundQueue.push ( element );
00064 }
00065
00071 OutT popOut()
00072 {
00073 return ( m_OutboundQueue.pop() );
00074 }
00075
00079 int sizeOut()
00080 {
00081 return m_OutboundQueue.size();
00082 }
00083
00090 void pushIn ( InT element )
00091 {
00092 m_InboundQueue.push ( element );
00093 }
00094
00100 InT popIn()
00101 {
00102 return ( m_InboundQueue.pop() );
00103 }
00104
00108 bool emptyIn()
00109 {
00110 return m_InboundQueue.empty();
00111 }
00112
00116 int sizeIn()
00117 {
00118 return m_InboundQueue.size();
00119 }
00120
00121 protected:
00122
00123 };
00124
00125 #endif