openscenegraph
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
osg::OperationQueue Class Reference
Inheritance diagram for osg::OperationQueue:
osg::Referenced

Public Types

typedef std::set
< OperationThread * > 
OperationThreads

Public Member Functions

 OperationQueue ()
osg::ref_ptr< OperationgetNextOperation (bool blockIfEmpty=false)
bool empty ()
unsigned int getNumOperationsInQueue ()
void add (Operation *operation)
void remove (Operation *operation)
void remove (const std::string &name)
void removeAllOperations ()
void runOperations (Object *callingObject=0)
void releaseAllOperations ()
void releaseOperationsBlock ()
const OperationThreadsgetOperationThreads () const
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referencedoperator= (const Referenced &)
virtual void setThreadSafeRefUnref (bool threadSafe)
bool getThreadSafeRefUnref () const
OpenThreads::MutexgetRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSetgetObserverSet () const
ObserverSetgetOrCreateObserverSet () const
void addObserver (Observer *observer) const
void removeObserver (Observer *observer) const

Protected Types

typedef std::list
< osg::ref_ptr< Operation > > 
Operations

Protected Member Functions

virtual ~OperationQueue ()
void addOperationThread (OperationThread *thread)
void removeOperationThread (OperationThread *thread)
- Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
void deleteUsingDeleteHandler () const

Protected Attributes

OpenThreads::Mutex _operationsMutex
osg::ref_ptr< osg::RefBlock_operationsBlock
Operations _operations
Operations::iterator _currentOperationIterator
OperationThreads _operationThreads
- Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
OpenThreads::Atomic _refCount

Friends

class OperationThread

Additional Inherited Members

- Static Public Member Functions inherited from osg::Referenced
static OpenThreads::MutexgetGlobalReferencedMutex ()
static void setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting)
static bool getThreadSafeReferenceCounting ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()

Member Typedef Documentation

typedef std::list< osg::ref_ptr<Operation> > osg::OperationQueue::Operations
protected

Constructor & Destructor Documentation

osg::OperationQueue::OperationQueue ( )
virtual osg::OperationQueue::~OperationQueue ( )
protectedvirtual

Member Function Documentation

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::addOperationThread ( OperationThread thread)
protected
bool osg::OperationQueue::empty ( )

Return true if the operation queue is empty.

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.

unsigned int osg::OperationQueue::getNumOperationsInQueue ( )

Return the num of pending operations that are sitting in the OperationQueue.

const OperationThreads& osg::OperationQueue::getOperationThreads ( ) const
inline

Get the set of OperationThreads that are sharing this OperationQueue.

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.

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::removeOperationThread ( OperationThread thread)
protected
void osg::OperationQueue::runOperations ( Object callingObject = 0)

Run the operations.

Friends And Related Function Documentation

friend class OperationThread
friend

Member Data Documentation

Operations::iterator osg::OperationQueue::_currentOperationIterator
protected
Operations osg::OperationQueue::_operations
protected
osg::ref_ptr<osg::RefBlock> osg::OperationQueue::_operationsBlock
protected
OpenThreads::Mutex osg::OperationQueue::_operationsMutex
protected
OperationThreads osg::OperationQueue::_operationThreads
protected

The documentation for this class was generated from the following file: