void InitSocketAsyncEventArgs (SocketAsyncEventArgs e, AsyncCallback callback, object state, SocketOperation operation) { e.socket_async_result.Init (this, callback, state, operation); e.current_socket = this; e.SetLastOperation (SocketOperationToSocketAsyncOperation (operation)); e.SocketError = SocketError.Success; e.BytesTransferred = 0; }
/* This is called when reusing a SocketAsyncEventArgs */ public void Init (Socket sock, SocketAsyncEventArgs args, SocketOperation op) { result.Init (sock, args, SocketAsyncEventArgs.Dispatcher, op); result.Worker = this; SocketAsyncOperation async_op; // Notes; // -SocketOperation.AcceptReceive not used in SocketAsyncEventArgs // -SendPackets and ReceiveMessageFrom are not implemented yet if (op == Socket.SocketOperation.Connect) async_op = SocketAsyncOperation.Connect; else if (op == Socket.SocketOperation.Accept) async_op = SocketAsyncOperation.Accept; else if (op == Socket.SocketOperation.Disconnect) async_op = SocketAsyncOperation.Disconnect; else if (op == Socket.SocketOperation.Receive || op == Socket.SocketOperation.ReceiveGeneric) async_op = SocketAsyncOperation.Receive; else if (op == Socket.SocketOperation.ReceiveFrom) async_op = SocketAsyncOperation.ReceiveFrom; /* else if (op == Socket.SocketOperation.ReceiveMessageFrom) async_op = SocketAsyncOperation.ReceiveMessageFrom; */ else if (op == Socket.SocketOperation.Send || op == Socket.SocketOperation.SendGeneric) async_op = SocketAsyncOperation.Send; /* else if (op == Socket.SocketOperation.SendPackets) async_op = SocketAsyncOperation.SendPackets; */ else if (op == Socket.SocketOperation.SendTo) async_op = SocketAsyncOperation.SendTo; else throw new NotImplementedException (String.Format ("Operation {0} is not implemented", op)); args.SetLastOperation (async_op); args.SocketError = SocketError.Success; args.BytesTransferred = 0; }