Public Types | Public Member Functions | Static Public Member Functions

MPxCacheFormat Class Reference

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] fileName Name of the cache file to open
[in] mode Access 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] 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
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] time Time to write.
Returns:
MStatus readTime ( MTime time ) [virtual]

Read the current time from the cache.

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

Find a specific time in the cache.

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

Read the next time from the cache.

Parameters:
[out] foundTime the 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] array Array of values to be written.
Returns:
MStatus writeFloatArray ( const MFloatArray array ) [virtual]

Write a array of floats to the cache.

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

Write a array of int to the cache.

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

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

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

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

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

Write an integer to the cache.

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

Read an array of doubles from the cache.

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

Read an array of floats from the cache.

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

Read an array of ints from the cache.

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

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

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

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

Parameters:
[out] array Array of values read.
[in] size Number 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] name the channel to be written
Returns:
MStatus findChannelName ( const MString name ) [virtual]

Seek to a specific channel in the cache.

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

Find the next channel name.

Parameters:
[in] name the 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] 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
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] 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
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