summaryrefslogtreecommitdiffstats
path: root/source/core/stream.h
diff options
context:
space:
mode:
authorTim Foley <tfoley@nvidia.com>2017-06-15 15:21:20 -0700
committerTim Foley <tfoley@nvidia.com>2017-06-15 15:31:22 -0700
commit04d43cd71f081f1b8d2f0fd803a47cb6342e4fcd (patch)
tree199e9a54596c572015c7b0652e62b941418f483f /source/core/stream.h
parent205187b561c3b31fa931e73e8f7263f0c4b1de41 (diff)
Remove more "core" code that isn't used.
It is always easier to add back code when you need it, than it is to maintain code you aren't using.
Diffstat (limited to 'source/core/stream.h')
-rw-r--r--source/core/stream.h243
1 files changed, 2 insertions, 241 deletions
diff --git a/source/core/stream.h b/source/core/stream.h
index 1a5f96307..0f5991cb7 100644
--- a/source/core/stream.h
+++ b/source/core/stream.h
@@ -32,9 +32,10 @@ namespace Slang
Start, End, Current
};
- class Stream : public Slang::Object
+ class Stream
{
public:
+ virtual ~Stream() {}
virtual Int64 GetPosition()=0;
virtual void Seek(SeekOrigin origin, Int64 offset)=0;
virtual Int64 Read(void * buffer, Int64 length) = 0;
@@ -45,147 +46,6 @@ namespace Slang
virtual void Close() = 0;
};
- class BinaryReader
- {
- private:
- RefPtr<Stream> stream;
- inline void Throw(Int64 val)
- {
- if (val == 0)
- throw IOException("read operation failed.");
- }
- public:
- BinaryReader(RefPtr<Stream> stream)
- {
- this->stream = stream;
- }
- Stream * GetStream()
- {
- return stream.Ptr();
- }
- void ReleaseStream()
- {
- stream.Release();
- }
- template<typename T>
- void Read(T * buffer, int count)
- {
- stream->Read(buffer, sizeof(T)*(Int64)count);
- }
- template<typename T>
- void Read(T & buffer)
- {
- Throw(stream->Read(&buffer, sizeof(T)));
- }
- template<typename T>
- void Read(List<T> & buffer)
- {
- int count = ReadInt32();
- buffer.SetSize(count);
- Read(buffer.Buffer(), count);
- }
- void Read(String & buffer)
- {
- buffer = ReadString();
- }
- int ReadInt32()
- {
- int rs;
- Throw(stream->Read(&rs, sizeof(int)));
- return rs;
- }
- short ReadInt16()
- {
- short rs;
- Throw(stream->Read(&rs, sizeof(short)));
- return rs;
- }
- Int64 ReadInt64()
- {
- Int64 rs;
- Throw(stream->Read(&rs, sizeof(Int64)));
- return rs;
- }
- float ReadFloat()
- {
- float rs;
- Throw(stream->Read(&rs, sizeof(float)));
- return rs;
- }
- double ReadDouble()
- {
- double rs;
- Throw(stream->Read(&rs, sizeof(double)));
- return rs;
- }
- char ReadChar()
- {
- char rs;
- Throw(stream->Read(&rs, sizeof(char)));
- return rs;
- }
- String ReadString()
- {
- int len = ReadInt32();
- char * buffer = new char[len+1];
- try
- {
- Throw(stream->Read(buffer, len));
- }
- catch(IOException & e)
- {
- delete [] buffer;
- throw e;
- }
- buffer[len] = 0;
- return String::FromBuffer(buffer, len);
- }
- };
-
- class BinaryWriter
- {
- private:
- RefPtr<Stream> stream;
- public:
- BinaryWriter(RefPtr<Stream> stream)
- {
- this->stream = stream;
- }
- Stream * GetStream()
- {
- return stream.Ptr();
- }
- template<typename T>
- void Write(const T& val)
- {
- stream->Write(&val, sizeof(T));
- }
- template<typename T>
- void Write(T * buffer, int count)
- {
- stream->Write(buffer, sizeof(T)*(Int64)count);
- }
- template<typename T>
- void Write(const List<T> & list)
- {
- Write(list.Count());
- stream->Write(list.Buffer(), sizeof(T)*list.Count());
- }
- void Write(const String & str)
- {
- Write(str.Length());
- Write(str.Buffer(), str.Length());
- }
- void ReleaseStream()
- {
- stream.Release();
- }
- void Close()
- {
- stream->Close();
- }
- };
-
enum class FileMode
{
Create, Open, CreateNew, Append
@@ -222,105 +82,6 @@ namespace Slang
virtual void Close();
virtual bool IsEnd();
};
-
- class MemoryStream : public Stream
- {
- private:
- List<unsigned char> writeBuffer;
- ArrayView<unsigned char> readBuffer;
- int ptr = 0;
- bool isReadStream;
- public:
- MemoryStream()
- {
- isReadStream = false;
- }
- MemoryStream(unsigned char * mem, int length)
- {
- isReadStream = true;
- readBuffer = MakeArrayView(mem, length);
- }
- MemoryStream(ArrayView<unsigned char> source)
- {
- isReadStream = true;
- readBuffer = source;
- }
- virtual Int64 GetPosition()
- {
- return ptr;
- }
- virtual void Seek(SeekOrigin origin, Int64 offset)
- {
- if (origin == SeekOrigin::Start)
- ptr = (int)offset;
- else if (origin == SeekOrigin::End)
- {
- if (isReadStream)
- ptr = readBuffer.Count() + (int)offset;
- else
- ptr = writeBuffer.Count() + (int)offset;
- }
- }
- virtual Int64 Read(void * pbuffer, Int64 length)
- {
- Int64 i;
- for (i = 0; i < length; i++)
- {
- if (ptr + i < readBuffer.Count())
- {
- ((unsigned char*)pbuffer)[i] = readBuffer[(int)(ptr + i)];
- }
- else
- break;
- }
- return i;
- }
- virtual Int64 Write(const void * pbuffer, Int64 length)
- {
- writeBuffer.SetSize(ptr);
- if (pbuffer)
- writeBuffer.AddRange((unsigned char *)pbuffer, (int)length);
- else
- for (auto i = 0; i < length; i++)
- writeBuffer.Add(0);
- ptr = writeBuffer.Count();
- return length;
- }
- virtual bool CanRead()
- {
- return isReadStream;
- }
- virtual bool CanWrite()
- {
- return !isReadStream;
- }
- virtual void Close()
- {
- writeBuffer.SetSize(0);
- writeBuffer.Compress();
- }
- virtual bool IsEnd()
- {
- if (isReadStream)
- return ptr >= readBuffer.Count();
- else
- return ptr == writeBuffer.Count();
- }
- void * GetBuffer()
- {
- if (isReadStream)
- return readBuffer.Buffer();
- else
- return writeBuffer.Buffer();
- }
- int GetBufferSize()
- {
- if (isReadStream)
- return readBuffer.Count();
- else
- return writeBuffer.Count();
- }
- };
}
#endif