mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-12-16 00:17:14 +00:00
Renaming things in FileIO to match PWE's naming conventions
This commit is contained in:
@@ -2,28 +2,28 @@
|
||||
|
||||
CFileInStream::CFileInStream()
|
||||
{
|
||||
mFStream = nullptr;
|
||||
mpFStream = nullptr;
|
||||
}
|
||||
|
||||
CFileInStream::CFileInStream(std::string File)
|
||||
CFileInStream::CFileInStream(const std::string& rkFile)
|
||||
{
|
||||
mFStream = nullptr;
|
||||
Open(File, IOUtil::BigEndian);
|
||||
mpFStream = nullptr;
|
||||
Open(rkFile, IOUtil::eBigEndian);
|
||||
}
|
||||
|
||||
CFileInStream::CFileInStream(std::string File, IOUtil::EEndianness FileEndianness)
|
||||
CFileInStream::CFileInStream(const std::string& rkFile, IOUtil::EEndianness FileEndianness)
|
||||
{
|
||||
mFStream = nullptr;
|
||||
Open(File, FileEndianness);
|
||||
mpFStream = nullptr;
|
||||
Open(rkFile, FileEndianness);
|
||||
}
|
||||
|
||||
CFileInStream::CFileInStream(CFileInStream& src)
|
||||
CFileInStream::CFileInStream(const CFileInStream& rkSrc)
|
||||
{
|
||||
mFStream = nullptr;
|
||||
Open(src.mName, src.mDataEndianness);
|
||||
mpFStream = nullptr;
|
||||
Open(rkSrc.mName, rkSrc.mDataEndianness);
|
||||
|
||||
if (src.IsValid())
|
||||
Seek(src.Tell(), SEEK_SET);
|
||||
if (rkSrc.IsValid())
|
||||
Seek(rkSrc.Tell(), SEEK_SET);
|
||||
}
|
||||
|
||||
CFileInStream::~CFileInStream()
|
||||
@@ -32,13 +32,13 @@ CFileInStream::~CFileInStream()
|
||||
Close();
|
||||
}
|
||||
|
||||
void CFileInStream::Open(std::string File, IOUtil::EEndianness FileEndianness)
|
||||
void CFileInStream::Open(const std::string& rkFile, IOUtil::EEndianness FileEndianness)
|
||||
{
|
||||
if (IsValid())
|
||||
Close();
|
||||
|
||||
fopen_s(&mFStream, File.c_str(), "rb");
|
||||
mName = File;
|
||||
fopen_s(&mpFStream, rkFile.c_str(), "rb");
|
||||
mName = rkFile;
|
||||
mDataEndianness = FileEndianness;
|
||||
|
||||
if (IsValid())
|
||||
@@ -50,45 +50,45 @@ void CFileInStream::Open(std::string File, IOUtil::EEndianness FileEndianness)
|
||||
else
|
||||
mFileSize = 0;
|
||||
|
||||
size_t EndPath = File.find_last_of("\\/");
|
||||
SetSourceString(File.substr(EndPath + 1, File.length() - EndPath));
|
||||
size_t EndPath = rkFile.find_last_of("\\/");
|
||||
SetSourceString(rkFile.substr(EndPath + 1, rkFile.length() - EndPath));
|
||||
}
|
||||
|
||||
void CFileInStream::Close()
|
||||
{
|
||||
if (IsValid())
|
||||
fclose(mFStream);
|
||||
mFStream = nullptr;
|
||||
fclose(mpFStream);
|
||||
mpFStream = nullptr;
|
||||
}
|
||||
|
||||
void CFileInStream::ReadBytes(void *dst, unsigned long Count)
|
||||
void CFileInStream::ReadBytes(void *pDst, unsigned long Count)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
fread(dst, 1, Count, mFStream);
|
||||
fread(pDst, 1, Count, mpFStream);
|
||||
}
|
||||
|
||||
bool CFileInStream::Seek(long Offset, long Origin)
|
||||
{
|
||||
if (!IsValid()) return false;
|
||||
return (fseek(mFStream, Offset, Origin) != 0);
|
||||
return (fseek(mpFStream, Offset, Origin) != 0);
|
||||
}
|
||||
|
||||
bool CFileInStream::Seek64(long long Offset, long Origin)
|
||||
{
|
||||
if (!IsValid()) return false;
|
||||
return (_fseeki64(mFStream, Offset, Origin) != 0);
|
||||
return (_fseeki64(mpFStream, Offset, Origin) != 0);
|
||||
}
|
||||
|
||||
long CFileInStream::Tell() const
|
||||
{
|
||||
if (!IsValid()) return 0;
|
||||
return ftell(mFStream);
|
||||
return ftell(mpFStream);
|
||||
}
|
||||
|
||||
long long CFileInStream::Tell64() const
|
||||
{
|
||||
if (!IsValid()) return 0;
|
||||
return _ftelli64(mFStream);
|
||||
return _ftelli64(mpFStream);
|
||||
}
|
||||
|
||||
bool CFileInStream::EoF() const
|
||||
@@ -98,7 +98,7 @@ bool CFileInStream::EoF() const
|
||||
|
||||
bool CFileInStream::IsValid() const
|
||||
{
|
||||
return (mFStream != 0);
|
||||
return (mpFStream != 0);
|
||||
}
|
||||
|
||||
long CFileInStream::Size() const
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
#ifndef CFILEINSTREAM_H
|
||||
#define CFILEINSTREAM_H
|
||||
|
||||
#include "CInputStream.h"
|
||||
#include "IInputStream.h"
|
||||
#include "IOUtil.h"
|
||||
|
||||
class CFileInStream : public CInputStream
|
||||
class CFileInStream : public IInputStream
|
||||
{
|
||||
private:
|
||||
FILE *mFStream;
|
||||
FILE *mpFStream;
|
||||
std::string mName;
|
||||
long mFileSize;
|
||||
|
||||
public:
|
||||
CFileInStream();
|
||||
CFileInStream(std::string file);
|
||||
CFileInStream(std::string file, IOUtil::EEndianness FileEndianness);
|
||||
CFileInStream(CFileInStream& src);
|
||||
CFileInStream(const std::string& rkFile);
|
||||
CFileInStream(const std::string& rkFile, IOUtil::EEndianness FileEndianness);
|
||||
CFileInStream(const CFileInStream& rkSrc);
|
||||
~CFileInStream();
|
||||
void Open(std::string file, IOUtil::EEndianness FileEndianness);
|
||||
void Open(const std::string& rkFile, IOUtil::EEndianness FileEndianness);
|
||||
void Close();
|
||||
|
||||
void ReadBytes(void *dst, unsigned long count);
|
||||
void ReadBytes(void *pDst, unsigned long count);
|
||||
bool Seek(long offset, long origin);
|
||||
bool Seek64(long long offset, long origin);
|
||||
long Tell() const;
|
||||
|
||||
@@ -2,29 +2,29 @@
|
||||
|
||||
CFileOutStream::CFileOutStream()
|
||||
{
|
||||
mFStream = nullptr;
|
||||
mpFStream = nullptr;
|
||||
mSize = 0;
|
||||
}
|
||||
|
||||
CFileOutStream::CFileOutStream(std::string File)
|
||||
CFileOutStream::CFileOutStream(const std::string& rkFile)
|
||||
{
|
||||
mFStream = nullptr;
|
||||
Open(File, IOUtil::BigEndian);
|
||||
mpFStream = nullptr;
|
||||
Open(rkFile, IOUtil::eBigEndian);
|
||||
}
|
||||
|
||||
CFileOutStream::CFileOutStream(std::string File, IOUtil::EEndianness FileEndianness)
|
||||
CFileOutStream::CFileOutStream(const std::string& rkFile, IOUtil::EEndianness FileEndianness)
|
||||
{
|
||||
mFStream = nullptr;
|
||||
Open(File, FileEndianness);
|
||||
mpFStream = nullptr;
|
||||
Open(rkFile, FileEndianness);
|
||||
}
|
||||
|
||||
CFileOutStream::CFileOutStream(CFileOutStream& src)
|
||||
CFileOutStream::CFileOutStream(const CFileOutStream& rkSrc)
|
||||
{
|
||||
mFStream = nullptr;
|
||||
Open(src.mName, src.mDataEndianness);
|
||||
mpFStream = nullptr;
|
||||
Open(rkSrc.mName, rkSrc.mDataEndianness);
|
||||
|
||||
if (src.IsValid())
|
||||
Seek(src.Tell(), SEEK_SET);
|
||||
if (rkSrc.IsValid())
|
||||
Seek(rkSrc.Tell(), SEEK_SET);
|
||||
}
|
||||
|
||||
CFileOutStream::~CFileOutStream()
|
||||
@@ -33,24 +33,24 @@ CFileOutStream::~CFileOutStream()
|
||||
Close();
|
||||
}
|
||||
|
||||
void CFileOutStream::Open(std::string File, IOUtil::EEndianness FileEndianness)
|
||||
void CFileOutStream::Open(const std::string& rkFile, IOUtil::EEndianness FileEndianness)
|
||||
{
|
||||
if (IsValid())
|
||||
Close();
|
||||
|
||||
fopen_s(&mFStream, File.c_str(), "wb");
|
||||
mName = File;
|
||||
fopen_s(&mpFStream, rkFile.c_str(), "wb");
|
||||
mName = rkFile;
|
||||
mDataEndianness = FileEndianness;
|
||||
mSize = 0;
|
||||
}
|
||||
|
||||
void CFileOutStream::Update(std::string File, IOUtil::EEndianness FileEndianness)
|
||||
void CFileOutStream::Update(const std::string& rkFile, IOUtil::EEndianness FileEndianness)
|
||||
{
|
||||
if (IsValid())
|
||||
Close();
|
||||
|
||||
fopen_s(&mFStream, File.c_str(), "rb+");
|
||||
mName = File;
|
||||
fopen_s(&mpFStream, rkFile.c_str(), "rb+");
|
||||
mName = rkFile;
|
||||
mDataEndianness = FileEndianness;
|
||||
Seek(0x0, SEEK_END);
|
||||
mSize = Tell();
|
||||
@@ -60,40 +60,40 @@ void CFileOutStream::Update(std::string File, IOUtil::EEndianness FileEndianness
|
||||
void CFileOutStream::Close()
|
||||
{
|
||||
if (IsValid())
|
||||
fclose(mFStream);
|
||||
mFStream = nullptr;
|
||||
fclose(mpFStream);
|
||||
mpFStream = nullptr;
|
||||
mSize = 0;
|
||||
}
|
||||
|
||||
void CFileOutStream::WriteBytes(void *src, unsigned long Count)
|
||||
void CFileOutStream::WriteBytes(void *pSrc, unsigned long Count)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
fwrite(src, 1, Count, mFStream);
|
||||
fwrite(pSrc, 1, Count, mpFStream);
|
||||
if ((unsigned long) Tell() > mSize) mSize = Tell();
|
||||
}
|
||||
|
||||
bool CFileOutStream::Seek(long Offset, long Origin)
|
||||
{
|
||||
if (!IsValid()) return false;
|
||||
return (fseek(mFStream, Offset, Origin) != 0);
|
||||
return (fseek(mpFStream, Offset, Origin) != 0);
|
||||
}
|
||||
|
||||
bool CFileOutStream::Seek64(long long Offset, long Origin)
|
||||
{
|
||||
if (!IsValid()) return false;
|
||||
return (_fseeki64(mFStream, Offset, Origin) != 0);
|
||||
return (_fseeki64(mpFStream, Offset, Origin) != 0);
|
||||
}
|
||||
|
||||
long CFileOutStream::Tell() const
|
||||
{
|
||||
if (!IsValid()) return 0;
|
||||
return ftell(mFStream);
|
||||
return ftell(mpFStream);
|
||||
}
|
||||
|
||||
long long CFileOutStream::Tell64() const
|
||||
{
|
||||
if (!IsValid()) return 0;
|
||||
return _ftelli64(mFStream);
|
||||
return _ftelli64(mpFStream);
|
||||
}
|
||||
|
||||
bool CFileOutStream::EoF() const
|
||||
@@ -103,7 +103,7 @@ bool CFileOutStream::EoF() const
|
||||
|
||||
bool CFileOutStream::IsValid() const
|
||||
{
|
||||
return (mFStream != 0);
|
||||
return (mpFStream != 0);
|
||||
}
|
||||
|
||||
long CFileOutStream::Size() const
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
#ifndef CFILEOUTSTREAM_H
|
||||
#define CFILEOUTSTREAM_H
|
||||
|
||||
#include "COutputStream.h"
|
||||
#include "IOutputStream.h"
|
||||
#include "IOUtil.h"
|
||||
|
||||
class CFileOutStream : public COutputStream
|
||||
class CFileOutStream : public IOutputStream
|
||||
{
|
||||
private:
|
||||
FILE *mFStream;
|
||||
FILE *mpFStream;
|
||||
std::string mName;
|
||||
unsigned long mSize;
|
||||
|
||||
public:
|
||||
CFileOutStream();
|
||||
CFileOutStream(std::string file);
|
||||
CFileOutStream(std::string file, IOUtil::EEndianness FileEndianness);
|
||||
CFileOutStream(CFileOutStream& src);
|
||||
CFileOutStream(const std::string& rkFile);
|
||||
CFileOutStream(const std::string& rkFile, IOUtil::EEndianness FileEndianness);
|
||||
CFileOutStream(const CFileOutStream& rkSrc);
|
||||
~CFileOutStream();
|
||||
void Open(std::string file, IOUtil::EEndianness);
|
||||
void Update(std::string file, IOUtil::EEndianness FileEndianness);
|
||||
void Open(const std::string& rkFile, IOUtil::EEndianness);
|
||||
void Update(const std::string& rkFile, IOUtil::EEndianness FileEndianness);
|
||||
void Close();
|
||||
|
||||
void WriteBytes(void *src, unsigned long count);
|
||||
void WriteBytes(void *pSrc, unsigned long count);
|
||||
bool Seek(long offset, long origin);
|
||||
bool Seek64(long long offset, long origin);
|
||||
long Tell() const;
|
||||
|
||||
@@ -2,31 +2,31 @@
|
||||
|
||||
CMemoryInStream::CMemoryInStream()
|
||||
{
|
||||
mDataStart = nullptr;
|
||||
mpDataStart = nullptr;
|
||||
mDataSize = 0;
|
||||
mPos = 0;
|
||||
}
|
||||
CMemoryInStream::CMemoryInStream(void *Data, unsigned long Size, IOUtil::EEndianness DataEndianness)
|
||||
CMemoryInStream::CMemoryInStream(void *pData, unsigned long Size, IOUtil::EEndianness DataEndianness)
|
||||
{
|
||||
SetData(Data, Size, DataEndianness);
|
||||
SetData(pData, Size, DataEndianness);
|
||||
}
|
||||
|
||||
CMemoryInStream::~CMemoryInStream()
|
||||
{
|
||||
}
|
||||
|
||||
void CMemoryInStream::SetData(void *Data, unsigned long Size, IOUtil::EEndianness DataEndianness)
|
||||
void CMemoryInStream::SetData(void *pData, unsigned long Size, IOUtil::EEndianness DataEndianness)
|
||||
{
|
||||
mDataStart = static_cast<char*>(Data);
|
||||
mpDataStart = static_cast<char*>(pData);
|
||||
mDataSize = Size;
|
||||
mPos = 0;
|
||||
mDataEndianness = DataEndianness;
|
||||
}
|
||||
|
||||
void CMemoryInStream::ReadBytes(void *dst, unsigned long Count)
|
||||
void CMemoryInStream::ReadBytes(void *pDst, unsigned long Count)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
memcpy(dst, mDataStart + mPos, Count);
|
||||
memcpy(pDst, mpDataStart + mPos, Count);
|
||||
mPos += Count;
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ bool CMemoryInStream::EoF() const
|
||||
|
||||
bool CMemoryInStream::IsValid() const
|
||||
{
|
||||
return (mDataStart != nullptr);
|
||||
return (mpDataStart != nullptr);
|
||||
}
|
||||
|
||||
long CMemoryInStream::Size() const
|
||||
@@ -93,10 +93,10 @@ void CMemoryInStream::SetSize(unsigned long Size)
|
||||
|
||||
void* CMemoryInStream::Data() const
|
||||
{
|
||||
return mDataStart;
|
||||
return mpDataStart;
|
||||
}
|
||||
|
||||
void* CMemoryInStream::DataAtPosition() const
|
||||
{
|
||||
return mDataStart + mPos;
|
||||
return mpDataStart + mPos;
|
||||
}
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
#ifndef CMEMORYINSTREAM_H
|
||||
#define CMEMORYINSTREAM_H
|
||||
|
||||
#include "CInputStream.h"
|
||||
#include "IInputStream.h"
|
||||
#include "IOUtil.h"
|
||||
|
||||
class CMemoryInStream : public CInputStream
|
||||
class CMemoryInStream : public IInputStream
|
||||
{
|
||||
char *mDataStart;
|
||||
char *mpDataStart;
|
||||
long mDataSize;
|
||||
long mPos;
|
||||
|
||||
public:
|
||||
CMemoryInStream();
|
||||
CMemoryInStream(void *Data, unsigned long Size, IOUtil::EEndianness dataEndianness);
|
||||
CMemoryInStream(void *pData, unsigned long Size, IOUtil::EEndianness dataEndianness);
|
||||
~CMemoryInStream();
|
||||
void SetData(void *Data, unsigned long Size, IOUtil::EEndianness dataEndianness);
|
||||
void SetData(void *pData, unsigned long Size, IOUtil::EEndianness dataEndianness);
|
||||
|
||||
void ReadBytes(void *dst, unsigned long Count);
|
||||
void ReadBytes(void *pDst, unsigned long Count);
|
||||
bool Seek(long offset, long Origin);
|
||||
long Tell() const;
|
||||
bool EoF() const;
|
||||
|
||||
@@ -2,35 +2,35 @@
|
||||
|
||||
CMemoryOutStream::CMemoryOutStream()
|
||||
{
|
||||
mDataStart = nullptr;
|
||||
mpDataStart = nullptr;
|
||||
mDataSize = 0;
|
||||
mPos = 0;
|
||||
mUsed = 0;
|
||||
}
|
||||
|
||||
CMemoryOutStream::CMemoryOutStream(void *Data, unsigned long Size, IOUtil::EEndianness DataEndianness)
|
||||
CMemoryOutStream::CMemoryOutStream(void *pData, unsigned long Size, IOUtil::EEndianness DataEndianness)
|
||||
{
|
||||
SetData(Data, Size, DataEndianness);
|
||||
SetData(pData, Size, DataEndianness);
|
||||
}
|
||||
|
||||
CMemoryOutStream::~CMemoryOutStream()
|
||||
{
|
||||
}
|
||||
|
||||
void CMemoryOutStream::SetData(void *Data, unsigned long Size, IOUtil::EEndianness DataEndianness)
|
||||
void CMemoryOutStream::SetData(void *pData, unsigned long Size, IOUtil::EEndianness DataEndianness)
|
||||
{
|
||||
mDataStart = static_cast<char*>(Data);
|
||||
mpDataStart = static_cast<char*>(pData);
|
||||
mDataSize = Size;
|
||||
mPos = 0;
|
||||
mUsed = 0;
|
||||
mDataEndianness = DataEndianness;
|
||||
}
|
||||
|
||||
void CMemoryOutStream::WriteBytes(void *src, unsigned long Count)
|
||||
void CMemoryOutStream::WriteBytes(void *pSrc, unsigned long Count)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
|
||||
memcpy(mDataStart + mPos, src, Count);
|
||||
memcpy(mpDataStart + mPos, pSrc, Count);
|
||||
mPos += Count;
|
||||
if (mPos > mUsed) mUsed = mPos;
|
||||
}
|
||||
@@ -82,7 +82,7 @@ bool CMemoryOutStream::EoF() const
|
||||
|
||||
bool CMemoryOutStream::IsValid() const
|
||||
{
|
||||
return (mDataStart != nullptr);
|
||||
return (mpDataStart != nullptr);
|
||||
}
|
||||
|
||||
long CMemoryOutStream::Size() const
|
||||
@@ -104,10 +104,10 @@ void CMemoryOutStream::SetSize(unsigned long Size)
|
||||
|
||||
void* CMemoryOutStream::Data() const
|
||||
{
|
||||
return mDataStart;
|
||||
return mpDataStart;
|
||||
}
|
||||
|
||||
void* CMemoryOutStream::DataAtPosition() const
|
||||
{
|
||||
return mDataStart + mPos;
|
||||
return mpDataStart + mPos;
|
||||
}
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
#ifndef CMEMORYOUTSTREAM_H
|
||||
#define CMEMORYOUTSTREAM_H
|
||||
|
||||
#include "COutputStream.h"
|
||||
#include "IOutputStream.h"
|
||||
|
||||
class CMemoryOutStream : public COutputStream
|
||||
class CMemoryOutStream : public IOutputStream
|
||||
{
|
||||
char *mDataStart;
|
||||
char *mpDataStart;
|
||||
long mDataSize;
|
||||
long mPos;
|
||||
long mUsed;
|
||||
|
||||
public:
|
||||
CMemoryOutStream();
|
||||
CMemoryOutStream(void *Data, unsigned long Size, IOUtil::EEndianness mDataEndianness);
|
||||
CMemoryOutStream(void *pData, unsigned long Size, IOUtil::EEndianness mDataEndianness);
|
||||
~CMemoryOutStream();
|
||||
void SetData(void *Data, unsigned long Size, IOUtil::EEndianness mDataEndianness);
|
||||
void SetData(void *pData, unsigned long Size, IOUtil::EEndianness mDataEndianness);
|
||||
|
||||
void WriteBytes(void *src, unsigned long count);
|
||||
void WriteBytes(void *pSrc, unsigned long count);
|
||||
bool Seek(long offset, long origin);
|
||||
long Tell() const;
|
||||
bool EoF() const;
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
#include "COutputStream.h"
|
||||
|
||||
COutputStream::~COutputStream()
|
||||
{
|
||||
}
|
||||
|
||||
void COutputStream::WriteByte(char Val)
|
||||
{
|
||||
WriteBytes(&Val, 1);
|
||||
}
|
||||
|
||||
void COutputStream::WriteShort(short Val)
|
||||
{
|
||||
if (mDataEndianness != IOUtil::SystemEndianness) IOUtil::SwapBytes(Val);
|
||||
WriteBytes(&Val, 2);
|
||||
}
|
||||
|
||||
void COutputStream::WriteLong(long Val)
|
||||
{
|
||||
if (mDataEndianness != IOUtil::SystemEndianness) IOUtil::SwapBytes(Val);
|
||||
WriteBytes(&Val, 4);
|
||||
}
|
||||
|
||||
void COutputStream::WriteLongLong(long long Val)
|
||||
{
|
||||
if (mDataEndianness != IOUtil::SystemEndianness) IOUtil::SwapBytes(Val);
|
||||
WriteBytes(&Val, 8);
|
||||
}
|
||||
|
||||
void COutputStream::WriteFloat(float Val)
|
||||
{
|
||||
if (mDataEndianness != IOUtil::SystemEndianness) IOUtil::SwapBytes(Val);
|
||||
WriteBytes(&Val, 4);
|
||||
}
|
||||
|
||||
void COutputStream::WriteDouble(double Val)
|
||||
{
|
||||
if (mDataEndianness != IOUtil::SystemEndianness) IOUtil::SwapBytes(Val);
|
||||
WriteBytes(&Val, 8);
|
||||
}
|
||||
|
||||
void COutputStream::WriteString(std::string Val)
|
||||
{
|
||||
for (unsigned int i = 0; i < Val.size(); i++)
|
||||
WriteByte(Val[i]);
|
||||
|
||||
if ((Val.empty()) || (Val.back() != '\0'))
|
||||
WriteByte(0);
|
||||
}
|
||||
|
||||
void COutputStream::WriteString(std::string Val, unsigned long Count, bool Terminate)
|
||||
{
|
||||
for (unsigned int i = 0; i < Count; i++)
|
||||
WriteByte(Val[i]);
|
||||
|
||||
if (Terminate && (Val[Count-1] != '\0'))
|
||||
WriteByte(0);
|
||||
}
|
||||
|
||||
void COutputStream::WriteWString(std::wstring Val)
|
||||
{
|
||||
for (unsigned int i = 0; i < Val.size(); i++)
|
||||
WriteShort(Val[i]);
|
||||
|
||||
if ((!Val.empty()) && (Val.back() != '\0'))
|
||||
WriteShort(0);
|
||||
}
|
||||
|
||||
void COutputStream::WriteWString(std::wstring Val, unsigned long Count, bool Terminate)
|
||||
{
|
||||
for (unsigned int i = 0; i < Count; i++)
|
||||
WriteShort(Val[i]);
|
||||
|
||||
if (Terminate && (Val[Count-1] != 0))
|
||||
WriteShort(0);
|
||||
}
|
||||
|
||||
void COutputStream::WriteToBoundary(unsigned long Boundary, char Fill)
|
||||
{
|
||||
long Num = Boundary - (Tell() % Boundary);
|
||||
if (Num == Boundary) return;
|
||||
for (int i = 0; i < Num; i++)
|
||||
WriteByte(Fill);
|
||||
}
|
||||
|
||||
void COutputStream::SetEndianness(IOUtil::EEndianness Endianness)
|
||||
{
|
||||
mDataEndianness = Endianness;
|
||||
}
|
||||
|
||||
void COutputStream::SetDestString(const std::string &Dest)
|
||||
{
|
||||
mDataDest = Dest;
|
||||
}
|
||||
|
||||
IOUtil::EEndianness COutputStream::GetEndianness() const
|
||||
{
|
||||
return mDataEndianness;
|
||||
}
|
||||
|
||||
std::string COutputStream::GetDestString() const
|
||||
{
|
||||
return mDataDest;
|
||||
}
|
||||
|
||||
bool COutputStream::Seek64(long long Offset, long Origin)
|
||||
{
|
||||
return Seek((long) Offset, Origin);
|
||||
}
|
||||
|
||||
long long COutputStream::Tell64() const
|
||||
{
|
||||
return (long long) (Tell());
|
||||
}
|
||||
@@ -2,19 +2,19 @@
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
CTextInStream::CTextInStream(std::string File)
|
||||
CTextInStream::CTextInStream(const std::string& rkFile)
|
||||
{
|
||||
mFStream = nullptr;
|
||||
Open(File);
|
||||
mpFStream = nullptr;
|
||||
Open(rkFile);
|
||||
}
|
||||
|
||||
CTextInStream::CTextInStream(CTextInStream& src)
|
||||
CTextInStream::CTextInStream(const CTextInStream& rkSrc)
|
||||
{
|
||||
mFStream = nullptr;
|
||||
Open(src.mFileName);
|
||||
mpFStream = nullptr;
|
||||
Open(rkSrc.mFileName);
|
||||
|
||||
if (src.IsValid())
|
||||
Seek(src.Tell(), SEEK_SET);
|
||||
if (rkSrc.IsValid())
|
||||
Seek(rkSrc.Tell(), SEEK_SET);
|
||||
}
|
||||
|
||||
CTextInStream::~CTextInStream()
|
||||
@@ -23,13 +23,13 @@ CTextInStream::~CTextInStream()
|
||||
Close();
|
||||
}
|
||||
|
||||
void CTextInStream::Open(std::string File)
|
||||
void CTextInStream::Open(const std::string& rkFile)
|
||||
{
|
||||
if (IsValid())
|
||||
Close();
|
||||
|
||||
fopen_s(&mFStream, File.c_str(), "r");
|
||||
mFileName = File;
|
||||
fopen_s(&mpFStream, rkFile.c_str(), "r");
|
||||
mFileName = rkFile;
|
||||
|
||||
if (IsValid())
|
||||
{
|
||||
@@ -44,23 +44,23 @@ void CTextInStream::Open(std::string File)
|
||||
void CTextInStream::Close()
|
||||
{
|
||||
if (IsValid())
|
||||
fclose(mFStream);
|
||||
mFStream = nullptr;
|
||||
fclose(mpFStream);
|
||||
mpFStream = nullptr;
|
||||
}
|
||||
|
||||
void CTextInStream::Scan(const char *Format, ... )
|
||||
void CTextInStream::Scan(const char *pkFormat, ... )
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
|
||||
va_list Args;
|
||||
va_start(Args, Format);
|
||||
vfscanf(mFStream, Format, Args);
|
||||
va_start(Args, pkFormat);
|
||||
vfscanf(mpFStream, pkFormat, Args);
|
||||
}
|
||||
|
||||
char CTextInStream::GetChar()
|
||||
{
|
||||
if (!IsValid()) return 0;
|
||||
return (char) fgetc(mFStream);
|
||||
return (char) fgetc(mpFStream);
|
||||
}
|
||||
|
||||
std::string CTextInStream::GetString()
|
||||
@@ -68,20 +68,20 @@ std::string CTextInStream::GetString()
|
||||
if (!IsValid()) return "";
|
||||
|
||||
char Buf[0x1000];
|
||||
fgets(Buf, 0x1000, mFStream);
|
||||
fgets(Buf, 0x1000, mpFStream);
|
||||
return std::string(Buf);
|
||||
}
|
||||
|
||||
long CTextInStream::Seek(long Offset, long Origin)
|
||||
{
|
||||
if (!IsValid()) return 1;
|
||||
return fseek(mFStream, Offset, Origin);
|
||||
return fseek(mpFStream, Offset, Origin);
|
||||
}
|
||||
|
||||
long CTextInStream::Tell() const
|
||||
{
|
||||
if (!IsValid()) return 0;
|
||||
return ftell(mFStream);
|
||||
return ftell(mpFStream);
|
||||
}
|
||||
|
||||
bool CTextInStream::EoF() const
|
||||
@@ -91,7 +91,7 @@ bool CTextInStream::EoF() const
|
||||
|
||||
bool CTextInStream::IsValid() const
|
||||
{
|
||||
return (mFStream != 0);
|
||||
return (mpFStream != 0);
|
||||
}
|
||||
|
||||
long CTextInStream::Size() const
|
||||
|
||||
@@ -6,19 +6,19 @@
|
||||
|
||||
class CTextInStream
|
||||
{
|
||||
FILE *mFStream;
|
||||
FILE *mpFStream;
|
||||
std::string mFileName;
|
||||
long mFileSize;
|
||||
|
||||
public:
|
||||
CTextInStream();
|
||||
CTextInStream(std::string File);
|
||||
CTextInStream(CTextInStream& src);
|
||||
CTextInStream(const std::string& rkFile);
|
||||
CTextInStream(const CTextInStream& rkSrc);
|
||||
~CTextInStream();
|
||||
void Open(std::string File);
|
||||
void Open(const std::string& rkFile);
|
||||
void Close();
|
||||
|
||||
void Scan(const char *Format, ... );
|
||||
void Scan(const char *pkFormat, ... );
|
||||
char GetChar();
|
||||
std::string GetString();
|
||||
|
||||
|
||||
@@ -3,23 +3,23 @@
|
||||
|
||||
CTextOutStream::CTextOutStream()
|
||||
{
|
||||
mFStream = nullptr;
|
||||
mpFStream = nullptr;
|
||||
mSize = 0;
|
||||
}
|
||||
|
||||
CTextOutStream::CTextOutStream(std::string File)
|
||||
CTextOutStream::CTextOutStream(const std::string& rkFile)
|
||||
{
|
||||
mFStream = nullptr;
|
||||
Open(File.c_str());
|
||||
mpFStream = nullptr;
|
||||
Open(rkFile.c_str());
|
||||
}
|
||||
|
||||
CTextOutStream::CTextOutStream(CTextOutStream& src)
|
||||
CTextOutStream::CTextOutStream(const CTextOutStream& rkSrc)
|
||||
{
|
||||
mFStream = nullptr;
|
||||
Open(src.mFileName);
|
||||
mpFStream = nullptr;
|
||||
Open(rkSrc.mFileName);
|
||||
|
||||
if (src.IsValid())
|
||||
Seek(src.Tell(), SEEK_SET);
|
||||
if (rkSrc.IsValid())
|
||||
Seek(rkSrc.Tell(), SEEK_SET);
|
||||
}
|
||||
|
||||
CTextOutStream::~CTextOutStream()
|
||||
@@ -28,54 +28,54 @@ CTextOutStream::~CTextOutStream()
|
||||
Close();
|
||||
}
|
||||
|
||||
void CTextOutStream::Open(std::string File)
|
||||
void CTextOutStream::Open(const std::string& rkFile)
|
||||
{
|
||||
fopen_s(&mFStream, File.c_str(), "w");
|
||||
mFileName = File;
|
||||
fopen_s(&mpFStream, rkFile.c_str(), "w");
|
||||
mFileName = rkFile;
|
||||
mSize = 0;
|
||||
}
|
||||
|
||||
void CTextOutStream::Close()
|
||||
{
|
||||
if (IsValid())
|
||||
fclose(mFStream);
|
||||
mFStream = nullptr;
|
||||
fclose(mpFStream);
|
||||
mpFStream = nullptr;
|
||||
mSize = 0;
|
||||
}
|
||||
|
||||
void CTextOutStream::Print(const char *Format, ... )
|
||||
void CTextOutStream::Print(const char *pkFormat, ... )
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
|
||||
va_list Args;
|
||||
va_start(Args, Format);
|
||||
vfprintf(mFStream, Format, Args);
|
||||
va_start(Args, pkFormat);
|
||||
vfprintf(mpFStream, pkFormat, Args);
|
||||
}
|
||||
|
||||
void CTextOutStream::WriteChar(char c)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
fputc(c, mFStream);
|
||||
fputc(c, mpFStream);
|
||||
if ((unsigned long) Tell() > mSize) mSize = Tell();
|
||||
}
|
||||
|
||||
void CTextOutStream::WriteString(std::string Str)
|
||||
void CTextOutStream::WriteString(const std::string& rkStr)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
fputs(Str.c_str(), mFStream);
|
||||
fputs(rkStr.c_str(), mpFStream);
|
||||
if ((unsigned long) Tell() > mSize) mSize = Tell();
|
||||
}
|
||||
|
||||
bool CTextOutStream::Seek(long Offset, long Origin)
|
||||
{
|
||||
if (!IsValid()) return false;
|
||||
return (fseek(mFStream, Offset, Origin) != 0);
|
||||
return (fseek(mpFStream, Offset, Origin) != 0);
|
||||
}
|
||||
|
||||
long CTextOutStream::Tell() const
|
||||
{
|
||||
if (!IsValid()) return 0;
|
||||
return ftell(mFStream);
|
||||
return ftell(mpFStream);
|
||||
}
|
||||
|
||||
bool CTextOutStream::EoF() const
|
||||
@@ -85,7 +85,7 @@ bool CTextOutStream::EoF() const
|
||||
|
||||
bool CTextOutStream::IsValid() const
|
||||
{
|
||||
return (mFStream != 0);
|
||||
return (mpFStream != 0);
|
||||
}
|
||||
|
||||
long CTextOutStream::Size() const
|
||||
|
||||
@@ -5,21 +5,21 @@
|
||||
|
||||
class CTextOutStream
|
||||
{
|
||||
FILE *mFStream;
|
||||
FILE *mpFStream;
|
||||
std::string mFileName;
|
||||
unsigned long mSize;
|
||||
|
||||
public:
|
||||
CTextOutStream();
|
||||
CTextOutStream(std::string File);
|
||||
CTextOutStream(CTextOutStream& src);
|
||||
CTextOutStream(const std::string& rkFile);
|
||||
CTextOutStream(const CTextOutStream& rkSrc);
|
||||
~CTextOutStream();
|
||||
void Open(std::string file);
|
||||
void Open(const std::string& file);
|
||||
void Close();
|
||||
|
||||
void Print(const char *Format, ... );
|
||||
void Print(const char *pkFormat, ... );
|
||||
void WriteChar(char c);
|
||||
void WriteString(std::string Str);
|
||||
void WriteString(const std::string& Str);
|
||||
|
||||
bool Seek(long Offset, long Origin);
|
||||
long Tell() const;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
CVectorOutStream::CVectorOutStream()
|
||||
{
|
||||
mDataEndianness = IOUtil::BigEndian;
|
||||
mDataEndianness = IOUtil::eBigEndian;
|
||||
mPos = 0;
|
||||
mUsed = 0;
|
||||
}
|
||||
@@ -26,14 +26,14 @@ CVectorOutStream::~CVectorOutStream()
|
||||
{
|
||||
}
|
||||
|
||||
void CVectorOutStream::WriteBytes(void *src, unsigned long Count)
|
||||
void CVectorOutStream::WriteBytes(void *pSrc, unsigned long Count)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
|
||||
if ((mPos + Count) > mVector.size())
|
||||
mVector.resize(mPos + Count);
|
||||
|
||||
memcpy(mVector.data() + mPos, src, Count);
|
||||
memcpy(mVector.data() + mPos, pSrc, Count);
|
||||
mPos += Count;
|
||||
if (mPos > mUsed) mUsed = mPos;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#ifndef CVECTOROUTSTREAM_H
|
||||
#define CVECTOROUTSTREAM_H
|
||||
|
||||
#include "COutputStream.h"
|
||||
#include "IOutputStream.h"
|
||||
#include <vector>
|
||||
|
||||
class CVectorOutStream : public COutputStream
|
||||
class CVectorOutStream : public IOutputStream
|
||||
{
|
||||
std::vector<char> mVector;
|
||||
long mPos;
|
||||
@@ -16,7 +16,7 @@ public:
|
||||
CVectorOutStream(unsigned long InitialSize, IOUtil::EEndianness DataEndianness);
|
||||
~CVectorOutStream();
|
||||
|
||||
void WriteBytes(void *src, unsigned long Count);
|
||||
void WriteBytes(void *pSrc, unsigned long Count);
|
||||
bool Seek(long Offset, long Origin);
|
||||
long Tell() const;
|
||||
bool EoF() const;
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
|
||||
#include "IOUtil.h"
|
||||
|
||||
#include "CInputStream.h"
|
||||
#include "IInputStream.h"
|
||||
#include "CFileInStream.h"
|
||||
#include "CMemoryInStream.h"
|
||||
#include "CTextInStream.h"
|
||||
|
||||
#include "COutputStream.h"
|
||||
#include "IOutputStream.h"
|
||||
#include "CFileOutStream.h"
|
||||
#include "CMemoryOutStream.h"
|
||||
#include "CVectorOutStream.h"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
QT -= core gui
|
||||
QMAKE_CXXFLAGS += /WX
|
||||
DEFINES += PWE_FILEIO
|
||||
|
||||
CONFIG += staticlib
|
||||
TEMPLATE = lib
|
||||
@@ -32,25 +33,25 @@ CONFIG (release, debug|release) {
|
||||
HEADERS += \
|
||||
CFileInStream.h \
|
||||
CFileOutStream.h \
|
||||
CInputStream.h \
|
||||
CMemoryInStream.h \
|
||||
CMemoryOutStream.h \
|
||||
COutputStream.h \
|
||||
CTextInStream.h \
|
||||
CTextOutStream.h \
|
||||
CVectorOutStream.h \
|
||||
FileIO.h \
|
||||
IOUtil.h
|
||||
IOUtil.h \
|
||||
IInputStream.h \
|
||||
IOutputStream.h
|
||||
|
||||
# Source Files
|
||||
SOURCES += \
|
||||
CFileInStream.cpp \
|
||||
CFileOutStream.cpp \
|
||||
CInputStream.cpp \
|
||||
CMemoryInStream.cpp \
|
||||
CMemoryOutStream.cpp \
|
||||
COutputStream.cpp \
|
||||
CTextInStream.cpp \
|
||||
CTextOutStream.cpp \
|
||||
CVectorOutStream.cpp \
|
||||
IOUtil.cpp
|
||||
IOUtil.cpp \
|
||||
IInputStream.cpp \
|
||||
IOutputStream.cpp
|
||||
|
||||
@@ -1,57 +1,57 @@
|
||||
#include "CInputStream.h"
|
||||
#include "IInputStream.h"
|
||||
|
||||
CInputStream::~CInputStream()
|
||||
IInputStream::~IInputStream()
|
||||
{
|
||||
}
|
||||
|
||||
char CInputStream::ReadByte()
|
||||
char IInputStream::ReadByte()
|
||||
{
|
||||
char Val;
|
||||
ReadBytes(&Val, 1);
|
||||
return Val;
|
||||
}
|
||||
|
||||
short CInputStream::ReadShort()
|
||||
short IInputStream::ReadShort()
|
||||
{
|
||||
short Val;
|
||||
ReadBytes(&Val, 2);
|
||||
if (mDataEndianness != IOUtil::SystemEndianness) IOUtil::SwapBytes(Val);
|
||||
if (mDataEndianness != IOUtil::kSystemEndianness) IOUtil::SwapBytes(Val);
|
||||
return Val;
|
||||
}
|
||||
|
||||
long CInputStream::ReadLong()
|
||||
long IInputStream::ReadLong()
|
||||
{
|
||||
long Val;
|
||||
ReadBytes(&Val, 4);
|
||||
if (mDataEndianness != IOUtil::SystemEndianness) IOUtil::SwapBytes(Val);
|
||||
if (mDataEndianness != IOUtil::kSystemEndianness) IOUtil::SwapBytes(Val);
|
||||
return Val;
|
||||
}
|
||||
|
||||
long long CInputStream::ReadLongLong()
|
||||
long long IInputStream::ReadLongLong()
|
||||
{
|
||||
long long Val;
|
||||
ReadBytes(&Val, 8);
|
||||
if (mDataEndianness != IOUtil::SystemEndianness) IOUtil::SwapBytes(Val);
|
||||
if (mDataEndianness != IOUtil::kSystemEndianness) IOUtil::SwapBytes(Val);
|
||||
return Val;
|
||||
}
|
||||
|
||||
float CInputStream::ReadFloat()
|
||||
float IInputStream::ReadFloat()
|
||||
{
|
||||
float Val;
|
||||
ReadBytes(&Val, 4);
|
||||
if (mDataEndianness != IOUtil::SystemEndianness) IOUtil::SwapBytes(Val);
|
||||
if (mDataEndianness != IOUtil::kSystemEndianness) IOUtil::SwapBytes(Val);
|
||||
return Val;
|
||||
}
|
||||
|
||||
double CInputStream::ReadDouble()
|
||||
double IInputStream::ReadDouble()
|
||||
{
|
||||
double Val;
|
||||
ReadBytes(&Val, 8);
|
||||
if (mDataEndianness != IOUtil::SystemEndianness) IOUtil::SwapBytes(Val);
|
||||
if (mDataEndianness != IOUtil::kSystemEndianness) IOUtil::SwapBytes(Val);
|
||||
return Val;
|
||||
}
|
||||
|
||||
std::string CInputStream::ReadString()
|
||||
std::string IInputStream::ReadString()
|
||||
{
|
||||
std::string Str;
|
||||
char c = 1;
|
||||
@@ -65,7 +65,7 @@ std::string CInputStream::ReadString()
|
||||
return Str;
|
||||
}
|
||||
|
||||
std::string CInputStream::ReadString(unsigned long Count)
|
||||
std::string IInputStream::ReadString(unsigned long Count)
|
||||
{
|
||||
std::string Str(Count, 0);
|
||||
|
||||
@@ -75,7 +75,7 @@ std::string CInputStream::ReadString(unsigned long Count)
|
||||
return Str;
|
||||
}
|
||||
|
||||
std::wstring CInputStream::ReadWString()
|
||||
std::wstring IInputStream::ReadWString()
|
||||
{
|
||||
std::wstring WStr;
|
||||
short c = 1;
|
||||
@@ -89,7 +89,7 @@ std::wstring CInputStream::ReadWString()
|
||||
return WStr;
|
||||
}
|
||||
|
||||
std::wstring CInputStream::ReadWString(unsigned long Count)
|
||||
std::wstring IInputStream::ReadWString(unsigned long Count)
|
||||
{
|
||||
std::wstring WStr(Count, 0);
|
||||
|
||||
@@ -100,81 +100,81 @@ std::wstring CInputStream::ReadWString(unsigned long Count)
|
||||
}
|
||||
|
||||
|
||||
char CInputStream::PeekByte()
|
||||
char IInputStream::PeekByte()
|
||||
{
|
||||
char Val = ReadByte();
|
||||
Seek(-1, SEEK_CUR);
|
||||
return Val;
|
||||
}
|
||||
|
||||
short CInputStream::PeekShort()
|
||||
short IInputStream::PeekShort()
|
||||
{
|
||||
short Val = ReadShort();
|
||||
Seek(-2, SEEK_CUR);
|
||||
return Val;
|
||||
}
|
||||
|
||||
long CInputStream::PeekLong()
|
||||
long IInputStream::PeekLong()
|
||||
{
|
||||
long Val = ReadLong();
|
||||
Seek(-4, SEEK_CUR);
|
||||
return Val;
|
||||
}
|
||||
|
||||
long long CInputStream::PeekLongLong()
|
||||
long long IInputStream::PeekLongLong()
|
||||
{
|
||||
long long Val = ReadLongLong();
|
||||
Seek(-8, SEEK_CUR);
|
||||
return Val;
|
||||
}
|
||||
|
||||
float CInputStream::PeekFloat()
|
||||
float IInputStream::PeekFloat()
|
||||
{
|
||||
float Val = ReadFloat();
|
||||
Seek(-4, SEEK_CUR);
|
||||
return Val;
|
||||
}
|
||||
|
||||
double CInputStream::PeekDouble()
|
||||
double IInputStream::PeekDouble()
|
||||
{
|
||||
double Val = ReadDouble();
|
||||
Seek(-8, SEEK_CUR);
|
||||
return Val;
|
||||
}
|
||||
|
||||
void CInputStream::SeekToBoundary(unsigned long Boundary)
|
||||
void IInputStream::SeekToBoundary(unsigned long Boundary)
|
||||
{
|
||||
long Num = Boundary - (Tell() % Boundary);
|
||||
if (Num == Boundary) return;
|
||||
else Seek(Num, SEEK_CUR);
|
||||
}
|
||||
|
||||
void CInputStream::SetEndianness(IOUtil::EEndianness Endianness)
|
||||
void IInputStream::SetEndianness(IOUtil::EEndianness Endianness)
|
||||
{
|
||||
mDataEndianness = Endianness;
|
||||
}
|
||||
|
||||
void CInputStream::SetSourceString(const std::string& source)
|
||||
void IInputStream::SetSourceString(const std::string& rkSource)
|
||||
{
|
||||
mDataSource = source;
|
||||
mDataSource = rkSource;
|
||||
}
|
||||
|
||||
IOUtil::EEndianness CInputStream::GetEndianness() const
|
||||
IOUtil::EEndianness IInputStream::GetEndianness() const
|
||||
{
|
||||
return mDataEndianness;
|
||||
}
|
||||
|
||||
std::string CInputStream::GetSourceString() const
|
||||
std::string IInputStream::GetSourceString() const
|
||||
{
|
||||
return mDataSource;
|
||||
}
|
||||
|
||||
bool CInputStream::Seek64(long long Offset, long Origin)
|
||||
bool IInputStream::Seek64(long long Offset, long Origin)
|
||||
{
|
||||
return Seek((long) Offset, Origin);
|
||||
}
|
||||
|
||||
long long CInputStream::Tell64() const
|
||||
long long IInputStream::Tell64() const
|
||||
{
|
||||
return (long long) Tell();
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
#ifndef CINPUTSTREAM_H
|
||||
#define CINPUTSTREAM_H
|
||||
#ifndef IINPUTSTREAM_H
|
||||
#define IINPUTSTREAM_H
|
||||
|
||||
#include "IOUtil.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class CInputStream
|
||||
class IInputStream
|
||||
{
|
||||
protected:
|
||||
IOUtil::EEndianness mDataEndianness;
|
||||
@@ -32,12 +32,12 @@ public:
|
||||
|
||||
void SeekToBoundary(unsigned long boundary);
|
||||
void SetEndianness(IOUtil::EEndianness endianness);
|
||||
void SetSourceString(const std::string& source);
|
||||
void SetSourceString(const std::string& rkSource);
|
||||
IOUtil::EEndianness GetEndianness() const;
|
||||
std::string GetSourceString() const;
|
||||
|
||||
virtual ~CInputStream();
|
||||
virtual void ReadBytes(void *dst, unsigned long count) = 0;
|
||||
virtual ~IInputStream();
|
||||
virtual void ReadBytes(void *pDst, unsigned long count) = 0;
|
||||
virtual bool Seek(long offset, long origin) = 0;
|
||||
virtual bool Seek64(long long offset, long origin);
|
||||
virtual long Tell() const = 0;
|
||||
@@ -47,4 +47,4 @@ public:
|
||||
virtual long Size() const = 0;
|
||||
};
|
||||
|
||||
#endif // CINPUTSTREAM_H
|
||||
#endif // IINPUTSTREAM_H
|
||||
@@ -8,72 +8,72 @@ namespace IOUtil
|
||||
// 0x01000000 - Little Endian
|
||||
// 0x00000001 - Big Endian
|
||||
long EndianTest = 1;
|
||||
if (*(char*)&EndianTest == 1) return LittleEndian;
|
||||
else return BigEndian;
|
||||
if (*(char*)&EndianTest == 1) return eLittleEndian;
|
||||
else return eBigEndian;
|
||||
}
|
||||
const EEndianness SystemEndianness = FindSystemEndianness();
|
||||
const EEndianness kSystemEndianness = FindSystemEndianness();
|
||||
|
||||
void SwapBytes(short& Val)
|
||||
void SwapBytes(short& rVal)
|
||||
{
|
||||
Val = (((Val & 0x00FF) << 8) |
|
||||
((Val & 0xFF00) >> 8));
|
||||
rVal = (((rVal & 0x00FF) << 8) |
|
||||
((rVal & 0xFF00) >> 8));
|
||||
}
|
||||
|
||||
void SwapBytes(unsigned short& Val)
|
||||
void SwapBytes(unsigned short& rVal)
|
||||
{
|
||||
Val = (((Val & 0x00FF) << 8) |
|
||||
((Val & 0xFF00) >> 8));
|
||||
rVal = (((rVal & 0x00FF) << 8) |
|
||||
((rVal & 0xFF00) >> 8));
|
||||
}
|
||||
|
||||
void SwapBytes(long& Val)
|
||||
void SwapBytes(long& rVal)
|
||||
{
|
||||
Val = (((Val & 0x000000FF) << 24) |
|
||||
((Val & 0x0000FF00) << 8) |
|
||||
((Val & 0x00FF0000) >> 8) |
|
||||
((Val & 0xFF000000) >> 24));
|
||||
rVal = (((rVal & 0x000000FF) << 24) |
|
||||
((rVal & 0x0000FF00) << 8) |
|
||||
((rVal & 0x00FF0000) >> 8) |
|
||||
((rVal & 0xFF000000) >> 24));
|
||||
}
|
||||
|
||||
void SwapBytes(unsigned long& Val)
|
||||
void SwapBytes(unsigned long& rVal)
|
||||
{
|
||||
Val = (((Val & 0x000000FF) << 24) |
|
||||
((Val & 0x0000FF00) << 8) |
|
||||
((Val & 0x00FF0000) >> 8) |
|
||||
((Val & 0xFF000000) >> 24));
|
||||
rVal = (((rVal & 0x000000FF) << 24) |
|
||||
((rVal & 0x0000FF00) << 8) |
|
||||
((rVal & 0x00FF0000) >> 8) |
|
||||
((rVal & 0xFF000000) >> 24));
|
||||
}
|
||||
|
||||
void SwapBytes(long long& Val)
|
||||
void SwapBytes(long long& rVal)
|
||||
{
|
||||
Val = (((Val & 0x00000000000000FF) << 56) |
|
||||
((Val & 0x000000000000FF00) << 40) |
|
||||
((Val & 0x0000000000FF0000) << 24) |
|
||||
((Val & 0x00000000FF000000) << 8) |
|
||||
((Val & 0x000000FF00000000) >> 8) |
|
||||
((Val & 0x0000FF0000000000) >> 24) |
|
||||
((Val & 0x00FF000000000000) >> 40) |
|
||||
((Val & 0xFF00000000000000) >> 56));
|
||||
rVal = (((rVal & 0x00000000000000FF) << 56) |
|
||||
((rVal & 0x000000000000FF00) << 40) |
|
||||
((rVal & 0x0000000000FF0000) << 24) |
|
||||
((rVal & 0x00000000FF000000) << 8) |
|
||||
((rVal & 0x000000FF00000000) >> 8) |
|
||||
((rVal & 0x0000FF0000000000) >> 24) |
|
||||
((rVal & 0x00FF000000000000) >> 40) |
|
||||
((rVal & 0xFF00000000000000) >> 56));
|
||||
}
|
||||
|
||||
void SwapBytes(unsigned long long &Val)
|
||||
void SwapBytes(unsigned long long& rVal)
|
||||
{
|
||||
Val = (((Val & 0x00000000000000FF) << 56) |
|
||||
((Val & 0x000000000000FF00) << 40) |
|
||||
((Val & 0x0000000000FF0000) << 24) |
|
||||
((Val & 0x00000000FF000000) << 8) |
|
||||
((Val & 0x000000FF00000000) >> 8) |
|
||||
((Val & 0x0000FF0000000000) >> 24) |
|
||||
((Val & 0x00FF000000000000) >> 40) |
|
||||
((Val & 0xFF00000000000000) >> 56));
|
||||
rVal = (((rVal & 0x00000000000000FF) << 56) |
|
||||
((rVal & 0x000000000000FF00) << 40) |
|
||||
((rVal & 0x0000000000FF0000) << 24) |
|
||||
((rVal & 0x00000000FF000000) << 8) |
|
||||
((rVal & 0x000000FF00000000) >> 8) |
|
||||
((rVal & 0x0000FF0000000000) >> 24) |
|
||||
((rVal & 0x00FF000000000000) >> 40) |
|
||||
((rVal & 0xFF00000000000000) >> 56));
|
||||
}
|
||||
|
||||
void SwapBytes(float& Val)
|
||||
void SwapBytes(float& rVal)
|
||||
{
|
||||
long* ptr = (long*) &Val;
|
||||
SwapBytes(*ptr);
|
||||
long* pPtr = (long*) &rVal;
|
||||
SwapBytes(*pPtr);
|
||||
}
|
||||
|
||||
void SwapBytes(double& Val)
|
||||
void SwapBytes(double& rVal)
|
||||
{
|
||||
long long* ptr = (long long*) &Val;
|
||||
SwapBytes(*ptr);
|
||||
long long* pPtr = (long long*) &rVal;
|
||||
SwapBytes(*pPtr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,19 +4,19 @@
|
||||
namespace IOUtil
|
||||
{
|
||||
enum EEndianness {
|
||||
LittleEndian,
|
||||
BigEndian
|
||||
eLittleEndian,
|
||||
eBigEndian
|
||||
};
|
||||
extern const EEndianness SystemEndianness;
|
||||
extern const EEndianness kSystemEndianness;
|
||||
|
||||
void SwapBytes(short& Val);
|
||||
void SwapBytes(unsigned short& Val);
|
||||
void SwapBytes(long& Val);
|
||||
void SwapBytes(unsigned long& Val);
|
||||
void SwapBytes(long long& Val);
|
||||
void SwapBytes(unsigned long long& Val);
|
||||
void SwapBytes(float& Val);
|
||||
void SwapBytes(double& Val);
|
||||
void SwapBytes(short& rVal);
|
||||
void SwapBytes(unsigned short& rVal);
|
||||
void SwapBytes(long& rVal);
|
||||
void SwapBytes(unsigned long& rVal);
|
||||
void SwapBytes(long long& rVal);
|
||||
void SwapBytes(unsigned long long& rVal);
|
||||
void SwapBytes(float& rVal);
|
||||
void SwapBytes(double& rVal);
|
||||
}
|
||||
|
||||
#endif // IOUTIL_H
|
||||
|
||||
114
src/FileIO/IOutputStream.cpp
Normal file
114
src/FileIO/IOutputStream.cpp
Normal file
@@ -0,0 +1,114 @@
|
||||
#include "IOutputStream.h"
|
||||
|
||||
IOutputStream::~IOutputStream()
|
||||
{
|
||||
}
|
||||
|
||||
void IOutputStream::WriteByte(char Val)
|
||||
{
|
||||
WriteBytes(&Val, 1);
|
||||
}
|
||||
|
||||
void IOutputStream::WriteShort(short Val)
|
||||
{
|
||||
if (mDataEndianness != IOUtil::kSystemEndianness) IOUtil::SwapBytes(Val);
|
||||
WriteBytes(&Val, 2);
|
||||
}
|
||||
|
||||
void IOutputStream::WriteLong(long Val)
|
||||
{
|
||||
if (mDataEndianness != IOUtil::kSystemEndianness) IOUtil::SwapBytes(Val);
|
||||
WriteBytes(&Val, 4);
|
||||
}
|
||||
|
||||
void IOutputStream::WriteLongLong(long long Val)
|
||||
{
|
||||
if (mDataEndianness != IOUtil::kSystemEndianness) IOUtil::SwapBytes(Val);
|
||||
WriteBytes(&Val, 8);
|
||||
}
|
||||
|
||||
void IOutputStream::WriteFloat(float Val)
|
||||
{
|
||||
if (mDataEndianness != IOUtil::kSystemEndianness) IOUtil::SwapBytes(Val);
|
||||
WriteBytes(&Val, 4);
|
||||
}
|
||||
|
||||
void IOutputStream::WriteDouble(double Val)
|
||||
{
|
||||
if (mDataEndianness != IOUtil::kSystemEndianness) IOUtil::SwapBytes(Val);
|
||||
WriteBytes(&Val, 8);
|
||||
}
|
||||
|
||||
void IOutputStream::WriteString(const std::string& rkVal)
|
||||
{
|
||||
for (unsigned int i = 0; i < rkVal.size(); i++)
|
||||
WriteByte(rkVal[i]);
|
||||
|
||||
if ((rkVal.empty()) || (rkVal.back() != '\0'))
|
||||
WriteByte(0);
|
||||
}
|
||||
|
||||
void IOutputStream::WriteString(const std::string& rkVal, unsigned long Count, bool Terminate)
|
||||
{
|
||||
for (unsigned int i = 0; i < Count; i++)
|
||||
WriteByte(rkVal[i]);
|
||||
|
||||
if (Terminate && (rkVal[Count-1] != '\0'))
|
||||
WriteByte(0);
|
||||
}
|
||||
|
||||
void IOutputStream::WriteWideString(const std::wstring& rkVal)
|
||||
{
|
||||
for (unsigned int i = 0; i < rkVal.size(); i++)
|
||||
WriteShort(rkVal[i]);
|
||||
|
||||
if ((!rkVal.empty()) && (rkVal.back() != '\0'))
|
||||
WriteShort(0);
|
||||
}
|
||||
|
||||
void IOutputStream::WriteWideString(const std::wstring& rkVal, unsigned long Count, bool Terminate)
|
||||
{
|
||||
for (unsigned int i = 0; i < Count; i++)
|
||||
WriteShort(rkVal[i]);
|
||||
|
||||
if (Terminate && (rkVal[Count-1] != 0))
|
||||
WriteShort(0);
|
||||
}
|
||||
|
||||
void IOutputStream::WriteToBoundary(unsigned long Boundary, char Fill)
|
||||
{
|
||||
long Num = Boundary - (Tell() % Boundary);
|
||||
if (Num == Boundary) return;
|
||||
for (int i = 0; i < Num; i++)
|
||||
WriteByte(Fill);
|
||||
}
|
||||
|
||||
void IOutputStream::SetEndianness(IOUtil::EEndianness Endianness)
|
||||
{
|
||||
mDataEndianness = Endianness;
|
||||
}
|
||||
|
||||
void IOutputStream::SetDestString(const std::string& rkDest)
|
||||
{
|
||||
mDataDest = rkDest;
|
||||
}
|
||||
|
||||
IOUtil::EEndianness IOutputStream::GetEndianness() const
|
||||
{
|
||||
return mDataEndianness;
|
||||
}
|
||||
|
||||
std::string IOutputStream::GetDestString() const
|
||||
{
|
||||
return mDataDest;
|
||||
}
|
||||
|
||||
bool IOutputStream::Seek64(long long Offset, long Origin)
|
||||
{
|
||||
return Seek((long) Offset, Origin);
|
||||
}
|
||||
|
||||
long long IOutputStream::Tell64() const
|
||||
{
|
||||
return (long long) (Tell());
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
#ifndef COUTPUTSTREAM_H
|
||||
#define COUTPUTSTREAM_H
|
||||
#ifndef IOUTPUTSTREAM_H
|
||||
#define IOUTPUTSTREAM_H
|
||||
|
||||
#include "IOUtil.h"
|
||||
#include <string>
|
||||
|
||||
class COutputStream
|
||||
class IOutputStream
|
||||
{
|
||||
protected:
|
||||
IOUtil::EEndianness mDataEndianness;
|
||||
@@ -17,19 +17,19 @@ public:
|
||||
void WriteLongLong(long long Val);
|
||||
void WriteFloat(float Val);
|
||||
void WriteDouble(double Val);
|
||||
void WriteString(std::string Val);
|
||||
void WriteString(std::string Val, unsigned long Count, bool Terminate = false);
|
||||
void WriteWString(std::wstring Val);
|
||||
void WriteWString(std::wstring Val, unsigned long Count, bool Terminate = false);
|
||||
void WriteString(const std::string& rkVal);
|
||||
void WriteString(const std::string& rkVal, unsigned long Count, bool Terminate = false);
|
||||
void WriteWideString(const std::wstring& rkVal);
|
||||
void WriteWideString(const std::wstring& rkVal, unsigned long Count, bool Terminate = false);
|
||||
|
||||
void WriteToBoundary(unsigned long Boundary, char Fill);
|
||||
void SetEndianness(IOUtil::EEndianness Endianness);
|
||||
void SetDestString(const std::string& Dest);
|
||||
void SetDestString(const std::string& rkDest);
|
||||
IOUtil::EEndianness GetEndianness() const;
|
||||
std::string GetDestString() const;
|
||||
|
||||
virtual ~COutputStream();
|
||||
virtual void WriteBytes(void *src, unsigned long Count) = 0;
|
||||
virtual ~IOutputStream();
|
||||
virtual void WriteBytes(void *pSrc, unsigned long Count) = 0;
|
||||
virtual bool Seek(long Offset, long Origin) = 0;
|
||||
virtual bool Seek64(long long Offset, long Origin);
|
||||
virtual long Tell() const = 0;
|
||||
Reference in New Issue
Block a user