public void Init (Socket sock, object state, AsyncCallback callback, SocketOperation op)
{
result.Init (sock, state, callback, op);
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;
#if !MOONLIGHT
else if (op == Socket.SocketOperation.Accept)
async_op = SocketAsyncOperation.Accept;
else if (op == Socket.SocketOperation.Disconnect)
async_op = SocketAsyncOperation.Disconnect;
#endif
else if (op == Socket.SocketOperation.Receive || op == Socket.SocketOperation.ReceiveGeneric)
async_op = SocketAsyncOperation.Receive;
#if !MOONLIGHT
else if (op == Socket.SocketOperation.ReceiveFrom)
async_op = SocketAsyncOperation.ReceiveFrom;
#endif
/*
else if (op == Socket.SocketOperation.ReceiveMessageFrom)
async_op = SocketAsyncOperation.ReceiveMessageFrom;
*/
else if (op == Socket.SocketOperation.Send || op == Socket.SocketOperation.SendGeneric)
async_op = SocketAsyncOperation.Send;
#if !MOONLIGHT
/*
else if (op == Socket.SocketOperation.SendPackets)
async_op = SocketAsyncOperation.SendPackets;
*/
else if (op == Socket.SocketOperation.SendTo)
async_op = SocketAsyncOperation.SendTo;
#endif
else
throw new NotImplementedException (String.Format ("Operation {0} is not implemented", op));
args.SetLastOperation (async_op);
args.SocketError = SocketError.Success;
}