2026-01-16 22:45:06 -05:00
|
|
|
#ifndef AXIO_CFILEOUTSTREAM_H
|
|
|
|
|
#define AXIO_CFILEOUTSTREAM_H
|
2018-12-08 23:44:41 -07:00
|
|
|
|
|
|
|
|
#include "IOutputStream.h"
|
|
|
|
|
|
|
|
|
|
class CFileOutStream : public IOutputStream
|
|
|
|
|
{
|
|
|
|
|
private:
|
2020-06-11 11:26:46 -04:00
|
|
|
FILE *mpFStream = nullptr;
|
2018-12-08 23:44:41 -07:00
|
|
|
TString mName;
|
2026-01-11 11:00:26 -05:00
|
|
|
uint32_t mSize = 0;
|
2018-12-08 23:44:41 -07:00
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
CFileOutStream();
|
2025-12-17 13:44:30 -05:00
|
|
|
explicit CFileOutStream(const TString& rkFile);
|
2025-12-23 14:15:09 -05:00
|
|
|
explicit CFileOutStream(const TString& rkFile, std::endian FileEndianness);
|
2018-12-08 23:44:41 -07:00
|
|
|
CFileOutStream(const CFileOutStream& rkSrc);
|
2025-12-17 13:44:30 -05:00
|
|
|
|
2020-06-11 11:26:46 -04:00
|
|
|
~CFileOutStream() override;
|
2025-12-23 14:15:09 -05:00
|
|
|
void Open(const TString& rkFile, std::endian);
|
|
|
|
|
void Update(const TString& rkFile, std::endian FileEndianness);
|
2018-12-08 23:44:41 -07:00
|
|
|
void Close();
|
|
|
|
|
|
2026-01-11 11:00:26 -05:00
|
|
|
void WriteBytes(const void* pkSrc, uint32_t Count) override;
|
|
|
|
|
bool Seek(int32_t Offset, uint32_t Origin) override;
|
|
|
|
|
bool Seek64(int64_t Offset, uint32_t Origin) override;
|
|
|
|
|
uint32_t Tell() const override;
|
|
|
|
|
uint64_t Tell64() const override;
|
2020-06-11 11:26:46 -04:00
|
|
|
bool EoF() const override;
|
|
|
|
|
bool IsValid() const override;
|
2026-01-11 11:00:26 -05:00
|
|
|
uint32_t Size() const override;
|
2018-12-08 23:44:41 -07:00
|
|
|
TString FileName() const;
|
|
|
|
|
};
|
|
|
|
|
|
2026-01-16 22:45:06 -05:00
|
|
|
#endif // AXIO_CFILEOUTSTREAM_H
|