[8382] Implement ByteArray functions for skip read of fields not needed for server in received packets. Author: VladimirMangos

* Use this fucntions in some case.
    * Change some packets to form: read fields first check later for better control recieved packets structure.
    * Fix CMSG_STAND_STATE_CHANGE packet structure to more correct.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-08-19 16:54:52 -05:00
parent 012d6fa865
commit edc05f2c19
8 changed files with 76 additions and 40 deletions

View File

@@ -261,6 +261,32 @@ class ByteBuffer
return _wpos;
}
template<typename T>
void read_skip() { read_skip(sizeof(T)); }
template<typename T1, typename T2>
void read_skip2() { read_skip(sizeof(T1)+sizeof(T2)); }
template<>
void read_skip<char*>()
{
uint8 size = read<uint8>();
read_skip(size);
}
template<>
void read_skip<char const*>() { read_skip<char*>(); }
template<>
void read_skip<std::string>() { read_skip<char*>(); }
void read_skip(size_t skip)
{
if(_rpos + skip > size())
throw ByteBufferException(false, _rpos, skip, size());
_rpos += skip;
}
template <typename T> T read()
{
T r = read<T>(_rpos);