private void parseRpc()
{
int length = BufferHandler.readByte(ref buffer, ref offset);
if (length >= 0x80) //2 bytes as size
{
length = (length - 0x80) << 8;
length = length + (int)BufferHandler.readByte(ref buffer, ref offset);
}
int header = BufferHandler.readByte(ref buffer, ref offset);
length--; //discount 1 byte for the header
if (header >= 0x80) //2 bytes as size
{
header = (header - 0x80) << 8;
header = header + (int)BufferHandler.readByte(ref buffer, ref offset);
length--; // discount another byte for the header (2nd byte)
}
byte[] rpcValues = BufferHandler.readBytes(ref buffer, ref offset, length);
#if DEBUG
Output.WriteLine("RPC (Header " + header + " | Content:" + StringUtils.bytesToString(rpcValues));
#endif
rpcManager.HandleRpc(header, ref rpcValues);
}