SoDelayQueueSensor Class Reference

| http://www.sim.no/ http://www.coin3d.org/

- Main Page
- Related Pages
- Modules
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
SoDelayQueueSensor Class Reference
Sensor Classes

The SoDelayQueueSensor class is the abstract base class for priority scheduled sensors.Delay queue sensors are invoked upon various events not related to time occurrences. See documentation of subclasses to see which types of events can be surveilled by the builtin sensor types. More...

`#include <Inventor/sensors/SoDelayQueueSensor.h>`

Inheritance diagram for SoDelayQueueSensor:

## Public Member Functions
| SoDelayQueueSensor (void)
| SoDelayQueueSensor (SoSensorCB *func, void *data)
virtual | ~SoDelayQueueSensor (void)
void | setPriority (uint32_t pri)
uint32_t | getPriority (void) const
virtual void | schedule (void)
virtual void | unschedule (void)
virtual SbBool | isScheduled (void) const
virtual SbBool | isIdleOnly (void) const
virtual void | trigger (void)
Public Member Functions inherited from SoSensor
| SoSensor (void)
| SoSensor (SoSensorCB *func, void *data)
virtual | ~SoSensor (void)
void | setFunction (SoSensorCB *callbackfunction)
SoSensorCBPtr | getFunction (void) const
void | setData (void *callbackdata)
void * | getData (void) const
void | setNextInQueue (SoSensor *next)
SoSensor * | getNextInQueue (void) const

## Static Public Member Functions
static uint32_t | getDefaultPriority (void)
Static Public Member Functions inherited from SoSensor
static void | initClass (void)

## Protected Attributes
SbBool | scheduled
Protected Attributes inherited from SoSensor
SoSensorCB * | func
void * | funcData

## Detailed Description

The SoDelayQueueSensor class is the abstract base class for priority scheduled sensors.

Delay queue sensors are invoked upon various events not related to time occurrences. See documentation of subclasses to see which types of events can be surveilled by the builtin sensor types.

The priority values can be used to queue events by their importance, so the sensors are triggered in the sequence you want.

The queue of delay sensors (i.e. instances of subclasses of SoDelayQueueSensor) will be processed as soon as either the run-time system is idle, or if it is continually busy they will be processed within a fixed amount of time.

This time interval is by default 1/12th of a second, but can be controlled with the SoSensorManager::setDelaySensorTimeout() interface.

## Constructor & Destructor Documentation

SoDelayQueueSensor::SoDelayQueueSensor | ( | void |  | ) |

Default constructor.

SoDelayQueueSensor::SoDelayQueueSensor | ( | SoSensorCB * | func,
|  | void * | data
| ) |  |

Constructor taking as arguments the sensor callback function and the userdata which will be passed the callback.

See also
  setFunction(), setData()

SoDelayQueueSensor::~SoDelayQueueSensor | ( | void |  | ) |
| virtual

Destructor.

## Member Function Documentation

void SoDelayQueueSensor::setPriority | ( | uint32_t | pri | ) |

Set this sensor's priority in the scheduling queue. When sensors are processed, high priority sensors will trigger before low priority sensors.

Please note that a low number means a high priority. A sensor with priority 5 will trigger before a sensor with priority 6.

Sensors with priority 0 have a special meaning in Coin/Inventor. They are called immediate sensors, and will trigger immediately after the current notification chain has finished. Priority 0 sensors should be used with care, since they might lead to bad performance if you do some processing in the sensor callback.

This setting does not affect SoDataSensor delete-callback invocations, which always are immediate.

See also
  getPriority(), getDefaultPriority()

uint32_t SoDelayQueueSensor::getPriority | ( | void |  | ) | const

Returns sensor scheduling priority.

See also
  setPriority(), getDefaultPriority()

uint32_t SoDelayQueueSensor::getDefaultPriority | ( | void |  | ) |
| static

Returns the default scheduling priority value. The default sensor priority is 100.

See also
  getPriority()

void SoDelayQueueSensor::schedule | ( | void |  | ) |
| virtual

Put the sensor in the global delay queue. This means it will be triggered either when the CPU is idle, or when the specified delay queue time-out is reached.

See also
  SoDB::setDelaySensorTimeout(), unschedule(), isScheduled()

Implements SoSensor.

void SoDelayQueueSensor::unschedule | ( | void |  | ) |
| virtual

Remove sensor from the delay queue, without triggering it first.

See also
  schedule(), isScheduled()

Implements SoSensor.

SbBool SoDelayQueueSensor::isScheduled | ( | void |  | ) | const
| virtual

Check if this sensor is scheduled for triggering.

See also
  schedule(), unschedule()

Implements SoSensor.

SbBool SoDelayQueueSensor::isIdleOnly | ( | void |  | ) | const
| virtual

Returns a flag indicating whether or not the sensor should only be triggered if the application is truly idle, and not when the delay queue is processed because of the delay queue timeout.

See also
  SoDB::setDelaySensorTimeout()

void SoDelayQueueSensor::trigger | ( | void |  | ) |
| virtual

Trigger the sensor's callback function.

Reimplemented from SoSensor.

Reimplemented in SoDataSensor, and SoFieldSensor.

## Member Data Documentation

SbBool SoDelayQueueSensor::scheduled
| protected

`TRUE` if the sensor is currently scheduled.

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

- SoDelayQueueSensor.h
- SoDelayQueueSensor.cpp

Copyright © 1998-2010 by Kongsberg Oil & Gas Technologies. All rights reserved.