コード例 #1
0
 public void InitPools(int stride)
 {
     mNumber   = 65536 / stride;
     mPkgPools = new PkgPool[mNumber];
     mStride   = stride;
     for (int i = 0; i < mNumber; i++)
     {
         var pool = new PkgPool();
         pool.Size    = RPCHeader.SizeOf() + mStride * (i + 1);
         mPkgPools[i] = pool;
     }
 }
コード例 #2
0
        public bool FreePkg(byte[] pkg)
        {
            int size = pkg.Length - RPCHeader.SizeOf();

            if (size < 0)
            {
                return(false);
            }
            int index = size / mStride - 1;

            if (index >= mNumber)
            {
                return(false);
            }
            return(mPkgPools[index].FreePkg(pkg));
        }
コード例 #3
0
 public BNetPacket(byte[] serializedObject, bool hidden, RPCHeader header, object decodedObject) :
     base(PacketType.BattleNet, serializedObject, hidden, decodedObject)
 {
     Header = header;
 }