Merge pull request #1286 from Azaezel/alpha41/fileFoul

file write clarifications
This commit is contained in:
Brian Roberts 2024-06-15 14:30:30 -05:00 committed by GitHub
commit 91c2e7a256
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 17 additions and 11 deletions

View file

@ -85,18 +85,18 @@ FileObject::FileObject()
mFileBuffer = NULL; mFileBuffer = NULL;
mBufferSize = 0; mBufferSize = 0;
mCurPos = 0; mCurPos = 0;
stream = NULL; mStream = NULL;
} }
FileObject::~FileObject() FileObject::~FileObject()
{ {
SAFE_DELETE_ARRAY(mFileBuffer); SAFE_DELETE_ARRAY(mFileBuffer);
SAFE_DELETE(stream); SAFE_DELETE(mStream);
} }
void FileObject::close() void FileObject::close()
{ {
SAFE_DELETE(stream); SAFE_DELETE(mStream);
SAFE_DELETE_ARRAY(mFileBuffer); SAFE_DELETE_ARRAY(mFileBuffer);
mFileBuffer = NULL; mFileBuffer = NULL;
mBufferSize = mCurPos = 0; mBufferSize = mCurPos = 0;
@ -112,10 +112,10 @@ bool FileObject::openForWrite(const char *fileName, const bool append)
if( !buffer[ 0 ] ) if( !buffer[ 0 ] )
return false; return false;
if((stream = FileStream::createAndOpen( fileName, append ? Torque::FS::File::WriteAppend : Torque::FS::File::Write )) == NULL) if((mStream = FileStream::createAndOpen( fileName, append ? Torque::FS::File::WriteAppend : Torque::FS::File::Write )) == NULL)
return false; return false;
stream->setPosition( stream->getStreamSize() ); mStream->setPosition(mStream->getStreamSize() );
return( true ); return( true );
} }
@ -225,17 +225,17 @@ void FileObject::peekLine( S32 peekLineOffset, U8* line, S32 length )
void FileObject::writeLine(const U8 *line) void FileObject::writeLine(const U8 *line)
{ {
stream->write(dStrlen((const char *) line), line); mStream->write(dStrlen((const char *) line), line);
stream->write(2, "\r\n"); mStream->write(2, "\r\n");
} }
void FileObject::writeObject( SimObject* object, const U8* objectPrepend ) void FileObject::writeObject( SimObject* object, const U8* objectPrepend )
{ {
if( objectPrepend == NULL ) if( objectPrepend == NULL )
stream->write(2, "\r\n"); mStream->write(2, "\r\n");
else else
stream->write(dStrlen((const char *) objectPrepend), objectPrepend ); mStream->write(dStrlen((const char *) objectPrepend), objectPrepend );
object->write( *stream, 0 ); object->write( *mStream, 0 );
} }
DefineEngineMethod( FileObject, openForRead, bool, ( const char* filename ),, DefineEngineMethod( FileObject, openForRead, bool, ( const char* filename ),,

View file

@ -36,7 +36,7 @@ class FileObject : public SimObject
U8 *mFileBuffer; U8 *mFileBuffer;
U32 mBufferSize; U32 mBufferSize;
U32 mCurPos; U32 mCurPos;
FileStream *stream; FileStream *mStream;
public: public:
FileObject(); FileObject();
~FileObject(); ~FileObject();
@ -50,6 +50,8 @@ public:
bool isEOF(); bool isEOF();
void writeLine(const U8 *line); void writeLine(const U8 *line);
void close(); void close();
bool writeObject(Stream* stream) override { Con::errorf("FileObject:Can Not write a file interface object to a file"); return false; }; //Don't allow writing FileObject *to* files
void writeObject( SimObject* object, const U8* objectPrepend = NULL ); void writeObject( SimObject* object, const U8* objectPrepend = NULL );
DECLARE_CONOBJECT(FileObject); DECLARE_CONOBJECT(FileObject);

View file

@ -194,6 +194,8 @@ public:
inline void setModuleLocked( const bool status ) { mLocked = status; } inline void setModuleLocked( const bool status ) { mLocked = status; }
inline bool getModuleLocked( void ) const { return mLocked; } inline bool getModuleLocked( void ) const { return mLocked; }
inline ModuleManager* getModuleManager( void ) const { return mpModuleManager; } inline ModuleManager* getModuleManager( void ) const { return mpModuleManager; }
using Parent::save;
bool save( void ); bool save( void );
/// Declare Console Object. /// Declare Console Object.

View file

@ -111,6 +111,7 @@ private:
void compileCustomState( TamlWriteNode* pTamlWriteNode ); void compileCustomState( TamlWriteNode* pTamlWriteNode );
void compileCustomNodeState( TamlCustomNode* pCustomNode ); void compileCustomNodeState( TamlCustomNode* pCustomNode );
void write(Stream& stream, U32 tabStop, U32 flags = 0) override { Con::errorf("Taml:Can Not write a file interface object to a file"); }; //Don't allow writing Taml objects *to* files
bool write( FileStream& stream, SimObject* pSimObject, const TamlFormatMode formatMode ); bool write( FileStream& stream, SimObject* pSimObject, const TamlFormatMode formatMode );
SimObject* read( FileStream& stream, const TamlFormatMode formatMode ); SimObject* read( FileStream& stream, const TamlFormatMode formatMode );
template<typename T> inline T* read( FileStream& stream, const TamlFormatMode formatMode ) template<typename T> inline T* read( FileStream& stream, const TamlFormatMode formatMode )

View file

@ -52,6 +52,7 @@ public:
const UTF8 *value(const UTF8 *settingName, const UTF8 *defaultValue = ""); const UTF8 *value(const UTF8 *settingName, const UTF8 *defaultValue = "");
void remove(const UTF8 *settingName, bool includeDefaults = false); void remove(const UTF8 *settingName, bool includeDefaults = false);
void clearAllFields(); void clearAllFields();
void write(Stream& stream, U32 tabStop, U32 flags = 0) override { Con::errorf("Settings: Can Not write a file interface object to a file"); }; //Don't allow writing Settings objects *to* files
bool write(); bool write();
bool read(); bool read();
void readLayer(SimXMLDocument *document, String groupStack = String("")); void readLayer(SimXMLDocument *document, String groupStack = String(""));