Inheritance diagram for AxPipe::CJoin::CTSinkJoin:
Public Member Functions | |
CTSinkJoin () | |
Init of member variables. | |
CSeg * | GetSeg () |
Get the current segment pointer. | |
bool | IsEmpty () |
True if empty. Obviously. | |
void | SinkWorkWait () |
Wait for this sink make a segment ready via GetSeg(). | |
void | SinkWorkEnd () |
Signal this sink that you've accepted the segment via GetSeg(). | |
Protected Member Functions | |
void | Out (CSeg *pSeg) |
Send the data to the CJoin, along with the index. | |
bool | OutClose () |
Mark input as empty. | |
bool | OutFlush () |
Forward a flush request to the CJoin. | |
Private Attributes | |
CThreadSync | m_Sync |
Synchronize in streams with worker join thread. | |
CSeg * | m_pNextSeg |
Communicates the next segment to In(). | |
bool | m_fEmpty |
Set when a NULL is output, to indicate that it's empty. |
The Out() method is overriden to communicate CJoin::In() via thread sync. CJoin::In() calls CSinkJoin::m_ppInSinks[i].GetSeg(), which waits for a new segment to arrive from the indexed source, and then provides it.
Definition at line 538 of file AxPipe.h.
|
Get the current segment pointer. Called by the In() of the CJoin to get the next segment from this input stream, after returning from SinkWorkWait().
Definition at line 94 of file CJoin.cpp. References m_fEmpty, and m_pNextSeg. Referenced by AxPipe::CJoin::StreamSeg(). |
|
True if empty. Obviously. Check for empty condition
Definition at line 86 of file CJoin.cpp. References m_fEmpty. Referenced by AxPipe::CJoin::StreamEmpty(), and AxPipe::CJoin::StreamSeg(). |
|
Send the data to the CJoin, along with the index.
Implements AxPipe::CSink. Definition at line 41 of file CJoin.cpp. References _T, AxPipe::ERROR_CODE_GENERIC, m_fEmpty, m_pNextSeg, m_Sync, AxPipe::CSeg::Release(), AxPipe::CError::SetError(), AxPipe::CThreadSync::WorkSignal(), and AxPipe::CThreadSync::WorkStart(). Referenced by OutClose(), and OutFlush(). |
|
Mark input as empty. Pass a NULL as filter conventions dictate so the CJoin reader can detect it, and not ask for more.
Reimplemented from AxPipe::CSink. |
|
Forward a flush request to the CJoin. Use filter conventions to signal the CJoin, so zero-len segment is sent. Reimplemented from AxPipe::CSink. |
|
Signal this sink that you've accepted the segment via GetSeg(). Called by the worker CJoin thread to signal that it's done with it's work and potentially ready for more. Definition at line 110 of file CJoin.cpp. References m_Sync, and AxPipe::CThreadSync::WorkEnd(). |
|
Wait for this sink make a segment ready via GetSeg(). Called by the worker CJoin thread to wait for the arrival of more. CJoin expects to block waiting for more, or NULL if the end of stream is deteced. Definition at line 103 of file CJoin.cpp. References m_Sync, and AxPipe::CThreadSync::WorkWait(). Referenced by AxPipe::CJoin::StreamSeg(). |