SocketServers.ServerAsyncEventArgs.CreateDeepCopy C# (CSharp) Method

CreateDeepCopy() public method

public CreateDeepCopy ( ) : ServerAsyncEventArgs
return ServerAsyncEventArgs
        public ServerAsyncEventArgs CreateDeepCopy()
        {
            var e2 = EventArgsManager.Get();

            e2.CopyAddressesFrom(this);

            e2.offsetOffset = offsetOffset;
            e2.count = count;
            e2.AllocateBuffer();

            e2.bytesTransferred = bytesTransferred;
            e2.UserTokenForSending = UserTokenForSending;

            System.Buffer.BlockCopy(Buffer, Offset, e2.Buffer, e2.Offset, e2.Count);

            return e2;
        }

Usage Example

Beispiel #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);
        }
All Usage Examples Of SocketServers.ServerAsyncEventArgs::CreateDeepCopy