Beispiel #1
0
 public PkgWriter(int size)
 {
     Waiter = null;
     unsafe
     {
         mStreamWriter = new Support.NativeStreamWriter((UInt32)sizeof(PkgHeader) + (UInt32)size);
         PkgHeader header = new PkgHeader();
         header.ToDefault();
         WritePtr(&header, sizeof(PkgHeader));
     }
 }
Beispiel #2
0
        public void Reset()
        {
            mStreamWriter = new Support.NativeStreamWriter(0);

            PkgHeader header = new PkgHeader();

            header.ToDefault();
            unsafe
            {
                WritePtr(&header, sizeof(PkgHeader));
            }
        }
 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    = PkgHeader.SizeOf() + mStride * (i + 1);
         mPkgPools[i] = pool;
     }
 }
        public bool FreePkg(byte[] pkg)
        {
            int size = pkg.Length - PkgHeader.SizeOf();

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

            if (index >= mNumber)
            {
                return(false);
            }
            return(mPkgPools[index].FreePkg(pkg));
        }
Beispiel #5
0
 public int CurPtr()
 {
     return(PkgHeader.SizeOf() + GetPosition());
 }
Beispiel #6
0
 public int DataPtr()
 {
     return(PkgHeader.SizeOf());
 }