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;
mBufferSize = 0;
mCurPos = 0;
stream = NULL;
mStream = NULL;
}
FileObject::~FileObject()
{
SAFE_DELETE_ARRAY(mFileBuffer);
SAFE_DELETE(stream);
SAFE_DELETE(mStream);
}
void FileObject::close()
{
SAFE_DELETE(stream);
SAFE_DELETE(mStream);
SAFE_DELETE_ARRAY(mFileBuffer);
mFileBuffer = NULL;
mBufferSize = mCurPos = 0;
@ -112,10 +112,10 @@ bool FileObject::openForWrite(const char *fileName, const bool append)
if( !buffer[ 0 ] )
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;
stream->setPosition( stream->getStreamSize() );
mStream->setPosition(mStream->getStreamSize() );
return( true );
}
@ -225,17 +225,17 @@ void FileObject::peekLine( S32 peekLineOffset, U8* line, S32 length )
void FileObject::writeLine(const U8 *line)
{
stream->write(dStrlen((const char *) line), line);
stream->write(2, "\r\n");
mStream->write(dStrlen((const char *) line), line);
mStream->write(2, "\r\n");
}
void FileObject::writeObject( SimObject* object, const U8* objectPrepend )
{
if( objectPrepend == NULL )
stream->write(2, "\r\n");
mStream->write(2, "\r\n");
else
stream->write(dStrlen((const char *) objectPrepend), objectPrepend );
object->write( *stream, 0 );
mStream->write(dStrlen((const char *) objectPrepend), objectPrepend );
object->write( *mStream, 0 );
}
DefineEngineMethod( FileObject, openForRead, bool, ( const char* filename ),,

View file

@ -36,7 +36,7 @@ class FileObject : public SimObject
U8 *mFileBuffer;
U32 mBufferSize;
U32 mCurPos;
FileStream *stream;
FileStream *mStream;
public:
FileObject();
~FileObject();
@ -50,6 +50,8 @@ public:
bool isEOF();
void writeLine(const U8 *line);
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 );
DECLARE_CONOBJECT(FileObject);

View file

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

View file

@ -111,6 +111,7 @@ private:
void compileCustomState( TamlWriteNode* pTamlWriteNode );
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 );
SimObject* 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 = "");
void remove(const UTF8 *settingName, bool includeDefaults = false);
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 read();
void readLayer(SimXMLDocument *document, String groupStack = String(""));