CacheFormat definition.
The MPxCacheFormat class can be used to implement support for new cache file formats in Maya.
#include <MPxCacheFormat.h>
Public Types |
|
enum | FileAccessMode { kRead, kWrite, kReadWrite } |
Cache file access modes. More... |
|
Public Member Functions |
|
MPxCacheFormat () | |
The default class constructor. |
|
virtual | ~MPxCacheFormat () |
Class destructor. |
|
virtual MStatus | open (const MString &fileName, FileAccessMode mode) |
Attempt to open the specified cache format.
|
|
virtual void | close () |
Close the current current cache
file. |
|
virtual MStatus | isValid () |
Confirm whether the current cache file is
valid. |
|
virtual MStatus | rewind () |
Rewind the current cache pointer to the
start of the cache. |
|
virtual MString | extension () |
Returns the extension used by this format.
|
|
virtual MStatus | readHeader () |
Read the header from the current cache file,
and store any data that may be required. |
|
virtual MStatus | writeHeader (const MString &version, MTime &startTime, MTime &endTime) |
Write the header for the current cache.
|
|
virtual void | beginWriteChunk () |
Perform any actions required prior to
writing a chunk's information. |
|
virtual void | endWriteChunk () |
Perform any actions required after writing a
chunk's information. |
|
virtual MStatus | beginReadChunk () |
Start the read process for this chunk.
|
|
virtual void | endReadChunk () |
End the read process for this chunk.
|
|
virtual MStatus | writeTime (MTime &time) |
Write the current time to the cache.
|
|
virtual MStatus | readTime (MTime &time) |
Read the current time from the cache.
|
|
virtual MStatus | findTime (MTime &time, MTime &foundTime) |
Find a specific time in the cache. |
|
virtual MStatus | readNextTime (MTime &foundTime) |
Read the next time from the cache. |
|
virtual unsigned | readArraySize () |
Read the size of an array in the cache.
|
|
virtual MStatus | writeDoubleArray (const MDoubleArray &) |
Write an array of doubles to the cache.
|
|
virtual MStatus | writeFloatArray (const MFloatArray &) |
Write a array of floats to the cache.
|
|
virtual MStatus | writeIntArray (const MIntArray &) |
Write a array of int to the cache. |
|
virtual MStatus | writeDoubleVectorArray (const MVectorArray &array) |
Write an array of double-precision vectors
to the cache. |
|
virtual MStatus | writeFloatVectorArray (const MFloatVectorArray &array) |
Write an array of single-precision vectors
to the cache. |
|
virtual MStatus | writeInt32 (int) |
Write an integer to the cache. |
|
virtual MStatus | readDoubleArray (MDoubleArray &, unsigned size) |
Read an array of doubles from the cache.
|
|
virtual MStatus | readFloatArray (MFloatArray &, unsigned size) |
Read an array of floats from the cache.
|
|
virtual MStatus | readIntArray (MIntArray &, unsigned size) |
Read an array of ints from the cache.
|
|
virtual MStatus | readDoubleVectorArray (MVectorArray &, unsigned arraySize) |
Read an array of double-precision vectors
from the cache. |
|
virtual MStatus | readFloatVectorArray (MFloatVectorArray &array, unsigned arraySize) |
Read an array of single-precision vectors
from the cache. |
|
virtual int | readInt32 () |
Read an integer from the cache. |
|
virtual MStatus | writeChannelName (const MString &name) |
Write a channel to the cache. |
|
virtual MStatus | findChannelName (const MString &name) |
Seek to a specific channel in the cache.
|
|
virtual MStatus | readChannelName (MString &name) |
Find the next channel name. |
|
virtual bool | handlesDescription () |
Report whether this format handles the
format description itself (usually provided by the default xml
description file). |
|
virtual MStatus | readDescription (MCacheFormatDescription &description, const MString &descriptionFileLocation, const MString &baseFileName) |
Obtain the format description information.
|
|
virtual MStatus | writeDescription (const MCacheFormatDescription &description, const MString &descriptionFileLocation, const MString &baseFileName) |
Store the format description information.
|
|
Static Public Member Functions |
|
static const char * | className () |
Returns the name of this class. |
enum FileAccessMode |
Cache file access modes.
MPxCacheFormat | ( | ) |
The default class constructor.
Initialize the format.
~MPxCacheFormat | ( | ) | [virtual] |
Class destructor.
Automatically releases the associated format.
MStatus open | ( | const MString & | fileName, |
FileAccessMode | mode | ||
) | [virtual] |
Attempt to open the specified cache format.
It is important that this function only return success if the cache file is definitely supported by this implementation.
[in] | fileName | Name of the cache file to open |
[in] | mode | Access mode for the cache file |
MStatus isValid | ( | ) | [virtual] |
Confirm whether the current cache file is valid.
MStatus rewind | ( | ) | [virtual] |
Rewind the current cache pointer to the start of the cache.
MString extension | ( | ) | [virtual] |
Returns the extension used by this format.
This is not the same as the format's key, which is used by the plugin to identify itself.
MStatus readHeader | ( | ) | [virtual] |
Read the header from the current cache file, and store any data that may be required.
Write the header for the current cache.
[in] | version | Maya supplied cache version |
[in] | startTime | startTime for this cache, in ticks. There are 6000 ticks per second |
[in] | endTime | endTime for this cache, in ticks. There are 6000 ticks per second |
void beginWriteChunk | ( | ) | [virtual] |
Perform any actions required prior to writing a chunk's information.
A chunk contains the cache information for a specific time, and may contain multiple channels.
MStatus beginReadChunk | ( | ) | [virtual] |
Start the read process for this chunk.
Anything written by beginWriteChunk() should be read and validated by this method.
A chunk contains the cache information for a specific time, and may contain multiple channels.
void endReadChunk | ( | ) | [virtual] |
End the read process for this chunk.
Anything written by the endWriteChunk should be read and validated by this method.
Write the current time to the cache.
[in] | time | Time to write. |
Read the current time from the cache.
[out] | time | Current time from the cache. |
Find a specific time in the cache.
[in] | time | Time to look for. |
[out] | foundTime | Nearest time found. |
Read the next time from the cache.
[out] | foundTime | the time found |
unsigned readArraySize | ( | ) | [virtual] |
Read the size of an array in the cache.
MStatus writeDoubleArray | ( | const MDoubleArray & | array | ) | [virtual] |
Write an array of doubles to the cache.
[in] | array | Array of values to be written. |
MStatus writeFloatArray | ( | const MFloatArray & | array | ) | [virtual] |
Write a array of floats to the cache.
[in] | array | Array of values to be written. |
Write a array of int to the cache.
[in] | array | Array of values to be written. |
MStatus writeDoubleVectorArray | ( | const MVectorArray & | array | ) | [virtual] |
Write an array of double-precision vectors to the cache.
[in] | array | Array of values to be written. |
MStatus writeFloatVectorArray | ( | const MFloatVectorArray & | array | ) | [virtual] |
Write an array of single-precision vectors to the cache.
[in] | array | Array of values to be written. |
MStatus writeInt32 | ( | int | value | ) | [virtual] |
Write an integer to the cache.
[in] | value | the value to be written |
MStatus readDoubleArray | ( | MDoubleArray & | array, |
unsigned | size | ||
) | [virtual] |
Read an array of doubles from the cache.
[out] | array | Array of values read. |
[in] | size | Number of elements expected. |
MStatus readFloatArray | ( | MFloatArray & | array, |
unsigned | size | ||
) | [virtual] |
Read an array of floats from the cache.
[out] | array | Array of values read. |
[in] | size | Number of elements expected. |
Read an array of ints from the cache.
[out] | array | Array of values read. |
[in] | size | Number of elements expected. |
MStatus readDoubleVectorArray | ( | MVectorArray & | array, |
unsigned | arraySize | ||
) | [virtual] |
Read an array of double-precision vectors from the cache.
[out] | array | Array of values read. |
[in] | arraySize | Number of elements expected. |
MStatus readFloatVectorArray | ( | MFloatVectorArray & | array, |
unsigned | size | ||
) | [virtual] |
Read an array of single-precision vectors from the cache.
[out] | array | Array of values read. |
[in] | size | Number of elements expected. |
int readInt32 | ( | ) | [virtual] |
Write a channel to the cache.
[in] | name | the channel to be written |
Seek to a specific channel in the cache.
[in] | name | the channel to seek |
Find the next channel name.
[in] | name | the name that is found |
bool handlesDescription | ( | ) | [virtual] |
Report whether this format handles the format description itself (usually provided by the default xml description file).
If the format handles the description itself, it must provide implementations of readDescription() and writeDescription().
MStatus readDescription | ( | MCacheFormatDescription & | description, |
const MString & | descriptionFileLocation, | ||
const MString & | baseFileName | ||
) | [virtual] |
Obtain the format description information.
If the format returns true for handlesDescription(), then it must implement this method. The implementation should in turn call MCacheFormatDescription::setDistribution(), setTimePerFrame(), addDescriptionInfo() and addChannel() as appropriate using the supplied description object.
In the default implementation, the xml description file is stored at descriptionFileLocation + baseFileName + ".xml"
[out] | description | the description object to be set up |
[in] | descriptionFileLocation | the default location of the description file |
[in] | baseFileName | the default file name (without extension) of the description file |
MStatus writeDescription | ( | const MCacheFormatDescription & | description, |
const MString & | descriptionFileLocation, | ||
const MString & | baseFileName | ||
) | [virtual] |
Store the format description information.
If the format returns true for handlesDescription(), then it must implement this method. The implementation should in turn call MCacheFormatDescription::getDistribution(), getTimePerFrame(), getStartAndEndTimes(), getDescriptionInfo(), getNumChannels() and the various getChannelXXX() methods using the supplied description object as appropriate and store this information in such a way that it can be retrieved by readDescription().
In the default implementation, the xml description file is stored at descriptionFileLocation + baseFileName + ".xml"
Note that the plug-in is not required to store the description in a file using descriptionFileLocation and baseFileName. However, it must be able to retrieve the same description using just these strings to identify the source of the data.
[in] | description | the description object that describes the format |
[in] | descriptionFileLocation | the default location of the description file |
[in] | baseFileName | the default file name (without extension) of the description file |
const char * className | ( | ) | [static] |