aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Packets
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2014-12-23 00:06:36 +0100
committerjoschiwald <joschiwald.trinity@gmail.com>2014-12-23 00:06:36 +0100
commit6c6e4d4328526ccfcd9049efbf9033fe47de41a6 (patch)
tree32e7f776afd1b527302f3addd1dde812d84585d8 /src/server/shared/Packets
parentbf8eff8545d092585a1c710dc0b251b8cd0654bb (diff)
Core/Packets: moved chat packet building function to packet builder class
Diffstat (limited to 'src/server/shared/Packets')
-rw-r--r--src/server/shared/Packets/ByteBuffer.cpp6
-rw-r--r--src/server/shared/Packets/ByteBuffer.h30
2 files changed, 30 insertions, 6 deletions
diff --git a/src/server/shared/Packets/ByteBuffer.cpp b/src/server/shared/Packets/ByteBuffer.cpp
index 02713a30cc6..ba78a19f31a 100644
--- a/src/server/shared/Packets/ByteBuffer.cpp
+++ b/src/server/shared/Packets/ByteBuffer.cpp
@@ -26,8 +26,7 @@ ByteBuffer::ByteBuffer(MessageBuffer&& buffer) : _rpos(0), _wpos(0), _bitpos(Ini
{
}
-ByteBufferPositionException::ByteBufferPositionException(bool add, size_t pos,
- size_t size, size_t valueSize)
+ByteBufferPositionException::ByteBufferPositionException(bool add, size_t pos, size_t size, size_t valueSize)
{
std::ostringstream ss;
@@ -38,8 +37,7 @@ ByteBufferPositionException::ByteBufferPositionException(bool add, size_t pos,
message().assign(ss.str());
}
-ByteBufferSourceException::ByteBufferSourceException(size_t pos, size_t size,
- size_t valueSize)
+ByteBufferSourceException::ByteBufferSourceException(size_t pos, size_t size, size_t valueSize)
{
std::ostringstream ss;
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h
index 67e940e263c..42bd66c3c1d 100644
--- a/src/server/shared/Packets/ByteBuffer.h
+++ b/src/server/shared/Packets/ByteBuffer.h
@@ -86,13 +86,22 @@ class ByteBuffer
}
ByteBuffer(ByteBuffer&& buf) : _rpos(buf._rpos), _wpos(buf._wpos),
- _bitpos(buf._bitpos), _curbitval(buf._curbitval), _storage(std::move(buf._storage)) { }
+ _bitpos(buf._bitpos), _curbitval(buf._curbitval), _storage(buf.Move()) { }
ByteBuffer(ByteBuffer const& right) : _rpos(right._rpos), _wpos(right._wpos),
_bitpos(right._bitpos), _curbitval(right._curbitval), _storage(right._storage) { }
ByteBuffer(MessageBuffer&& buffer);
+ std::vector<uint8>&& Move()
+ {
+ _rpos = 0;
+ _wpos = 0;
+ _bitpos = InitialBitPos;
+ _curbitval = 0;
+ return std::move(_storage);
+ }
+
ByteBuffer& operator=(ByteBuffer const& right)
{
if (this != &right)
@@ -107,12 +116,29 @@ class ByteBuffer
return *this;
}
+ ByteBuffer& operator=(ByteBuffer&& right)
+ {
+ if (this != &right)
+ {
+ _rpos = right._rpos;
+ _wpos = right._wpos;
+ _bitpos = right._bitpos;
+ _curbitval = right._curbitval;
+ _storage = right.Move();
+ }
+
+ return *this;
+ }
+
virtual ~ByteBuffer() { }
void clear()
{
+ _rpos = 0;
+ _wpos = 0;
+ _bitpos = InitialBitPos;
+ _curbitval = 0;
_storage.clear();
- _rpos = _wpos = 0;
}
template <typename T> void append(T value)