Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Buffer.h"
- Buffer::Buffer(long long _size)
- {
- if(_size > 0)
- {
- size = _size;
- buffer = new unsigned char[size];
- }
- }
- Buffer::~Buffer()
- {
- if(size > 0)
- delete[] buffer;
- }
- long long Buffer::Size() { return size; }
- long long Buffer::Read() { return read; }
- long long Buffer::Written() { return written; }
- long long Buffer::RemainingSpace() { return size - written; }
- long long Buffer::RemainingData() { return written - read; }
- void Buffer::Reset() { read = written = 0; }
- unsigned char* Buffer::GetArray() { return buffer; }
- bool Buffer::tryWriteFloat(float val)
- {
- if(RemainingSpace() < 4) return false;
- register unsigned char* bytes = (unsigned char*)&val;
- buffer[written ] = bytes[3];
- buffer[written + 1] = bytes[2];
- buffer[written + 2] = bytes[1];
- buffer[written + 3] = bytes[0];
- written += 4;
- return true;
- }
- bool Buffer::tryWriteDouble(double val)
- {
- if(RemainingSpace() < 8) return false;
- register unsigned char* bytes = (unsigned char*)&val;
- buffer[written ] = bytes[7];
- buffer[written + 1] = bytes[6];
- buffer[written + 2] = bytes[5];
- buffer[written + 3] = bytes[4];
- buffer[written + 4] = bytes[3];
- buffer[written + 5] = bytes[2];
- buffer[written + 6] = bytes[1];
- buffer[written + 7] = bytes[0];
- written += 8;
- return true;
- }
- bool Buffer::tryReadFloat(float& val)
- {
- if(RemainingData() < 4) return false;
- register unsigned char* bytes = (unsigned char*)&val;
- bytes[read ] = buffer[3];
- bytes[read + 1] = buffer[2];
- bytes[read + 2] = buffer[1];
- bytes[read + 3] = buffer[0];
- read += 4;
- return true;
- }
- bool Buffer::tryReadDouble(double& val)
- {
- if(RemainingData() < 8) return false;
- register unsigned char* bytes = (unsigned char*)&val;
- bytes[read ] = buffer[7];
- bytes[read + 1] = buffer[6];
- bytes[read + 2] = buffer[5];
- bytes[read + 3] = buffer[4];
- bytes[read + 4] = buffer[3];
- bytes[read + 5] = buffer[2];
- bytes[read + 6] = buffer[1];
- bytes[read + 7] = buffer[0];
- read += 8;
- return true;
- }
Add Comment
Please, Sign In to add comment