DetachBuffer() public méthode

public DetachBuffer ( ) : ArraySegment
Résultat ArraySegment
Exemple #1
0
        private ArraySegment <byte> Detach(ref ServerAsyncEventArgs e, int size)
        {
            ServerAsyncEventArgs serverAsyncEventArgs = null;

            if (e.BytesTransferred > size)
            {
                serverAsyncEventArgs = e.CreateDeepCopy();
            }
            ArraySegment <byte> result = e.DetachBuffer();

            EventArgsManager.Put(ref e);
            if (serverAsyncEventArgs != null)
            {
                e = serverAsyncEventArgs;
            }
            return(result);
        }
Exemple #2
0
        private ArraySegment <byte> Detach(ref ServerAsyncEventArgs e, int size)
        {
            ServerAsyncEventArgs copy = null;

            if (e.BytesTransferred > size)
            {
                copy = e.CreateDeepCopy();
            }

            var result = e.DetachBuffer();

            EventArgsManager.Put(ref e);
            if (copy != null)
            {
                e = copy;
            }

            return(result);
        }
Exemple #3
0
        private ArraySegment <byte> Dettach(Storage storage)
        {
            switch (storage)
            {
            case Storage.E1:
                return(e1.DetachBuffer());

            case Storage.Buffer1:
                return(buffer1.Detach());

            case Storage.Buffer2:
                return(buffer2.Detach());

            case Storage.None:
                return(new ArraySegment <byte>());

            default:
                throw new ArgumentException();
            }
        }
        private ArraySegment<byte> Detach(ref ServerAsyncEventArgs e, int size)
        {
            ServerAsyncEventArgs copy = null;
            if (e.BytesTransferred > size)
                copy = e.CreateDeepCopy();

            var result = e.DetachBuffer();

            EventArgsManager.Put(ref e);
            if (copy != null)
                e = copy;

            return result;
        }