Advertisement
Guest User

Untitled

a guest
May 30th, 2015
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.49 KB | None | 0 0
  1.         public static implicit operator DataPacket(byte* ptr)
  2.         {
  3.             var packet = new DataPacket();
  4.             packet.Id = *((uint*) (ptr + 4));
  5.             packet.Data1 = *((uint*) (ptr + 8));
  6.             packet.Data2 = *((uint*) (ptr + 12));
  7.             packet.Timestamp = *((SystemTime*) (ptr + 16));
  8.             packet.Action = *((DataAction*)(ptr + 20));
  9.             packet.Direction = *((ushort*)(ptr + 22));
  10.             packet.Data3 = *((uint*) (ptr + 24));
  11.             packet.Data4 = *((uint*) (ptr + 28));
  12.             packet.Data5 = *((uint*) (ptr + 32));
  13.             packet.Data6 = *(ptr + 36);
  14.             return packet;
  15.         }
  16.  
  17.         public static implicit operator byte[](DataPacket packet)
  18.         {
  19.             var buffer = new byte[37 + 8];
  20.             fixed (byte* ptr = buffer)
  21.             {
  22.                 PacketBuilder.AppendHeader(ptr, buffer.Length, 10010);
  23.                 *((uint*) (ptr + 4)) = packet.Id;
  24.                 *((uint*) (ptr + 8)) = packet.Data1;
  25.                 *((uint*) (ptr + 12)) = packet.Data2;
  26.                 *((uint*)(ptr + 16)) = packet.Timestamp;
  27.                 *((DataAction*) (ptr + 20)) = packet.Action;
  28.                 *((ushort*)(ptr + 22)) = packet.Direction;
  29.                 *((uint*)(ptr + 24)) = packet.Data3;
  30.                 *((uint*) (ptr + 28)) = packet.Data4;
  31.                 *((uint*) (ptr + 32)) = packet.Data5;
  32.                 *(ptr + 36) = packet.Data6;
  33.             }
  34.             return buffer;
  35.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement