Public Types | Public Member Functions | Static Public Member Functions

MPxCacheFormat Class Reference

This reference page is linked to from the following overview topics: Removal of MStatus return codes from .NET API.


Search for all occurrences

Detailed Description

CacheFormat definition.

The MPxCacheFormat class can be used to implement support for new cache file formats in Maya.

Examples:

XmlGeometryCache.cpp.

#include <MPxCacheFormat.h>

List of all members.

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.

Member Enumeration Documentation

Cache file access modes.

Enumerator:
kRead 

read only

kWrite 

write only

kReadWrite 

read and write (e.g.

append, edit, etc.)


Constructor & Destructor Documentation

The default class constructor.

Initialize the format.

~MPxCacheFormat ( ) [virtual]

Class destructor.

Automatically releases the associated format.


Member Function Documentation

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.

Parameters:
[in]fileNameName of the cache file to open
[in]modeAccess mode for the cache file
Returns:
MStatus isValid ( ) [virtual]

Confirm whether the current cache file is valid.

Returns:
MStatus rewind ( ) [virtual]

Rewind the current cache pointer to the start of the cache.

Returns:
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.

Returns:
The extension used by this format, with no leading period, e.g. "xcf" not ".xcf"
MStatus readHeader ( ) [virtual]

Read the header from the current cache file, and store any data that may be required.

Returns:
MStatus writeHeader ( const MString version,
MTime startTime,
MTime endTime 
) [virtual]

Write the header for the current cache.

Parameters:
[in]versionMaya supplied cache version
[in]startTimestartTime for this cache, in ticks. There are 6000 ticks per second
[in]endTimeendTime for this cache, in ticks. There are 6000 ticks per second
Returns:
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.

Returns:
void endReadChunk ( ) [virtual]

End the read process for this chunk.

Anything written by the endWriteChunk should be read and validated by this method.

Returns:
MStatus writeTime ( MTime time) [virtual]

Write the current time to the cache.

Parameters:
[in]timeTime to write.
Returns:
MStatus readTime ( MTime time) [virtual]

Read the current time from the cache.

Parameters:
[out]timeCurrent time from the cache.
Returns:
MStatus findTime ( MTime time,
MTime foundTime 
) [virtual]

Find a specific time in the cache.

Parameters:
[in]timeTime to look for.
[out]foundTimeNearest time found.
Returns:
MStatus readNextTime ( MTime foundTime) [virtual]

Read the next time from the cache.

Parameters:
[out]foundTimethe time found
Returns:
unsigned readArraySize ( ) [virtual]

Read the size of an array in the cache.

Returns:
MStatus writeDoubleArray ( const MDoubleArray array) [virtual]

Write an array of doubles to the cache.

Parameters:
[in]arrayArray of values to be written.
Returns:
MStatus writeFloatArray ( const MFloatArray array) [virtual]

Write a array of floats to the cache.

Parameters:
[in]arrayArray of values to be written.
Returns:
MStatus writeIntArray ( const MIntArray array) [virtual]

Write a array of int to the cache.

Parameters:
[in]arrayArray of values to be written.
Returns:
MStatus writeDoubleVectorArray ( const MVectorArray array) [virtual]

Write an array of double-precision vectors to the cache.

Parameters:
[in]arrayArray of values to be written.
Returns:
MStatus writeFloatVectorArray ( const MFloatVectorArray array) [virtual]

Write an array of single-precision vectors to the cache.

Parameters:
[in]arrayArray of values to be written.
Returns:
MStatus writeInt32 ( int  value) [virtual]

Write an integer to the cache.

Parameters:
[in]valuethe value to be written
Returns:
MStatus readDoubleArray ( MDoubleArray array,
unsigned  size 
) [virtual]

Read an array of doubles from the cache.

Parameters:
[out]arrayArray of values read.
[in]sizeNumber of elements expected.
Returns:
MStatus readFloatArray ( MFloatArray array,
unsigned  size 
) [virtual]

Read an array of floats from the cache.

Parameters:
[out]arrayArray of values read.
[in]sizeNumber of elements expected.
Returns:
MStatus readIntArray ( MIntArray array,
unsigned  size 
) [virtual]

Read an array of ints from the cache.

Parameters:
[out]arrayArray of values read.
[in]sizeNumber of elements expected.
Returns:
MStatus readDoubleVectorArray ( MVectorArray array,
unsigned  arraySize 
) [virtual]

Read an array of double-precision vectors from the cache.

Parameters:
[out]arrayArray of values read.
[in]arraySizeNumber of elements expected.
Returns:
MStatus readFloatVectorArray ( MFloatVectorArray array,
unsigned  size 
) [virtual]

Read an array of single-precision vectors from the cache.

Parameters:
[out]arrayArray of values read.
[in]sizeNumber of elements expected.
Returns:
int readInt32 ( ) [virtual]

Read an integer from the cache.

Returns:
The value read from the cache
MStatus writeChannelName ( const MString name) [virtual]

Write a channel to the cache.

Parameters:
[in]namethe channel to be written
Returns:
MStatus findChannelName ( const MString name) [virtual]

Seek to a specific channel in the cache.

Parameters:
[in]namethe channel to seek
Returns:
MStatus readChannelName ( MString name) [virtual]

Find the next channel name.

Parameters:
[in]namethe name that is found
Returns:
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().

Returns:
True if this format handles the description, else false.
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"

Parameters:
[out]descriptionthe description object to be set up
[in]descriptionFileLocationthe default location of the description file
[in]baseFileNamethe default file name (without extension) of the description file
Returns:
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.

Parameters:
[in]descriptionthe description object that describes the format
[in]descriptionFileLocationthe default location of the description file
[in]baseFileNamethe default file name (without extension) of the description file
Returns:
const char * className ( ) [static]

Returns the name of this class.

Returns:
The name of this class.

MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat
MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat MPxCacheFormat