MTimerMessage Class Reference
[OpenMaya - API module for common classes]

#include <MTimerMessage.h>
Inheritance diagram for MTimerMessage:
Inheritance graph
[legend]
Collaboration diagram for MTimerMessage:
Collaboration graph
[legend]

List of all members.


Detailed Description

Register callbacks that are based on a fixed time interval.

This class is used to register callbacks that are called at fixed time intervals.

To remove a callback use MMessage::removeCallback.

All callbacks that are registered by a plug-in must be removed by that plug-in when it is unloaded. Failure to do so will result in a fatal error.


Public Types

typedef void(*  sleepCallbackPtr )()
  Pointer to a sleep callback function.

Static Public Member Functions

static MCallbackId  addTimerCallback (float period, MMessage::MElapsedTimeFunction func, void *clientData=NULL, MStatus *ReturnStatus=NULL)
static MStatus  setSleepCallback (sleepCallbackPtr sleepFunc)
  This method is obsolete.
static
MTimerMessage::sleepCallbackPtr 
sleepCallback ()
  This method is obsolete.

Member Function Documentation

MCallbackId MTimerMessage::addTimerCallback ( float  period,
MMessage::MElapsedTimeFunction  func,
void *  clientData = NULL,
MStatus ReturnStatus = NULL  
) [static]

This method registers a callback which is called repeatedly with a specified period of time between calls. Each time the timer fires the callback will be placed on the idle queue for execution in the next idle cycle. If the timer fires again, before the previous invocation has completed execution, the new firing will be skipped.

If the execution time of the callback exceeds half of its period then the next timeout will be skipped to give Maya time to process other tasks.

The maximum resolution for this callback is about 1ms. The response is, however, not guaranteed because while multitasking, the OS may delay for an unspecified length of time before returning control to Maya.

The callback function will be passed any client data that was provided when the callback was registered.

Parameters:
[in]  period  the period at which the callback will be executed (Measured in seconds)
[in]  func  the callback function
  • elapsedTime The elapsed time since this function was last called
  • lastTime The execution time of this function the the last time it was called
  • clientData User defined data passed to the callback function
[in]  clientData  User defined data that will be passed to the callback function
[out]  ReturnStatus  status code
Returns:
Identifier used for removing the callback.
Status Codes:

MStatus MTimerMessage::setSleepCallback ( sleepCallbackPtr  sleepFunc  )  [static]

This method is obsolete.

The sleep callback is executed on each idle cycle in which there are are no other idle tasks currently awaiting execution, but one or more timer callbacks have been registered.

The original implementation of addTimerCallback() was such that Maya's idle queue would run continuously so long as there were timer callbacks registered. The purpose of the sleep callback was to put the idle queue to sleep for a while so as to give non-Maya processes a chance to execute.

addTimerCallback() has since been changed so that the idle queue does not run continously, so the sleep callback is no longer necessary. It is only provided now for backwards compatibility.

There is only one sleep callback. Setting the callback with this method will replace any existing sleep callback. The sleepCallback() method can be used to check for an existing callback.

Using this method will limit the response time of all timer callbacks to slightly more than the length of the sleep function. So if your sleep function sleeps for 20ms, any timer that is smaller than 20ms will be called at 20ms intervals.

If you use this method to set a sleep callback, remember to reset it when the callback is no longer needed, for example, when your plugin is unloaded.

Parameters:
[in]  sleepFunc  a function pointer to a function that will cause the current process to sleep
Returns:

MTimerMessage::sleepCallbackPtr MTimerMessage::sleepCallback (  )  [static]

This method is obsolete.

Returns the currently registered sleep callback function


Autodesk® Maya® 2011 © 1997-2010 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6