3ds Max C++ API Reference
Loading...
Searching...
No Matches
ReadonlyTextFileStream Class Reference

ReadonlyTextFileStream is only used for opening text file in read-only mode. More...

#include <readonlytextfilestream.h>

+ Inheritance diagram for ReadonlyTextFileStream:

Public Member Functions

ScripterExport ReadonlyTextFileStream ()
 The default constructor.
 
 ~ReadonlyTextFileStream ()
 The default destructor.
 
ScripterExport ReadonlyTextFileStream * open (const MCHAR *ifile_name, unsigned int encoding=-1)
 Open a new text file.
 
MaxSDK::Util::Char get_char () override
 
void unget_char (const MaxSDK::Util::Char &c) override
 
MaxSDK::Util::Char peek_char () override
 
int at_eos () override
 
unsigned int pos () override
 
void seek (int pos) override
 
void rewind () override
 
void flush_to_eol () override
 
MaxSDK::Util::Char putch (const MaxSDK::Util::Char &c) override
 
const MCHAR * puts (const MCHAR *str) override
 
int printf (const MCHAR *format,...) override
 
void collect () override
 
void close () override
 
void gc_trace () override
 
void log_to (CharStream *log) override
 
void close_log () override
 
CharStream * get_log () override
 
- Public Member Functions inherited from CharStream
ScripterExport CharStream ()
 
virtual ~CharStream ()
 
 classof_methods (CharStream, Value)
 
BOOL _is_charstream () override
 
void gc_trace () override
 
virtual MaxSDK::Util::Char get_char ()=0
 
virtual void unget_char (const MaxSDK::Util::Char &c)=0
 
virtual MaxSDK::Util::Char peek_char ()=0
 
virtual int at_eos ()=0
 
virtual void rewind ()=0
 
virtual unsigned int pos ()
 
virtual unsigned int line ()
 
virtual void seek (int pos)
 
virtual void flush_to_eol ()=0
 
virtual void flush_to_eobuf ()
 
virtual void flush_whitespace ()
 
virtual MaxSDK::Util::Char putch (const MaxSDK::Util::Char &c)
 
virtual const MCHAR * puts (const MCHAR *str)
 
void puts (const MSTR &str)
 
virtual int printf (const MCHAR *format,...)
 
virtual void close ()
 
virtual void flush ()
 
virtual void log_to (CharStream *log)
 
virtual void close_log ()
 
virtual Listener * get_listener ()
 
virtual CharStream * get_log ()
 
virtual Value * get_file_name ()
 
virtual void set_file_name (const MCHAR *fileName)
 
virtual CharStream * get_resource_value_stream (Value *resourceID)
 
- Public Member Functions inherited from Value
virtual ScripterExport BOOL is_kind_of (ValueMetaClass *c)
 
virtual ScripterExport ValueMetaClass * local_base_class ()
 
virtual Value * eval ()
 
virtual Value * eval_no_wrapper ()
 
virtual ScripterExport Value * apply (Value **arglist, int count, CallContext *cc=nullptr)
 
virtual ScripterExport Value * apply_no_alloc_frame (Value **arglist, int count, CallContext *cc=nullptr)
 
virtual void export_to_scripter ()
 
virtual Value * map (node_map &m)
 
virtual Value * map_path (PathName *path, node_map &m)
 
virtual Value * find_first (BOOL(*test_fn)(INode *node, int level, const void *arg), const void *test_arg)
 
virtual Value * get_path (PathName *path)
 
virtual ScripterExport void sprin1 (CharStream *stream)
 
virtual ScripterExport void sprint (CharStream *stream)
 
virtual void prin1 ()
 
virtual void print ()
 
virtual Class_ID get_max_class_id ()
 
virtual Value * delete_vf (Value **arglist, int arg_count)
 
virtual Value * clearSelection_vf (Value **arglist, int arg_count)
 
virtual float to_float ()
 
virtual double to_double ()
 
virtual const MCHAR * to_string ()
 
virtual MSTR to_mstr ()
 
virtual MSTR to_filename ()
 
virtual int to_int ()
 
virtual INT64 to_int64 ()
 
virtual INT_PTR to_intptr ()
 
virtual BOOL to_bool ()
 
virtual BitArray & to_bitarray ()
 
virtual Point4 to_point4 ()
 
virtual Point3 to_point3 ()
 
virtual Point2 to_point2 ()
 
virtual AColor to_acolor ()
 
virtual COLORREF to_colorref ()
 
virtual INode * to_node ()
 
virtual Ray to_ray ()
 
virtual Interval to_interval ()
 
virtual Quat to_quat ()
 
virtual AngAxis to_angaxis ()
 
virtual Matrix3 & to_matrix3 ()
 
virtual Box3 to_box3 ()
 
virtual float * to_eulerangles ()
 
virtual Mtl * to_mtl ()
 
virtual Texmap * to_texmap ()
 
virtual MtlBase * to_mtlbase ()
 
virtual Modifier * to_modifier ()
 
virtual TimeValue to_timevalue ()
 
virtual Control * to_controller ()
 
virtual Atmospheric * to_atmospheric ()
 
virtual Effect * to_effect ()
 
virtual IMultiPassCameraEffect * to_mpassCamEffect ()
 
virtual ShadowType * to_shadowtype ()
 
virtual FilterKernel * to_filter ()
 
virtual INode * to_rootnode ()
 
virtual ITrackViewNode * to_trackviewnode ()
 
virtual NURBSIndependentPoint * to_nurbsindependentpoint ()
 
virtual NURBSPoint * to_nurbspoint ()
 
virtual NURBSObject * to_nurbsobject ()
 
virtual NURBSControlVertex * to_nurbscontrolvertex ()
 
virtual NURBSCurve * to_nurbscurve ()
 
virtual NURBSCVCurve * to_nurbscvcurve ()
 
virtual NURBSSurface * to_nurbssurface ()
 
virtual NURBSTexturePoint * to_nurbstexturepoint ()
 
virtual NURBSSet * to_nurbsset ()
 
virtual ReferenceTarget * to_reftarg ()
 
virtual Mesh * to_mesh ()
 
virtual BezierShape * to_beziershape ()
 
virtual Thunk * to_thunk ()
 
virtual void to_fpvalue (FPValue &v)
 
virtual Renderer * to_renderer ()
 
virtual Box2 & to_box2 ()
 
virtual NURBSTextureSurface * to_nurbstexturesurface ()
 
virtual NURBSDisplay * to_nurbsdisplay ()
 
virtual TessApprox * to_tessapprox ()
 
virtual Value * widen_to (Value *arg, Value **arg_list)
 
virtual BOOL comparable (Value *arg)
 
virtual BOOL special_case_compare (Value *arg, bool &specialCaseCompareResult)
 
virtual ScripterExport bool ValuesEqual (Value *other, bool strictCompare)
 
virtual ScripterExport Value * deep_copy (HashTable *remapper)
 
virtual BOOL is_const ()
 
virtual ScripterExport Value * get_property (Value **arg_list, int count)
 
virtual ScripterExport Value * set_property (Value **arg_list, int count)
 
ScripterExport Value * _get_property (Value *prop)
 
virtual ScripterExport Value * _set_property (Value *prop, Value *val)
 
virtual Value * get_container_property (Value *prop, Value *cur_prop)
 
virtual Value * set_container_property (Value *prop, Value *val, Value *cur_prop)
 
virtual BOOL _is_collection ()
 
virtual BOOL _is_charstream ()
 
virtual BOOL _is_rolloutcontrol ()
 
virtual BOOL _is_rolloutthunk ()
 
virtual BOOL _is_function ()
 
virtual BOOL _is_selection ()
 
virtual BOOL _is_thunk ()
 
virtual BOOL _is_indirect_thunk ()
 
virtual SelectionIterator * selection_iterator ()
 
virtual ScripterExport IOResult Save (ISave *isave)
 
virtual void drop_MAX_refs ()
 
virtual BaseInterface * GetInterface (Interface_ID id)
 
ScripterExport Value * make_heap_permanent ()
 
ScripterExport Value * make_heap_static ()
 
ScripterExport Value * get_heap_ptr ()
 
ScripterExport Value * get_stack_heap_ptr ()
 
ScripterExport Value * migrate_to_heap ()
 
ScripterExport Value * get_live_ptr ()
 
virtual BOOL object_supports_case_sensitive_names ()
 
ScripterExport Value * _get_property (Value *prop, Value *prop_name_as_parsed)
 
ScripterExport Value * _set_property (Value *prop, Value *val, Value *prop_name_as_parsed)
 
virtual ScripterExport Value * get_case_sensitive_property (Value **arg_list, int count, const TCHAR *case_sensitive_name)
 
virtual ScripterExport Value * set_case_sensitive_property (Value **arg_list, int count, const TCHAR *case_sensitive_name)
 
ScripterExport Value * invoke_getter_case_sensitive_property (Value *target, getter_vf getter, Value **arg_list, int count, const TCHAR *case_sensitive_name, const TCHAR *nested_prop_case_sensitive_name)
 
ScripterExport Value * invoke_setter_case_sensitive_property (Value *target, setter_vf setter, Value **arg_list, int count, const TCHAR *case_sensitive_name, const TCHAR *nested_prop_case_sensitive_name)
 
- Public Member Functions inherited from Collectable
ScripterExport Collectable ()
 
virtual ScripterExport ~Collectable ()
 
ScripterExport void * operator new (size_t sz, char flag)
 
ScripterExport void * operator new (size_t sz)
 
ScripterExport void operator delete (void *val)
 
ScripterExport void operator delete (void *val, char flag)
 
virtual void collect ()=0
 
virtual ScripterExport void gc_trace ()
 
ScripterExport bool derives_from_Animatable ()
 
virtual BOOL derives_from_MAXWrapper ()
 
ScripterExport void make_collectable ()
 
void make_permanent ()
 
void make_static ()
 
int is_marked ()
 
int is_not_marked ()
 
int is_garbage ()
 
int is_permanent ()
 
void mark_in_use ()
 
void unmark_in_use ()
 
int has_heap_copy ()
 
int is_in_heap ()
 
int is_on_stack ()
 

Protected Attributes

int mUngetcharCount
 
MaxSDK::Util::Char mUngetcharBuf [8]
 
MaxSDK::Util::Char * mFileBuf
 
size_t mCharCount
 
size_t mCharPos
 
CharStream * mLog
 
- Protected Attributes inherited from CharStream
unsigned int mlineNumber
 
Value * file_name
 
HashTable * resourceMap
 
StringStream * resourceValueStream
 

Additional Inherited Members

- Static Public Member Functions inherited from Collectable
static ScripterExport void for_all_values (void(*map_fn)(Value *val), ValueMapper *mapper=nullptr, ValueMetaClass *c=nullptr)
 
static void mark ()
 
static void sweep ()
 
static void setup (size_t)
 
static ScripterExport void gc ()
 
static void coalesce_free_list ()
 
static void close_down ()
 
static void drop_maxwrapper_refs ()
 
static ScripterExport void push_alloc_stack_frame ()
 
static ScripterExport void pop_alloc_stack_frame ()
 
static ScripterExport ULONGLONG get_num_values_created ()
 
static ScripterExport bool validate_value_linkages ()
 
- Public Attributes inherited from Value
ValueMetaClass * tag
 
- Public Attributes inherited from Collectable
Collectable * next
 
Collectable * prev
 
byte flags
 
byte flags2
 
short flags3
 
- Static Public Attributes inherited from Collectable
static CRITICAL_SECTION heap_update
 
static Collectable * collectable_list
 
static Collectable * permanent_list
 
static free_mem * free_list [GC_NUM_SUBLISTS]
 
static size_t heap_allocated
 
static size_t heap_size
 
static ScripterExport collectable_state state
 
static ScripterExport bool fullCollectNextHoldFlush
 
static bool gc_light
 
static bool in_gc
 
static HANDLE hGCCompletedEvent
 
- Static Protected Attributes inherited from Value
static ScripterExport Value * keyarg_marker_value
 

Detailed Description

ReadonlyTextFileStream is only used for opening text file in read-only mode.

It's equivalent to use FileStream when opening files in "rt" mode. But FileStream is very slow when reading files. So we optimize the original codes in FileStream and create this new class which is thousand times faster for reading text files than FileStream.

Note
Invoke any non-read-only methods in ReadonlyTextFileStream will result in a runtime exception. Such methods include putch(),puts(),printf().

Constructor & Destructor Documentation

◆ ReadonlyTextFileStream()

The default constructor.

◆ ~ReadonlyTextFileStream()

The default destructor.

Member Function Documentation

◆ open()

ScripterExport ReadonlyTextFileStream * open ( const MCHAR *  ifile_name,
unsigned int  encoding = -1 
)

Open a new text file.

Parameters
[in]ifile_nameThe file name.
[in]encodingThe encoding to use if if can not be determined from the file contents, If -1, a default encoding based on the file language setting in Preference /Files (exposed through Interface14) will be used.
Returns
The ReadonlyTextFileStream instance itself if max is able to open the file or undefined if it fails.

◆ get_char()

MaxSDK::Util::Char get_char ( )
overridevirtual

Implements CharStream.

◆ unget_char()

void unget_char ( const MaxSDK::Util::Char &  c)
overridevirtual

Implements CharStream.

◆ peek_char()

MaxSDK::Util::Char peek_char ( )
overridevirtual

Implements CharStream.

◆ at_eos()

int at_eos ( )
overridevirtual

Implements CharStream.

◆ pos()

unsigned int pos ( )
overridevirtual

Reimplemented from CharStream.

◆ seek()

void seek ( int  pos)
overridevirtual

Reimplemented from CharStream.

◆ rewind()

void rewind ( )
overridevirtual

Implements CharStream.

◆ flush_to_eol()

void flush_to_eol ( )
overridevirtual

Implements CharStream.

◆ putch()

MaxSDK::Util::Char putch ( const MaxSDK::Util::Char &  c)
overridevirtual

Reimplemented from CharStream.

◆ puts()

const MCHAR * puts ( const MCHAR *  str)
overridevirtual

Reimplemented from CharStream.

◆ printf()

int printf ( const MCHAR *  format,
  ... 
)
overridevirtual

Reimplemented from CharStream.

◆ collect()

void collect ( )
overridevirtual

Implements Collectable.

◆ close()

void close ( )
overridevirtual

Reimplemented from CharStream.

◆ gc_trace()

void gc_trace ( )
overridevirtual

Reimplemented from CharStream.

◆ log_to()

void log_to ( CharStream *  log)
overridevirtual

Reimplemented from CharStream.

◆ close_log()

void close_log ( )
overridevirtual

Reimplemented from CharStream.

◆ get_log()

CharStream * get_log ( )
overridevirtual

Reimplemented from CharStream.

Member Data Documentation

◆ mUngetcharCount

int mUngetcharCount
protected

◆ mUngetcharBuf

MaxSDK::Util::Char mUngetcharBuf[8]
protected

◆ mFileBuf

MaxSDK::Util::Char* mFileBuf
protected

◆ mCharCount

size_t mCharCount
protected

◆ mCharPos

size_t mCharPos
protected

◆ mLog

CharStream* mLog
protected