FBX C++ API Reference
FbxStream Class Referenceabstract

#include <fbxstream.h>

Class Description

Abstract class for implementing I/O operations through a stream of data.

For instance, it can be used to read data from a memory source, thus making it possible to import files from memory. However, for the time being, the FbxStream class is only supported with FBX files.

Examples:
FileStream/main.cxx.

Definition at line 26 of file fbxstream.h.

Public Types

enum  EState { eClosed, eOpen, eEmpty }
 Current stream state. More...
 

Public Member Functions

virtual EState GetState ()=0
 Query the current state of the stream. More...
 
virtual bool Open (void *pStreamData)=0
 Open the stream. More...
 
virtual bool Close ()=0
 Close the stream. More...
 
virtual bool Flush ()=0
 Empties the internal data of the stream. More...
 
virtual int Write (const void *, int)=0
 Writes a memory block. More...
 
virtual int Read (void *, int) const =0
 Read bytes from the stream and store them in the memory block. More...
 
virtual char * ReadString (char *pBuffer, int pMaxSize, bool pStopAtFirstWhiteSpace=false)
 Read a string from the stream. More...
 
virtual int GetReaderID () const =0
 If not specified by KFbxImporter::Initialize(), the importer will ask the stream to select an appropriate reader ID to associate with the stream. More...
 
virtual int GetWriterID () const =0
 If not specified by KFbxExporter::Initialize(), the exporter will ask the stream to select an appropriate writer ID to associate with the stream. More...
 
virtual void Seek (const FbxInt64 &pOffset, const FbxFile::ESeekPos &pSeekPos)=0
 Adjust the current stream position. More...
 
virtual long GetPosition () const =0
 Get the current stream position. More...
 
virtual void SetPosition (long pPosition)=0
 Set the current stream position. More...
 
virtual int GetError () const =0
 Return 0 if no errors occurred. More...
 
virtual void ClearError ()=0
 Clear current error condition by setting the current error value to 0. More...
 

Member Enumeration Documentation

◆ EState

enum EState

Current stream state.

Enumerator
eClosed 

The stream is closed.

eOpen 

The stream is open.

eEmpty 

The stream is empty.

Definition at line 30 of file fbxstream.h.

31  {
32  eClosed,
33  eOpen,
34  eEmpty
35  };
The stream is open.
Definition: fbxstream.h:33
The stream is closed.
Definition: fbxstream.h:32
The stream is empty.
Definition: fbxstream.h:34

Member Function Documentation

◆ GetState()

virtual EState GetState ( )
pure virtual

Query the current state of the stream.

Examples:
FileStream/main.cxx.

◆ Open()

virtual bool Open ( void *  pStreamData)
pure virtual

Open the stream.

Returns
True if successful.
Remarks
Each time the stream is open or closed, the stream position must be reset to zero.
Examples:
FileStream/main.cxx.

◆ Close()

virtual bool Close ( )
pure virtual

Close the stream.

Returns
True if successful.
Remarks
Each time the stream is open or closed, the stream position must be reset to zero.
Examples:
FileStream/main.cxx.

◆ Flush()

virtual bool Flush ( )
pure virtual

Empties the internal data of the stream.

Returns
True if successful.
Examples:
FileStream/main.cxx.

◆ Write()

virtual int Write ( const void *  ,
int   
)
pure virtual

Writes a memory block.

Parameters
pDataPointer to the memory block to write.
pSizeSize (in bytes) of the memory block to write.
Returns
The number of bytes written in the stream.
Examples:
FileStream/main.cxx.

◆ Read()

virtual int Read ( void *  ,
int   
) const
pure virtual

Read bytes from the stream and store them in the memory block.

Parameters
pDataPointer to the memory block where the read bytes are stored.
pSizeNumber of bytes read from the stream.
Returns
The actual number of bytes successfully read from the stream.
Examples:
FileStream/main.cxx.

◆ ReadString()

virtual char* ReadString ( char *  pBuffer,
int  pMaxSize,
bool  pStopAtFirstWhiteSpace = false 
)
virtual

Read a string from the stream.

The default implementation is written in terms of Read() but does not cope with DOS line endings. Subclasses may need to override this if DOS line endings are to be supported.

Parameters
pBufferPointer to the memory block where the read bytes are stored.
pMaxSizeMaximum number of bytes to be read from the stream.
pStopAtFirstWhiteSpaceStop reading when any whitespace is encountered. Otherwise read to end of line (like fgets()).
Returns
pBuffer, if successful, else NULL.
Remarks
The default implementation terminates the pBuffer with a null character and assumes there is enough room for it. For example, a call with pMaxSize = 1 will fill pBuffer with the null character only.

◆ GetReaderID()

virtual int GetReaderID ( ) const
pure virtual

If not specified by KFbxImporter::Initialize(), the importer will ask the stream to select an appropriate reader ID to associate with the stream.

FbxIOPluginRegistry can be used to locate id by extension or description. Return -1 to allow FBX to select an appropriate default.

Examples:
FileStream/main.cxx.

◆ GetWriterID()

virtual int GetWriterID ( ) const
pure virtual

If not specified by KFbxExporter::Initialize(), the exporter will ask the stream to select an appropriate writer ID to associate with the stream.

KFbxIOPluginRegistry can be used to locate id by extension or description. Return -1 to allow FBX to select an appropriate default.

Examples:
FileStream/main.cxx.

◆ Seek()

virtual void Seek ( const FbxInt64 pOffset,
const FbxFile::ESeekPos pSeekPos 
)
pure virtual

Adjust the current stream position.

Parameters
pSeekPosPre-defined position where offset is added (FbxFile::eBegin, FbxFile::eCurrent:, FbxFile::eEnd)
pOffsetNumber of bytes to offset from pSeekPos.
Examples:
FileStream/main.cxx.

◆ GetPosition()

virtual long GetPosition ( ) const
pure virtual

Get the current stream position.

Returns
Current number of bytes from the beginning of the stream.
Examples:
FileStream/main.cxx.

◆ SetPosition()

virtual void SetPosition ( long  pPosition)
pure virtual

Set the current stream position.

Parameters
pPositionNumber of bytes from the beginning of the stream to seek to.
Examples:
FileStream/main.cxx.

◆ GetError()

virtual int GetError ( ) const
pure virtual

Return 0 if no errors occurred.

Otherwise, return 1 to indicate an error. This method will be invoked whenever FBX needs to verify that the last operation succeeded.

Examples:
FileStream/main.cxx.

◆ ClearError()

virtual void ClearError ( )
pure virtual

Clear current error condition by setting the current error value to 0.

Examples:
FileStream/main.cxx.

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