Irrlicht 3D Engine
irr::io Namespace Reference

This namespace provides interfaces for input/output: Reading and writing files, accessing zip archives, xml files, ... More...

Classes

class  IArchiveLoader
 Class which is able to create an archive from a file. More...
 
class  IAttributeExchangingObject
 An object which is able to serialize and deserialize its attributes into an attributes object. More...
 
class  IAttributes
 Provides a generic interface for attributes and their values and the possiblity to serialize them. More...
 
class  IFileArchive
 The FileArchive manages archives and provides access to files inside them. More...
 
class  IFileList
 Provides a list of files and folders. More...
 
class  IFileReadCallBack
 Callback class for file read abstraction. More...
 
class  IFileSystem
 The FileSystem manages files and archives and provides access to them. More...
 
class  IIrrXMLReader
 Interface providing easy read access to a XML file. More...
 
class  IReadFile
 Interface providing read acess to a file. More...
 
class  IWriteFile
 Interface providing write access to a file. More...
 
class  IXMLBase
 Empty class to be used as parent class for IrrXMLReader. More...
 
class  IXMLWriter
 Interface providing methods for making it easier to write XML files. More...
 
struct  SAttributeReadWriteOptions
 struct holding data describing options More...
 
struct  SNamedPath
 Used in places where we identify objects by a filename, but don't actually work with the real filename. More...
 
struct  xmlChar
 

Typedefs

typedef xmlChar< unsigned short > char16
 defines the utf-16 type. More...
 
typedef xmlChar< unsigned int > char32
 defines the utf-32 type. More...
 
typedef IIrrXMLReader< char, IXMLBaseIrrXMLReader
 A UTF-8 or ASCII character xml parser. More...
 
typedef IIrrXMLReader< char16, IXMLBaseIrrXMLReaderUTF16
 A UTF-16 xml parser. More...
 
typedef IIrrXMLReader< char32, IXMLBaseIrrXMLReaderUTF32
 A UTF-32 xml parser. More...
 
typedef IIrrXMLReader< wchar_t, IReferenceCountedIXMLReader
 An xml reader for wide characters, derived from IReferenceCounted. More...
 
typedef IIrrXMLReader< c8, IReferenceCountedIXMLReaderUTF8
 An xml reader for ASCII or UTF-8 characters, derived from IReferenceCounted. More...
 
typedef core::string< fschar_tpath
 Type used for all file system related strings. More...
 

Enumerations

enum  E_ATTRIBUTE_READ_WRITE_FLAGS { EARWF_FOR_FILE = 0x00000001, EARWF_FOR_EDITOR = 0x00000002, EARWF_USE_RELATIVE_PATHS = 0x00000004 }
 Enumeration flags passed through SAttributeReadWriteOptions to the IAttributeExchangingObject object. More...
 
enum  E_ATTRIBUTE_TYPE {
  EAT_INT = 0, EAT_FLOAT, EAT_STRING, EAT_BOOL,
  EAT_ENUM, EAT_COLOR, EAT_COLORF, EAT_VECTOR3D,
  EAT_POSITION2D, EAT_VECTOR2D, EAT_RECT, EAT_MATRIX,
  EAT_QUATERNION, EAT_BBOX, EAT_PLANE, EAT_TRIANGLE3D,
  EAT_LINE2D, EAT_LINE3D, EAT_STRINGWARRAY, EAT_FLOATARRAY,
  EAT_INTARRAY, EAT_BINARY, EAT_TEXTURE, EAT_USER_POINTER,
  EAT_DIMENSION2D, EAT_COUNT, EAT_UNKNOWN
}
 Types of attributes available for IAttributes. More...
 
enum  E_FILE_ARCHIVE_TYPE {
  EFAT_ZIP = MAKE_IRR_ID('Z','I','P', 0), EFAT_GZIP = MAKE_IRR_ID('g','z','i','p'), EFAT_FOLDER = MAKE_IRR_ID('f','l','d','r'), EFAT_PAK = MAKE_IRR_ID('P','A','K', 0),
  EFAT_NPK = MAKE_IRR_ID('N','P','K', 0), EFAT_TAR = MAKE_IRR_ID('T','A','R', 0), EFAT_WAD = MAKE_IRR_ID('W','A','D', 0), EFAT_UNKNOWN = MAKE_IRR_ID('u','n','k','n')
}
 Contains the different types of archives. More...
 
enum  EFileSystemType { FILESYSTEM_NATIVE = 0, FILESYSTEM_VIRTUAL }
 FileSystemType: which Filesystem should be used for e.g. browsing. More...
 
enum  ETEXT_FORMAT {
  ETF_ASCII, ETF_UTF8, ETF_UTF16_BE, ETF_UTF16_LE,
  ETF_UTF32_BE, ETF_UTF32_LE
}
 Enumeration of all supported source text file formats. More...
 
enum  EXML_NODE {
  EXN_NONE, EXN_ELEMENT, EXN_ELEMENT_END, EXN_TEXT,
  EXN_COMMENT, EXN_CDATA, EXN_UNKNOWN
}
 Enumeration for all xml nodes which are parsed by IrrXMLReader. More...
 

Functions

IRRLICHT_API IrrXMLReader *IRRCALLCONV createIrrXMLReader (const char *filename)
 Creates an instance of an UFT-8 or ASCII character xml parser. More...
 
IRRLICHT_API IrrXMLReader *IRRCALLCONV createIrrXMLReader (FILE *file)
 Creates an instance of an UFT-8 or ASCII character xml parser. More...
 
IRRLICHT_API IrrXMLReader *IRRCALLCONV createIrrXMLReader (IFileReadCallBack *callback, bool deleteCallback=false)
 Creates an instance of an UFT-8 or ASCII character xml parser. More...
 
IRRLICHT_API IrrXMLReaderUTF16 *IRRCALLCONV createIrrXMLReaderUTF16 (const char *filename)
 Creates an instance of an UFT-16 xml parser. More...
 
IRRLICHT_API IrrXMLReaderUTF16 *IRRCALLCONV createIrrXMLReaderUTF16 (FILE *file)
 Creates an instance of an UFT-16 xml parser. More...
 
IRRLICHT_API IrrXMLReaderUTF16 *IRRCALLCONV createIrrXMLReaderUTF16 (IFileReadCallBack *callback, bool deleteCallback=false)
 Creates an instance of an UFT-16 xml parser. More...
 
IRRLICHT_API IrrXMLReaderUTF32 *IRRCALLCONV createIrrXMLReaderUTF32 (const char *filename)
 Creates an instance of an UFT-32 xml parser. More...
 
IRRLICHT_API IrrXMLReaderUTF32 *IRRCALLCONV createIrrXMLReaderUTF32 (FILE *file)
 Creates an instance of an UFT-32 xml parser. More...
 
IRRLICHT_API IrrXMLReaderUTF32 *IRRCALLCONV createIrrXMLReaderUTF32 (IFileReadCallBack *callback, bool deleteCallback=false)
 Creates an instance of an UFT-32 xml parser. More...
 
IReadFilecreateLimitReadFile (const io::path &fileName, IReadFile *alreadyOpenedFile, long pos, long areaSize)
 Internal function, please do not use. More...
 
IReadFilecreateMemoryReadFile (void *memory, long size, const io::path &fileName, bool deleteMemoryWhenDropped)
 Internal function, please do not use. More...
 
IReadFilecreateReadFile (const io::path &fileName)
 Internal function, please do not use. More...
 
IWriteFilecreateWriteFile (const io::path &fileName, bool append)
 Internal function, please do not use. More...
 

Detailed Description

This namespace provides interfaces for input/output: Reading and writing files, accessing zip archives, xml files, ...

Typedef Documentation

§ char16

typedef xmlChar<unsigned short> irr::io::char16

defines the utf-16 type.

Not using wchar_t for this because wchar_t has 16 bit on windows and 32 bit on other operating systems.

Definition at line 397 of file irrXML.h.

§ char32

typedef xmlChar<unsigned int> irr::io::char32

defines the utf-32 type.

Not using wchar_t for this because wchar_t has 16 bit on windows and 32 bit on other operating systems.

Definition at line 402 of file irrXML.h.

§ IrrXMLReader

A UTF-8 or ASCII character xml parser.

This means that all character data will be returned in 8 bit ASCII or UTF-8 by this parser. The file to read can be in any format, it will be converted to UTF-8 if it is not in this format. Create an instance of this with createIrrXMLReader(); See IIrrXMLReader for description on how to use it.

Definition at line 410 of file irrXML.h.

§ IrrXMLReaderUTF16

A UTF-16 xml parser.

This means that all character data will be returned in UTF-16 by this parser. The file to read can be in any format, it will be converted to UTF-16 if it is not in this format. Create an instance of this with createIrrXMLReaderUTF16(); See IIrrXMLReader for description on how to use it.

Definition at line 418 of file irrXML.h.

§ IrrXMLReaderUTF32

A UTF-32 xml parser.

This means that all character data will be returned in UTF-32 by this parser. The file to read can be in any format, it will be converted to UTF-32 if it is not in this format. Create an instance of this with createIrrXMLReaderUTF32(); See IIrrXMLReader for description on how to use it.

Definition at line 426 of file irrXML.h.

§ IXMLReader

An xml reader for wide characters, derived from IReferenceCounted.

This XML Parser can read any type of text files from any source Irrlicht can read. Just call IFileSystem::createXMLReader(). For more informations on how to use the parser, see IIrrXMLReader

Definition at line 19 of file IXMLReader.h.

§ IXMLReaderUTF8

An xml reader for ASCII or UTF-8 characters, derived from IReferenceCounted.

This XML Parser can read any type of text files from any source Irrlicht can read. Just call IFileSystem::createXMLReaderUTF8(). For more informations on how to use the parser, see IIrrXMLReader

Definition at line 25 of file IXMLReader.h.

§ path

Type used for all file system related strings.

This type will transparently handle different file system encodings.

Definition at line 17 of file path.h.

Enumeration Type Documentation

§ E_ATTRIBUTE_READ_WRITE_FLAGS

Enumeration flags passed through SAttributeReadWriteOptions to the IAttributeExchangingObject object.

Enumerator
EARWF_FOR_FILE 

Serialization/Deserializion is done for an xml file.

EARWF_FOR_EDITOR 

Serialization/Deserializion is done for an editor property box.

EARWF_USE_RELATIVE_PATHS 

When writing filenames, relative paths should be used.

Definition at line 20 of file IAttributeExchangingObject.h.

§ E_ATTRIBUTE_TYPE

Types of attributes available for IAttributes.

Enumerator
EAT_INT 
EAT_FLOAT 
EAT_STRING 
EAT_BOOL 
EAT_ENUM 
EAT_COLOR 
EAT_COLORF 
EAT_VECTOR3D 
EAT_POSITION2D 
EAT_VECTOR2D 
EAT_RECT 
EAT_MATRIX 
EAT_QUATERNION 
EAT_BBOX 
EAT_PLANE 
EAT_TRIANGLE3D 
EAT_LINE2D 
EAT_LINE3D 
EAT_STRINGWARRAY 
EAT_FLOATARRAY 
EAT_INTARRAY 
EAT_BINARY 
EAT_TEXTURE 
EAT_USER_POINTER 
EAT_DIMENSION2D 
EAT_COUNT 
EAT_UNKNOWN 

Definition at line 14 of file EAttributes.h.

§ E_FILE_ARCHIVE_TYPE

Contains the different types of archives.

Enumerator
EFAT_ZIP 

A PKZIP archive.

EFAT_GZIP 

A gzip archive.

EFAT_FOLDER 

A virtual directory.

EFAT_PAK 

An ID Software PAK archive.

EFAT_NPK 

A Nebula Device archive.

EFAT_TAR 

A Tape ARchive.

EFAT_WAD 

A wad Archive, Quake2, Halflife.

EFAT_UNKNOWN 

The type of this archive is unknown.

Definition at line 25 of file IFileArchive.h.

§ EFileSystemType

FileSystemType: which Filesystem should be used for e.g. browsing.

Enumerator
FILESYSTEM_NATIVE 
FILESYSTEM_VIRTUAL 

Definition at line 18 of file IFileArchive.h.

§ ETEXT_FORMAT

Enumeration of all supported source text file formats.

Enumerator
ETF_ASCII 

ASCII, file without byte order mark, or not a text file.

ETF_UTF8 

UTF-8 format.

ETF_UTF16_BE 

UTF-16 format, big endian.

ETF_UTF16_LE 

UTF-16 format, little endian.

ETF_UTF32_BE 

UTF-32 format, big endian.

ETF_UTF32_LE 

UTF-32 format, little endian.

Definition at line 158 of file irrXML.h.

§ EXML_NODE

Enumeration for all xml nodes which are parsed by IrrXMLReader.

Enumerator
EXN_NONE 

No xml node. This is usually the node if you did not read anything yet.

EXN_ELEMENT 

An xml element such as <foo>.

EXN_ELEMENT_END 

End of an xml element such as </foo>.

EXN_TEXT 

Text within an xml element: <foo> this is the text. </foo> Also text between 2 xml elements: </foo> this is the text. <foo>

EXN_COMMENT 

An xml comment like <!– I am a comment –> or a DTD definition.

EXN_CDATA 

An xml cdata section like <![CDATA[ this is some CDATA ]]>.

EXN_UNKNOWN 

Unknown element.

Definition at line 181 of file irrXML.h.

Function Documentation

§ createIrrXMLReader() [1/3]

IRRLICHT_API IrrXMLReader* IRRCALLCONV irr::io::createIrrXMLReader ( const char *  filename)

Creates an instance of an UFT-8 or ASCII character xml parser.

This means that all character data will be returned in 8 bit ASCII or UTF-8. The file to read can be in any format, it will be converted to UTF-8 if it is not in this format. If you are using the Irrlicht Engine, it is better not to use this function but IFileSystem::createXMLReaderUTF8() instead.

Parameters
filenameName of file to be opened.
Returns
Returns a pointer to the created xml parser. This pointer should be deleted using 'delete' after no longer needed. Returns 0 if an error occured and the file could not be opened.

§ createIrrXMLReader() [2/3]

IRRLICHT_API IrrXMLReader* IRRCALLCONV irr::io::createIrrXMLReader ( FILE *  file)

Creates an instance of an UFT-8 or ASCII character xml parser.

This means that all character data will be returned in 8 bit ASCII or UTF-8. The file to read can be in any format, it will be converted to UTF-8 if it is not in this format. If you are using the Irrlicht Engine, it is better not to use this function but IFileSystem::createXMLReaderUTF8() instead.

Parameters
filePointer to opened file, must have been opened in binary mode, e.g. using fopen("foo.bar", "wb"); The file will not be closed after it has been read.
Returns
Returns a pointer to the created xml parser. This pointer should be deleted using 'delete' after no longer needed. Returns 0 if an error occured and the file could not be opened.

§ createIrrXMLReader() [3/3]

IRRLICHT_API IrrXMLReader* IRRCALLCONV irr::io::createIrrXMLReader ( IFileReadCallBack callback,
bool  deleteCallback = false 
)

Creates an instance of an UFT-8 or ASCII character xml parser.

This means that all character data will be returned in 8 bit ASCII or UTF-8. The file to read can be in any format, it will be converted to UTF-8 if it is not in this format. If you are using the Irrlicht Engine, it is better not to use this function but IFileSystem::createXMLReaderUTF8() instead.

Parameters
callbackCallback for file read abstraction. Implement your own callback to make the xml parser read in other things than just files. See IFileReadCallBack for more information about this.
deleteCallbackif true, the callback will be deleted after the file has been read. Otherwise the caller si responsible for cleaning it up.
Returns
Returns a pointer to the created xml parser. This pointer should be deleted using 'delete' after no longer needed. Returns 0 if an error occured and the file could not be opened.

§ createIrrXMLReaderUTF16() [1/3]

IRRLICHT_API IrrXMLReaderUTF16* IRRCALLCONV irr::io::createIrrXMLReaderUTF16 ( const char *  filename)

Creates an instance of an UFT-16 xml parser.

This means that all character data will be returned in UTF-16. The file to read can be in any format, it will be converted to UTF-16 if it is not in this format. If you are using the Irrlicht Engine, it is better not to use this function but IFileSystem::createXMLReader() instead.

Parameters
filenameName of file to be opened.
Returns
Returns a pointer to the created xml parser. This pointer should be deleted using 'delete' after no longer needed. Returns 0 if an error occured and the file could not be opened.

§ createIrrXMLReaderUTF16() [2/3]

IRRLICHT_API IrrXMLReaderUTF16* IRRCALLCONV irr::io::createIrrXMLReaderUTF16 ( FILE *  file)

Creates an instance of an UFT-16 xml parser.

This means that all character data will be returned in UTF-16. The file to read can be in any format, it will be converted to UTF-16 if it is not in this format. If you are using the Irrlicht Engine, it is better not to use this function but IFileSystem::createXMLReader() instead.

Parameters
filePointer to opened file, must have been opened in binary mode, e.g. using fopen("foo.bar", "wb"); The file will not be closed after it has been read.
Returns
Returns a pointer to the created xml parser. This pointer should be deleted using 'delete' after no longer needed. Returns 0 if an error occured and the file could not be opened.

§ createIrrXMLReaderUTF16() [3/3]

IRRLICHT_API IrrXMLReaderUTF16* IRRCALLCONV irr::io::createIrrXMLReaderUTF16 ( IFileReadCallBack callback,
bool  deleteCallback = false 
)

Creates an instance of an UFT-16 xml parser.

This means that all character data will be returned in UTF-16. The file to read can be in any format, it will be converted to UTF-16 if it is not in this format. If you are using the Irrlicht Engine, it is better not to use this function but IFileSystem::createXMLReader() instead.

Parameters
callbackCallback for file read abstraction. Implement your own callback to make the xml parser read in other things than just files. See IFileReadCallBack for more information about this.
deleteCallbackif true, the callback will be deleted after the file has been read. Otherwise the caller si responsible for cleaning it up.
Returns
Returns a pointer to the created xml parser. This pointer should be deleted using 'delete' after no longer needed. Returns 0 if an error occured and the file could not be opened.

§ createIrrXMLReaderUTF32() [1/3]

IRRLICHT_API IrrXMLReaderUTF32* IRRCALLCONV irr::io::createIrrXMLReaderUTF32 ( const char *  filename)

Creates an instance of an UFT-32 xml parser.

This means that all character data will be returned in UTF-32. The file to read can be in any format, it will be converted to UTF-32 if it is not in this format. If you are using the Irrlicht Engine, it is better not to use this function but IFileSystem::createXMLReader() instead.

Parameters
filenameName of file to be opened.
Returns
Returns a pointer to the created xml parser. This pointer should be deleted using 'delete' after no longer needed. Returns 0 if an error occured and the file could not be opened.

§ createIrrXMLReaderUTF32() [2/3]

IRRLICHT_API IrrXMLReaderUTF32* IRRCALLCONV irr::io::createIrrXMLReaderUTF32 ( FILE *  file)

Creates an instance of an UFT-32 xml parser.

This means that all character data will be returned in UTF-32. The file to read can be in any format, it will be converted to UTF-32 if it is not in this format. if you are using the Irrlicht Engine, it is better not to use this function but IFileSystem::createXMLReader() instead.

Parameters
filePointer to opened file, must have been opened in binary mode, e.g. using fopen("foo.bar", "wb"); The file will not be closed after it has been read.
Returns
Returns a pointer to the created xml parser. This pointer should be deleted using 'delete' after no longer needed. Returns 0 if an error occured and the file could not be opened.

§ createIrrXMLReaderUTF32() [3/3]

IRRLICHT_API IrrXMLReaderUTF32* IRRCALLCONV irr::io::createIrrXMLReaderUTF32 ( IFileReadCallBack callback,
bool  deleteCallback = false 
)

Creates an instance of an UFT-32 xml parser.

This means that all character data will be returned in UTF-32. The file to read can be in any format, it will be converted to UTF-32 if it is not in this format. If you are using the Irrlicht Engine, it is better not to use this function but IFileSystem::createXMLReader() instead.

Parameters
callbackCallback for file read abstraction. Implement your own callback to make the xml parser read in other things than just files. See IFileReadCallBack for more information about this.
deleteCallbackif true, the callback will be deleted after the file has been read. Otherwise the caller si responsible for cleaning it up.
Returns
Returns a pointer to the created xml parser. This pointer should be deleted using 'delete' after no longer needed. Returns 0 if an error occured and the file could not be opened.

§ createLimitReadFile()

IReadFile* irr::io::createLimitReadFile ( const io::path fileName,
IReadFile alreadyOpenedFile,
long  pos,
long  areaSize 
)

Internal function, please do not use.

§ createMemoryReadFile()

IReadFile* irr::io::createMemoryReadFile ( void *  memory,
long  size,
const io::path fileName,
bool  deleteMemoryWhenDropped 
)

Internal function, please do not use.

§ createReadFile()

IReadFile* irr::io::createReadFile ( const io::path fileName)

Internal function, please do not use.

§ createWriteFile()

IWriteFile* irr::io::createWriteFile ( const io::path fileName,
bool  append 
)

Internal function, please do not use.