Public Types | |
typedef std::set < OperationThread * > | OperationThreads |
Public Member Functions | |
OperationQueue () | |
osg::ref_ptr< Operation > | getNextOperation (bool blockIfEmpty=false) |
Get the next operation from the operation queue. | |
bool | empty () const |
Return true if the operation queue is empty. | |
void | add (Operation *operation) |
Add operation to end of OperationQueue, this will be executed by the operation thread once this operation gets to the head of the queue. | |
void | remove (Operation *operation) |
Remove operation from OperationQueue. | |
void | remove (const std::string &name) |
Remove named operation from OperationQueue. | |
void | removeAllOperations () |
Remove all operations from OperationQueue. | |
void | runOperations (Object *callingObject=0) |
Run the operations. | |
void | releaseAllOperations () |
Call release on all operations. | |
void | releaseOperationsBlock () |
Release operations block that is used to block threads that are waiting on an empty operations queue. | |
const OperationThreads & | getOperationThreads () const |
Get the set of OperationThreads that are sharing this OperationQueue. | |
Protected Types | |
typedef std::list < osg::ref_ptr < Operation > > | Operations |
Protected Member Functions | |
virtual | ~OperationQueue () |
void | addOperationThread (OperationThread *thread) |
void | removeOperationThread (OperationThread *thread) |
Protected Attributes | |
OpenThreads::Mutex | _operationsMutex |
osg::ref_ptr < osg::RefBlock > | _operationsBlock |
Operations | _operations |
Operations::iterator | _currentOperationIterator |
OperationThreads | _operationThreads |
Friends | |
class | OperationThread |
typedef std::set<OperationThread*> osg::OperationQueue::OperationThreads |
typedef std::list< osg::ref_ptr<Operation> > osg::OperationQueue::Operations [protected] |
osg::OperationQueue::OperationQueue | ( | ) |
virtual osg::OperationQueue::~OperationQueue | ( | ) | [protected, virtual] |
osg::ref_ptr<Operation> osg::OperationQueue::getNextOperation | ( | bool | blockIfEmpty = false |
) |
Get the next operation from the operation queue.
Return null ref_ptr<> if no operations are left in queue.
bool osg::OperationQueue::empty | ( | ) | const [inline] |
Return true if the operation queue is empty.
void osg::OperationQueue::add | ( | Operation * | operation | ) |
Add operation to end of OperationQueue, this will be executed by the operation thread once this operation gets to the head of the queue.
void osg::OperationQueue::remove | ( | Operation * | operation | ) |
Remove operation from OperationQueue.
void osg::OperationQueue::remove | ( | const std::string & | name | ) |
Remove named operation from OperationQueue.
void osg::OperationQueue::removeAllOperations | ( | ) |
Remove all operations from OperationQueue.
void osg::OperationQueue::runOperations | ( | Object * | callingObject = 0 |
) |
Run the operations.
void osg::OperationQueue::releaseAllOperations | ( | ) |
Call release on all operations.
void osg::OperationQueue::releaseOperationsBlock | ( | ) |
Release operations block that is used to block threads that are waiting on an empty operations queue.
const OperationThreads& osg::OperationQueue::getOperationThreads | ( | ) | const [inline] |
Get the set of OperationThreads that are sharing this OperationQueue.
void osg::OperationQueue::addOperationThread | ( | OperationThread * | thread | ) | [protected] |
void osg::OperationQueue::removeOperationThread | ( | OperationThread * | thread | ) | [protected] |
friend class OperationThread [friend] |
OpenThreads::Mutex osg::OperationQueue::_operationsMutex [protected] |
Operations osg::OperationQueue::_operations [protected] |
Operations::iterator osg::OperationQueue::_currentOperationIterator [protected] |