#include <pipeline.h>
Public Member Functions | |
shutter_thread (ThreadBase *ptrThr, pipebase *ptrPipe) | |
shutter_thread (const shutter_thread &aST) | |
~shutter_thread () | |
int | create (thread_func_t aFunc, void *aData) |
Before the thread starts, it stores two pointers used at thread's end. | |
void | join (void) |
Does the same as the original thread. | |
Private Member Functions | |
shutter_thread () | |
shutter_thread & | operator= (const shutter_thread &) |
Static Private Member Functions | |
static void * | shut_func (void *thisPtr) |
After the functor returns, shuts the pipeline so readers can stop waiting. | |
Private Attributes | |
ThreadBase * | _thr |
pipebase * | _pipe |
thread_func_t | _subFunc |
void * | _subData |
If several threads write in this buffer, only their main thread should be of this type, i.e. only one thread will set the flag '_shut'. If the main thread which writes in the inserter, is of this type, when it will be joined, this will terminates the pipe.
rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::shutter_thread | ( | ) | [private] |
rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::shutter_thread | ( | ThreadBase * | ptrThr, | |
pipebase * | ptrPipe | |||
) | [inline] |
rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::shutter_thread | ( | const shutter_thread< ThreadBase > & | aST | ) | [inline] |
rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::~shutter_thread | ( | ) | [inline] |
int rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::create | ( | thread_func_t | aFunc, | |
void * | aData | |||
) | [inline] |
Before the thread starts, it stores two pointers used at thread's end.
Then, it behaves just like the thread.
void rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::join | ( | void | ) | [inline] |
Does the same as the original thread.
shutter_thread& rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::operator= | ( | const shutter_thread< ThreadBase > & | ) | [private] |
static void* rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::shut_func | ( | void * | thisPtr | ) | [inline, static, private] |
After the functor returns, shuts the pipeline so readers can stop waiting.
pipebase* rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::_pipe [private] |
void* rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::_subData [private] |
thread_func_t rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::_subFunc [private] |
ThreadBase* rpa::pipebase< Container, CondVar >::shutter_thread< ThreadBase >::_thr [private] |