| Irrlicht 3D Engine |

Classes | Typedefs | Enumerations | Functions
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.
- typedef xmlChar< unsigned int > char32
    defines the utf-32 type.
- typedef IIrrXMLReader< char,
  IXMLBase > IrrXMLReader
    A UTF-8 or ASCII character xml parser.
- typedef IIrrXMLReader< char16,
  IXMLBase > IrrXMLReaderUTF16
    A UTF-16 xml parser.
- typedef IIrrXMLReader< char32,
  IXMLBase > IrrXMLReaderUTF32
    A UTF-32 xml parser.
- typedef IIrrXMLReader< wchar_t,
  IReferenceCounted > IXMLReader
    An xml reader for wide characters, derived from IReferenceCounted.
- typedef IIrrXMLReader< c8,
  IReferenceCounted > IXMLReaderUTF8
    An xml reader for ASCII or UTF-8 characters, derived from IReferenceCounted.
- typedef core::string< fschar_t > path
    Type used for all file system related strings.

## 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.
- IRRLICHT_API IrrXMLReader
  *IRRCALLCONV createIrrXMLReader (FILE *file)
    Creates an instance of an UFT-8 or ASCII character xml parser.
- IRRLICHT_API IrrXMLReader
  *IRRCALLCONV createIrrXMLReader (IFileReadCallBack *callback, bool deleteCallback=false)
    Creates an instance of an UFT-8 or ASCII character xml parser.
- IRRLICHT_API IrrXMLReaderUTF16
  *IRRCALLCONV createIrrXMLReaderUTF16 (const char *filename)
    Creates an instance of an UFT-16 xml parser.
- IRRLICHT_API IrrXMLReaderUTF16
  *IRRCALLCONV createIrrXMLReaderUTF16 (FILE *file)
    Creates an instance of an UFT-16 xml parser.
- IRRLICHT_API IrrXMLReaderUTF16
  *IRRCALLCONV createIrrXMLReaderUTF16 (IFileReadCallBack *callback, bool deleteCallback=false)
    Creates an instance of an UFT-16 xml parser.
- IRRLICHT_API IrrXMLReaderUTF32
  *IRRCALLCONV createIrrXMLReaderUTF32 (const char *filename)
    Creates an instance of an UFT-32 xml parser.
- IRRLICHT_API IrrXMLReaderUTF32
  *IRRCALLCONV createIrrXMLReaderUTF32 (FILE *file)
    Creates an instance of an UFT-32 xml parser.
- IRRLICHT_API IrrXMLReaderUTF32
  *IRRCALLCONV createIrrXMLReaderUTF32 (IFileReadCallBack *callback, bool deleteCallback=false)
    Creates an instance of an UFT-32 xml parser.
- IReadFile * createLimitReadFile (const io::path &fileName, IReadFile *alreadyOpenedFile, long pos, long areaSize)
    Internal function, please do not use.
- IReadFile * createMemoryReadFile (void *memory, long size, const io::path &fileName, bool deleteMemoryWhenDropped)
    Internal function, please do not use.
- IReadFile * createReadFile (const io::path &fileName)
    Internal function, please do not use.
- IWriteFile * createWriteFile (const io::path &fileName, bool append)
    Internal function, please do not use.

## Detailed Description

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

## Typedef Documentation

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.

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.

typedef IIrrXMLReader<char, IXMLBase> irr::io::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.

typedef IIrrXMLReader<char16, IXMLBase> irr::io::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.

typedef IIrrXMLReader<char32, IXMLBase> irr::io::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.

typedef IIrrXMLReader<wchar_t, IReferenceCounted> irr::io::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.

typedef IIrrXMLReader<c8, IReferenceCounted> irr::io::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.

typedef core::string<fschar_t> irr::io::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

enum irr::io::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.

enum irr::io::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.

enum irr::io::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.

enum irr::io::EFileSystemType

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

Enumerator:

  FILESYSTEM_NATIVE |
  FILESYSTEM_VIRTUAL |

Definition at line 18 of file IFileArchive.h.

enum irr::io::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.

enum irr::io::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

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:

  filename,: | Name 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.

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:

  file,: | Pointer 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.

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:

  callback,: | Callback 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.
  deleteCallback,: | if 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.

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:

  filename,: | Name 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.

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:

  file,: | Pointer 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.

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:

  callback,: | Callback 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.
  deleteCallback,: | if 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.

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:

  filename,: | Name 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.

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:

  file,: | Pointer 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.

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:

  callback,: | Callback 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.
  deleteCallback,: | if 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.

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

Internal function, please do not use.

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

Internal function, please do not use.

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

Internal function, please do not use.

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

Internal function, please do not use.