Assimp  v3.1.1 (June 2014)
Assimp::IOSystem Class Reference

CPP-API: Interface to the file system. More...

List of all members.

Public Member Functions

virtual void Close (IOStream *pFile)=0
 Closes the given file and releases all resources associated with it.
virtual bool ComparePaths (const char *one, const char *second) const
 Compares two paths and check whether the point to identical files.
bool ComparePaths (const std::string &one, const std::string &second) const
 For backward compatibility.
virtual const std::string & CurrentDirectory () const
 Returns the top directory from the stack.
AI_FORCE_INLINE bool Exists (const std::string &pFile) const
 For backward compatibility.
virtual bool Exists (const char *pFile) const =0
 Tests for the existence of a file at the given path.
virtual char getOsSeparator () const =0
 Returns the system specific directory separator.
 IOSystem ()
 Default constructor.
virtual IOStreamOpen (const char *pFile, const char *pMode="rb")=0
 Open a new file with a given path.
IOStreamOpen (const std::string &pFile, const std::string &pMode=std::string("rb"))
 For backward compatibility.
virtual bool PopDirectory ()
 Pops the top directory from the stack.
virtual bool PushDirectory (const std::string &path)
 Pushes a new directory onto the directory stack.
virtual size_t StackSize () const
 Returns the number of directories stored on the stack.
virtual ~IOSystem ()
 Virtual destructor.

Detailed Description

CPP-API: Interface to the file system.

Derive an own implementation from this interface to supply custom file handling to the importer library. If you implement this interface, you also want to supply a custom implementation for IOStream.

See also:
Importer::SetIOHandler()

Constructor & Destructor Documentation

Default constructor.

Create an instance of your derived class and assign it to an Assimp::Importer instance by calling Importer::SetIOHandler().

Virtual destructor.

It is safe to be called from within DLL Assimp, we're constructed on Assimp's heap.


Member Function Documentation

virtual void Assimp::IOSystem::Close ( IOStream pFile) [pure virtual]

Closes the given file and releases all resources associated with it.

Parameters:
pFileThe file instance previously created by Open().
virtual bool Assimp::IOSystem::ComparePaths ( const char *  one,
const char *  second 
) const [virtual]

Compares two paths and check whether the point to identical files.

The dummy implementation of this virtual member performs a case-insensitive comparison of the given strings. The default IO system implementation uses OS mechanisms to convert relative into absolute paths, so the result can be trusted.

Parameters:
oneFirst file
secondSecond file
Returns:
true if the paths point to the same file. The file needn't be existing, however.
bool Assimp::IOSystem::ComparePaths ( const std::string &  one,
const std::string &  second 
) const [inline]

For backward compatibility.

See also:
ComparePaths(const char*, const char*)
const std::string & Assimp::IOSystem::CurrentDirectory ( ) const [inline, virtual]

Returns the top directory from the stack.

Returns:
The directory on the top of the stack. Returns empty when no directory was pushed to the stack.
AI_FORCE_INLINE bool Assimp::IOSystem::Exists ( const std::string &  pFile) const

For backward compatibility.

See also:
Exists(const char*)
virtual bool Assimp::IOSystem::Exists ( const char *  pFile) const [pure virtual]

Tests for the existence of a file at the given path.

Parameters:
pFilePath to the file
Returns:
true if there is a file with this path, else false.
virtual char Assimp::IOSystem::getOsSeparator ( ) const [pure virtual]

Returns the system specific directory separator.

Returns:
System specific directory separator
virtual IOStream* Assimp::IOSystem::Open ( const char *  pFile,
const char *  pMode = "rb" 
) [pure virtual]

Open a new file with a given path.

When the access to the file is finished, call Close() to release all associated resources (or the virtual dtor of the IOStream).

Parameters:
pFilePath to the file
pModeDesired file I/O mode. Required are: "wb", "w", "wt", "rb", "r", "rt".
Returns:
New IOStream interface allowing the lib to access the underlying file.
Note:
When implementing this class to provide custom IO handling, you probably have to supply an own implementation of IOStream as well.
AI_FORCE_INLINE IOStream * Assimp::IOSystem::Open ( const std::string &  pFile,
const std::string &  pMode = std::string("rb") 
) [inline]

For backward compatibility.

See also:
Open(const char*, const char*)
bool Assimp::IOSystem::PopDirectory ( ) [inline, virtual]

Pops the top directory from the stack.

Returns:
True, when a directory was on the stack. False if no directory was on the stack.
bool Assimp::IOSystem::PushDirectory ( const std::string &  path) [inline, virtual]

Pushes a new directory onto the directory stack.

Parameters:
pathPath to push onto the stack.
Returns:
True, when push was successful, false if path is empty.
size_t Assimp::IOSystem::StackSize ( ) const [inline, virtual]

Returns the number of directories stored on the stack.

Returns:
The number of directories of the stack.

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