3ds Max C++ API Reference
BaseTextReader Class Referenceabstract

This class is the base for all text file readers. More...

#include <maxtextfile.h>

+ Inheritance diagram for BaseTextReader:

Public Member Functions

virtual ~BaseTextReader ()
 
virtual unsigned int ReadCharUTF32 (bool peek=false) const =0
 Reads a single char and returns it's UTF32 representation. More...
 
virtual MaxString ReadChars (size_t nchars) const =0
 Reads characters from the file. More...
 
virtual MaxString ReadLine (size_t nchars=(size_t) -1, bool dontReturnEOL=false) const =0
 Reads a line from the file (or nchars, depending on which one comes first.) More...
 
virtual size_t Position () const =0
 Get the number of characters read so far. More...
 
virtual size_t LineNumber () const =0
 Get the current line number. More...
 
virtual Char ReadChar (bool peek=false) const =0
 Read a character from the file. More...
 
virtual size_t UnreadChar (const Char &c)=0
 Unread a character. More...
 
virtual size_t Seek (long offset, int origin)=0
 Seek inside the stream. More...
 
virtual bool IsFileOpen () const =0
 Returns true if file is open. More...
 
virtual bool IsEndOfFile () const =0
 Returns true if file at the end. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 

Detailed Description

This class is the base for all text file readers.

It declare a common interface to all implementation

Constructor & Destructor Documentation

◆ ~BaseTextReader()

virtual ~BaseTextReader ( )
virtual

Member Function Documentation

◆ ReadCharUTF32()

virtual unsigned int ReadCharUTF32 ( bool  peek = false) const
pure virtual

Reads a single char and returns it's UTF32 representation.

UTF-32 (or UCS-4) is a protocol to encode Unicode characters that uses exactly 32 bits per Unicode code point. All other Unicode transformation formats use variable-length encodings. The UTF-32 form of a character is a direct representation of its codepoint.

Parameters
peek- Read a char but does not move the internal pointer to next char.
Returns
UTF32 character read

Implemented in ReaderWriter, and Reader.

◆ ReadChars()

virtual MaxString ReadChars ( size_t  nchars) const
pure virtual

Reads characters from the file.

Parameters
ncharsStop reading after 'nchars' characters or when end of file reached.
Returns
Characters read.

Implemented in ReaderWriter, and Reader.

◆ ReadLine()

virtual MaxString ReadLine ( size_t  nchars = (size_t) -1,
bool  dontReturnEOL = false 
) const
pure virtual

Reads a line from the file (or nchars, depending on which one comes first.)

Parameters
ncharsStop reading after 'nchars' characters even if the EOL was not found.
dontReturnEOLBy default, this function will returns the line including it's end-of-line character(s) unless you set "dontReturnEOL" to true.
Returns
Line read.

Implemented in ReaderWriter, and Reader.

◆ Position()

virtual size_t Position ( ) const
pure virtual

Get the number of characters read so far.

Implemented in ReaderWriter, and Reader.

◆ LineNumber()

virtual size_t LineNumber ( ) const
pure virtual

Get the current line number.

Implemented in ReaderWriter, and Reader.

◆ ReadChar()

virtual Char ReadChar ( bool  peek = false) const
pure virtual

Read a character from the file.

Parameters
peekRead a char but does not move the internal pointer to next char.
Returns
Character read.

Implemented in ReaderWriter, and Reader.

◆ UnreadChar()

virtual size_t UnreadChar ( const Char c)
pure virtual

Unread a character.

Put back a character inside the buffer. The data will be re-read next time you call read. This is used internally when parsing max scripts.

Parameters
cChar to put back in the buffer
Returns
Number of character written.

Implemented in ReaderWriter, and Reader.

◆ Seek()

virtual size_t Seek ( long  offset,
int  origin 
)
pure virtual

Seek inside the stream.

Parameters
offsetThe seeks operations are done in number of characters (not bytes).
originThe direction to move. Origin can be one of the following
  • SEEK_CUR Current position of file pointer.
  • SEEK_END End of file.
  • SEEK_SET Beginning of file.
Returns
Returns the absolute position of the text file. (in chars)

Implemented in ReaderWriter, and Reader.

◆ IsFileOpen()

virtual bool IsFileOpen ( ) const
pure virtual

Returns true if file is open.

Implemented in ReaderWriter, and Reader.

◆ IsEndOfFile()

virtual bool IsEndOfFile ( ) const
pure virtual

Returns true if file at the end.

Implemented in ReaderWriter, and Reader.