Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

ArRangeDeviceThreaded Class Reference

A range device which can run in its own thread. More...

#include <ArRangeDeviceThreaded.h>

Inheritance diagram for ArRangeDeviceThreaded:

ArRangeDevice ArSick List of all members.

Public Member Functions

 ArRangeDeviceThreaded (size_t currentBufferSize, size_t cumulativeBufferSize, const char *name, unsigned int maxRange)
 Constructor.
virtual bool getRunning (void)
 Get the running status of the thread.
virtual bool getRunningWithLock (void)
 Get the running status of the thread, locking around the variable.
virtual int lockDevice (void)
 Lock this device.
virtual void run (void)
 Run in this thread.
virtual void runAsync (void)
 Run in its own thread.
virtual void * runThread (void *arg)=0
 The functor you need to implement that will be the one executed by the thread.
virtual void stopRunning (void)
 Stop the thread.
virtual int tryLockDevice (void)
 Try to lock this device.
virtual int unlockDevice (void)
 Unlock this device.
virtual ~ArRangeDeviceThreaded ()
 Destructor.

Protected Attributes

ArRetFunctor1C< void *, ArRangeDeviceThreaded,
void * > 
myRunThreadCB
ArFunctorASyncTask myTask

Detailed Description

A range device which can run in its own thread.

This is a range device thats threaded, it doesn't do multipleInheritance from both ArASyncTask and ArRangeDevice any more since JAVA doesn't support this and the wrapper software can't deal with it. Its still functionally the same however.

Definition at line 41 of file ArRangeDeviceThreaded.h.


Member Function Documentation

virtual int ArRangeDeviceThreaded::lockDevice void   )  [inline, virtual]
 

Lock this device.

If you are also inheriting an ASyncTask you MUST override this to use the lock from the ArASyncTask

Reimplemented from ArRangeDevice.

Definition at line 64 of file ArRangeDeviceThreaded.h.

References ArThread::lock().

Referenced by ArSick::blockingConnect(), ArSick::disconnect(), ArSick::internalConnectSim(), ArSick::runOnce(), ArSick::runThread(), ArSick::sensorInterpCallback(), ArSick::simPacketHandler(), and ArSick::~ArSick().

virtual int ArRangeDeviceThreaded::tryLockDevice void   )  [inline, virtual]
 

Try to lock this device.

If you are also inheriting an ASyncTask you MUST override this to use the lock from the ArASyncTask

Reimplemented from ArRangeDevice.

Definition at line 65 of file ArRangeDeviceThreaded.h.

References ArThread::tryLock().

virtual int ArRangeDeviceThreaded::unlockDevice void   )  [inline, virtual]
 

Unlock this device.

If you are also inheriting an ASyncTask you MUST override this to use the lock from the ArASyncTask

Reimplemented from ArRangeDevice.

Definition at line 66 of file ArRangeDeviceThreaded.h.

References ArThread::unlock().

Referenced by ArSick::blockingConnect(), ArSick::disconnect(), ArSick::internalConnectSim(), ArSick::runOnce(), ArSick::runThread(), ArSick::sensorInterpCallback(), ArSick::simPacketHandler(), and ArSick::~ArSick().


The documentation for this class was generated from the following files:
Generated on Wed Oct 19 12:56:52 2005 for Aria by  doxygen 1.4.0