summaryrefslogtreecommitdiff
path: root/tools/GUIEditor/CMemoryReadWriteFile.h
diff options
context:
space:
mode:
authorMirrorbot <mirrorbot@cogarr.net>2025-12-27 17:53:06 -0600
committerMirrorbot <mirrorbot@cogarr.net>2025-12-27 17:53:06 -0600
commit71e94ee161447b84c0eaabf6567f8fa62262cd3e (patch)
tree391064cc6173a6fe75069af2fdc1978af12f623e /tools/GUIEditor/CMemoryReadWriteFile.h
downloadirrlicht-71e94ee161447b84c0eaabf6567f8fa62262cd3e.tar.gz
irrlicht-71e94ee161447b84c0eaabf6567f8fa62262cd3e.tar.bz2
irrlicht-71e94ee161447b84c0eaabf6567f8fa62262cd3e.zip
Inital commitHEADmaster
Diffstat (limited to 'tools/GUIEditor/CMemoryReadWriteFile.h')
-rw-r--r--tools/GUIEditor/CMemoryReadWriteFile.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/tools/GUIEditor/CMemoryReadWriteFile.h b/tools/GUIEditor/CMemoryReadWriteFile.h
new file mode 100644
index 0000000..de20ae7
--- /dev/null
+++ b/tools/GUIEditor/CMemoryReadWriteFile.h
@@ -0,0 +1,73 @@
+// Copyright (C) 2002-2012 Nikolaus Gebhardt
+// This file is part of the "Irrlicht Engine".
+// For conditions of distribution and use, see copyright notice in irrlicht.h
+
+#ifndef __C_MEMORY_READ_WRITE_FILE_H_INCLUDED__
+#define __C_MEMORY_READ_WRITE_FILE_H_INCLUDED__
+
+#include "IWriteFile.h"
+#include "IReadFile.h"
+#include "irrArray.h"
+#include "irrString.h"
+#include "memory.h"
+
+namespace irr
+{
+namespace io
+{
+
+ //! Provides write acess to an array as if it is a file.
+ class CMemoryReadWriteFile : public virtual IWriteFile, public virtual IReadFile
+ {
+ public:
+
+ CMemoryReadWriteFile(const c8* filename=0);
+
+ //! Reads an amount of bytes from the file.
+ //! \param buffer: Pointer to buffer of bytes to write.
+ //! \param sizeToWrite: Amount of bytes to wrtie to the file.
+ //! \return Returns how much bytes were written.
+ virtual s32 write(const void* buffer, u32 sizeToWrite);
+
+ //! Changes position in file, returns true if successful.
+ //! \param finalPos: Destination position in the file.
+ //! \param relativeMovement: If set to true, the position in the file is
+ //! changed relative to current position. Otherwise the position is changed
+ //! from begin of file.
+ //! \return Returns true if successful, otherwise false.
+ virtual bool seek(long finalPos, bool relativeMovement = false);
+
+ //! Returns size of file.
+ //! \return Returns the size of the file in bytes.
+ virtual long getSize() const;
+
+ //! Reads an amount of bytes from the file.
+ //! \param buffer: Pointer to buffer where to read bytes will be written to.
+ //! \param sizeToRead: Amount of bytes to read from the file.
+ //! \return Returns how much bytes were read.
+ virtual s32 read(void* buffer, u32 sizeToRead);
+
+ //! Returns the current position in the file.
+ //! \return Returns the current position in the file in bytes.
+ virtual long getPos() const;
+
+ //! Returns name of file.
+ //! \return Returns the file name as zero terminated character string.
+ virtual const io::path& getFileName() const;
+
+ //! Returns file data as an array
+ core::array<c8>& getData();
+
+ private:
+
+ core::array<c8> Data;
+ io::path FileName;
+ long Pos;
+ };
+
+
+
+} // end namespace io
+} // end namespace irr
+
+#endif // __C_MEMORY_READ_WRITE_FILE_H_INCLUDED__