Example #1
0
        // read size and data and store WITH size and data
        public bool Read(TByteBuffer aValue)
        {
            Int32 Len;

            if (Read(out Len))
            {
                if (Len <= ReadAvailable)
                {
                    aValue.PrepareSize(Len + sizeof(Int32));
                    aValue.PrepareApply();
                    aValue.QWrite(Len);
                    Array.Copy(FBuffer, FReadCursor, aValue.FBuffer, aValue.FWriteCursor, Len);
                    FReadCursor += Len;
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Example #2
0
 // write all readable data WITH size
 public void Write(TByteBuffer aValue)
 {
     if (sizeof(Int32) + aValue.ReadAvailable > WriteAvailable)
     {
         Length = FWriteCursor + sizeof(Int32) + aValue.ReadAvailable;
     }
     QWrite(aValue.ReadAvailable);
     Array.Copy(aValue.FBuffer, aValue.ReadCursor, FBuffer, FWriteCursor, aValue.ReadAvailable);
     FWriteCursor += aValue.ReadAvailable;
 }
Example #3
0
 // read rest
 public void ReadRest(ref TByteBuffer aValue)
 {
     if (ReadAvailable > 0)
     {
         if (ReadAvailable > aValue.WriteAvailable)
         {
             aValue.Length = aValue.FWriteCursor + ReadAvailable;
         }
         Array.Copy(FBuffer, FReadCursor, aValue.FBuffer, FWriteCursor, ReadAvailable);
     }
 }
Example #4
0
        // read size and data and store as a whole WITHOUT size (size=length buffer)
        public TByteBuffer ReadByteBuffer()
        {
            Int32 Len;

            if (Read(out Len))
            {
                if (Len <= ReadAvailable)
                {
                    TByteBuffer Buffer = new TByteBuffer(Len);
                    Array.Copy(FBuffer, FReadCursor, Buffer.FBuffer, Buffer.FWriteCursor, Len);
                    Buffer.Written(Len);
                    FReadCursor += Len;
                    return(Buffer);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Example #5
0
 // write, with no checking, all readable data WITH size
 public void QWrite(TByteBuffer aValue)
 {
     QWrite(aValue.ReadAvailable);
     Array.Copy(aValue.FBuffer, aValue.ReadCursor, FBuffer, FWriteCursor, aValue.ReadAvailable);
     FWriteCursor += aValue.ReadAvailable;
 }
Example #6
0
 // prepare all readable data WITH size
 public void Prepare(TByteBuffer aValue)
 {
     FPrepareCursor += sizeof(Int32) + aValue.ReadAvailable;
 }