]> Dogcows Code - chaz/yoink/blobdiff - src/moof/packet.cc
the massive refactoring effort
[chaz/yoink] / src / moof / packet.cc
similarity index 60%
rename from src/Moof/Packet.cc
rename to src/moof/packet.cc
index 437438effd73803b814123f3bfbea4ab32c45be4..0440b7df5749760861dfdfc4a5c913220258a450 100644 (file)
@@ -23,7 +23,7 @@
 
 #include <SDL/SDL.h>
 
-#include "Packet.hh"
+#include "packet.hh"
 
 
 #ifndef bswap_16
@@ -92,116 +92,94 @@ static uint64_t ntohll(uint64_t x)
 }
 
 
-namespace Mf {
+namespace moof {
        
 
-Packet::Packet(size_t size) :
-       mBuffer((char*)malloc(size)),
-       mSize(size),
-       mR(0),
-       mW(0),
-       mOriginalW(0),
-       mBoolR(0),
-       mBoolW(0),
-       mBoolNumR(0),
-       mBoolNumW(0) {}
-
-Packet::Packet(const char* data, size_t size) :
-       mBuffer((char*)malloc(size)),
-       mSize(size),
-       mR(0),
-       mW(size),
-       mOriginalW(size),
-       mBoolR(0),
-       mBoolW(0),
-       mBoolNumR(0),
-       mBoolNumW(0)
-{
-       if (mBuffer) memcpy(mBuffer, data, size);
+packet::packet(size_t size) :
+       buffer_((char*)malloc(size)),
+       size_(size) {}
+
+packet::packet(const char* data, size_t size) :
+       buffer_((char*)malloc(size)),
+       size_(size),
+       state_(size),
+       saved_(size)
+{
+       if (buffer_) memcpy(buffer_, data, size);
        else throw std::length_error("out of memory");
 }
 
 
-Packet::Packet(const Packet& copy) :
-       mBuffer((char*)malloc(copy.mSize)),
-       mSize(copy.mSize),
-       mR(copy.mR),
-       mW(copy.mW),
-       mOriginalW(copy.mOriginalW),
-       mBoolR(copy.mBoolR),
-       mBoolW(copy.mBoolW),
-       mBoolNumR(copy.mBoolNumR),
-       mBoolNumW(copy.mBoolNumW)
+packet::packet(const packet& copy) :
+       buffer_((char*)malloc(copy.size_)),
+       size_(copy.size_),
+       state_(copy.state_),
+       saved_(copy.saved_)
 {
-       if (mBuffer) memcpy(mBuffer, copy.mBuffer, mSize);
+       if (buffer_) memcpy(buffer_, copy.buffer_, size_);
        else throw std::length_error("out of memory");
 }
 
-Packet& Packet::operator=(const Packet& copy)
+packet& packet::operator = (const packet& copy)
 {
-       free(mBuffer);
-
-       mBuffer = (char*)malloc(copy.mSize);
-       mSize = copy.mSize;
-       mR = copy.mR;
-       mW = copy.mW;
-       mOriginalW = copy.mOriginalW;
-       mBoolR = copy.mBoolR;
-       mBoolW = copy.mBoolW;
-       mBoolNumR = copy.mBoolNumR;
-       mBoolNumW = copy.mBoolNumW;
-       if (mBuffer) memcpy(mBuffer, copy.mBuffer, mSize);
+       free(buffer_);
+       buffer_ = (char*)malloc(copy.size_);
+       size_ = copy.size_;
+       if (buffer_) memcpy(buffer_, copy.buffer_, size_);
        else throw std::length_error("out of memory");
+
+       state_ = copy.state_;
+       saved_ = copy.saved_;
        return *this;
 }
 
 
-Packet::~Packet()
+packet::~packet()
 {
-       free(mBuffer);
+       free(buffer_);
 }
 
 
-Packet& Packet::operator<<(bool value)
+packet& packet::operator << (bool value)
 {
-       int bit = mBoolNumW % 8;
+       int bit = state_.write_bool_num % 8;
        if (bit == 0)
        {
-               mBoolW = mW;
+               state_.write_bool_mark = state_.write_mark;
 
                unsigned char byte = 0;
                if (write(&byte, 1) == 0) throw std::length_error("out of memory");
        }
 
-       if (value) mBuffer[mBoolW] |= (1 << bit);
-       ++mBoolNumW;
+       if (value) buffer_[state_.write_bool_mark] |= (1 << bit);
+       ++state_.write_bool_num;
 
        return *this;
 }
 
 
-Packet& Packet::operator<<(int8_t value)
+packet& packet::operator << (int8_t value)
 {
        return *this << reinterpret_cast<uint8_t&>(value);
 }
 
-Packet& Packet::operator<<(int16_t value)
+packet& packet::operator << (int16_t value)
 {
        return *this << reinterpret_cast<uint16_t&>(value);
 }
 
-Packet& Packet::operator<<(int32_t value)
+packet& packet::operator << (int32_t value)
 {
        return *this << reinterpret_cast<uint32_t&>(value);
 }
 
-Packet& Packet::operator<<(int64_t value)
+packet& packet::operator << (int64_t value)
 {
        return *this << reinterpret_cast<uint64_t&>(value);
 }
 
 
-Packet& Packet::operator<<(uint8_t value)
+packet& packet::operator << (uint8_t value)
 {
        if (write(&value, sizeof(value)) != sizeof(value))
        {
@@ -210,7 +188,7 @@ Packet& Packet::operator<<(uint8_t value)
        return *this;
 }
 
-Packet& Packet::operator<<(uint16_t value)
+packet& packet::operator << (uint16_t value)
 {
        value = htons(value);
        if (write(&value, sizeof(value)) != sizeof(value))
@@ -220,7 +198,7 @@ Packet& Packet::operator<<(uint16_t value)
        return *this;
 }
 
-Packet& Packet::operator<<(uint32_t value)
+packet& packet::operator << (uint32_t value)
 {
        value = htonl(value);
        if (write(&value, sizeof(value)) != sizeof(value))
@@ -230,7 +208,7 @@ Packet& Packet::operator<<(uint32_t value)
        return *this;
 }
 
-Packet& Packet::operator<<(uint64_t value)
+packet& packet::operator << (uint64_t value)
 {
        value = htonll(value);
        if (write(&value, sizeof(value)) != sizeof(value))
@@ -240,7 +218,7 @@ Packet& Packet::operator<<(uint64_t value)
        return *this;
 }
 
-Packet& Packet::operator<<(float value)
+packet& packet::operator << (float value)
 {
        // XXX: assumes the ieee-754
        uint32_t* integer = reinterpret_cast<uint32_t*>(&value);
@@ -252,7 +230,7 @@ Packet& Packet::operator<<(float value)
        return *this;
 }
 
-Packet& Packet::operator<<(double value)
+packet& packet::operator << (double value)
 {
        // XXX: assumes the ieee-754
        uint64_t* integer = reinterpret_cast<uint64_t*>(&value);
@@ -264,66 +242,66 @@ Packet& Packet::operator<<(double value)
        return *this;
 }
 
-size_t Packet::write(const void* bytes, size_t size)
+size_t packet::write(const void* bytes, size_t size)
 {
-       size_t nBytes = std::min(size, mSize - mW);
-       if (!mBuffer || nBytes < size)
+       size_t num_bytes = std::min(size, size_ - state_.write_mark);
+       if (!buffer_ || num_bytes < size)
        {
-               int nPages = 1 + size / PAGE_SIZE;
-               int newSize = mSize + nPages * PAGE_SIZE;
-               char* newBuffer = (char*)realloc(mBuffer, newSize);
-               if (newBuffer)
+               int num_pages = 1 + size / PAGE_SIZE;
+               int new_size = size_ + num_pages * PAGE_SIZE;
+               char* new_buffer = (char*)realloc(buffer_, new_size);
+               if (new_buffer)
                {
-                       mBuffer = newBuffer;
-                       mSize = newSize;
-                       nBytes = size;
+                       buffer_ = new_buffer;
+                       size_ = new_size;
+                       num_bytes = size;
                }
-               if (!mBuffer) return 0;
+               if (!buffer_) return 0;
        }
-       memcpy(mBuffer + mW, bytes, nBytes);
-       mW += nBytes;
-       return nBytes;
+       memcpy(buffer_ + state_.write_mark, bytes, num_bytes);
+       state_.write_mark += num_bytes;
+       return num_bytes;
 }
 
 
-Packet& Packet::operator>>(bool& value)
+packet& packet::operator >> (bool& value)
 {
-       int bit = mBoolNumR % 8;
+       int bit = state_.read_bool_num % 8;
        if (bit == 0)
        {
-               mBoolR = mR;
+               state_.read_bool_mark = state_.read_mark;
 
                unsigned char byte = 0;
                if (read(&byte, 1) == 0) throw std::out_of_range("end of packet");
        }
 
-       value = 1 & (mBuffer[mBoolR] >> bit);
-       ++mBoolNumR;
+       value = 1 & (buffer_[state_.read_bool_mark] >> bit);
+       ++state_.read_bool_num;
 
        return *this;
 }
 
-Packet& Packet::operator>>(int8_t& value)
+packet& packet::operator >> (int8_t& value)
 {
        return *this >> reinterpret_cast<uint8_t&>(value);
 }
 
-Packet& Packet::operator>>(int16_t& value)
+packet& packet::operator >> (int16_t& value)
 {
        return *this >> reinterpret_cast<uint16_t&>(value);
 }
 
-Packet& Packet::operator>>(int32_t& value)
+packet& packet::operator >> (int32_t& value)
 {
        return *this >> reinterpret_cast<uint32_t&>(value);
 }
 
-Packet& Packet::operator>>(int64_t& value)
+packet& packet::operator >> (int64_t& value)
 {
        return *this >> reinterpret_cast<uint64_t&>(value);
 }
 
-Packet& Packet::operator>>(uint8_t& value)
+packet& packet::operator >> (uint8_t& value)
 {
        if (read(&value, sizeof(value)) != sizeof(value))
        {
@@ -332,7 +310,7 @@ Packet& Packet::operator>>(uint8_t& value)
        return *this;
 }
 
-Packet& Packet::operator>>(uint16_t& value)
+packet& packet::operator >> (uint16_t& value)
 {
        if (read(&value, sizeof(value)) != sizeof(value))
        {
@@ -342,7 +320,7 @@ Packet& Packet::operator>>(uint16_t& value)
        return *this;
 }
 
-Packet& Packet::operator>>(uint32_t& value)
+packet& packet::operator >> (uint32_t& value)
 {
        if (read(&value, sizeof(value)) != sizeof(value))
        {
@@ -352,7 +330,7 @@ Packet& Packet::operator>>(uint32_t& value)
        return *this;
 }
 
-Packet& Packet::operator>>(uint64_t& value)
+packet& packet::operator >> (uint64_t& value)
 {
        if (read(&value, sizeof(value)) != sizeof(value))
        {
@@ -362,7 +340,7 @@ Packet& Packet::operator>>(uint64_t& value)
        return *this;
 }
 
-Packet& Packet::operator>>(float& value)
+packet& packet::operator >> (float& value)
 {
        // XXX: assumes the ieee-754
        uint32_t* integer = reinterpret_cast<uint32_t*>(&value);
@@ -374,7 +352,7 @@ Packet& Packet::operator>>(float& value)
        return *this;
 }
 
-Packet& Packet::operator>>(double& value)
+packet& packet::operator >> (double& value)
 {
        // XXX: assumes the ieee-754
        uint64_t* integer = reinterpret_cast<uint64_t*>(&value);
@@ -386,36 +364,35 @@ Packet& Packet::operator>>(double& value)
        return *this;
 }
 
-size_t Packet::read(void* bytes, size_t size)
+size_t packet::read(void* bytes, size_t size)
 {
-       size_t nBytes = std::min(size, mW - mR);
-       memcpy(bytes, mBuffer + mR, nBytes);
-       mR += nBytes;
-       return nBytes;
+       size_t num_bytes = std::min(size, state_.write_mark - state_.read_mark);
+       memcpy(bytes, buffer_ + state_.read_mark, num_bytes);
+       state_.read_mark += num_bytes;
+       return num_bytes;
 }
 
 
-void Packet::clear()
+void packet::clear()
 {
-       mR = 0;
-       mW = 0;
-       mBoolR = 0;
-       mBoolW = 0;
-       mBoolNumR = 0;
-       mBoolNumW = 0;
+       state_.read_mark = state_.write_mark;
+       state_.read_bool_mark = 0;
+       state_.read_bool_num = 0;
+       state_.write_bool_mark = 0;
+       state_.write_bool_num = 0;
 }
 
 
-void Packet::reset()
+void packet::save()
+{
+       saved_ = state_;
+}
+
+void packet::revert()
 {
-       mR = 0;
-       mW = mOriginalW;
-       mBoolR = 0;
-       mBoolW = 0;
-       mBoolNumR = 0;
-       mBoolNumW = 0;
+       state_ = saved_;
 }
 
 
-} // namespace Mf
+} // namespace moof
 
This page took 0.037341 seconds and 4 git commands to generate.