public void ReceiveMessage(Connection conn, MessageTypes messageType, byte[] buff, int offset, int length) { switch (messageType) { case MessageTypes.MessageTypeNameToStringSidReply: messageVmNameToStringSidReply = MessageVmNameToStringSidReply.CreateFromNetBytes(conn.receiveBuffer, 0); autoResetEvent.Set(); break; default: throw new NotImplementedException(); } }
public string SendMessageSidQuery(string accountName) { string stringSid = null; if (conn == null) { return(null); } uint sn = ++SeqNo; MessageNameToStringSidQuery msg = new MessageNameToStringSidQuery(sn, (uint)accountName.Length, accountName); int countBytesToSend = msg.Serialize(conn.sendBuffer, 0); int countBytesSent = conn.Send(conn.sendBuffer, 0, countBytesToSend); if (countBytesSent != countBytesToSend) { Console.WriteLine("SendMessageSidQuery Err: attempt {0} sent {1}.", countBytesToSend, countBytesSent); return(null); } messageVmNameToStringSidReply = null; autoResetEvent.Reset(); conn.BeginReceive(); bool timedOut = !autoResetEvent.WaitOne(TIMEOUT_MILLISECS); if (timedOut) { return(null); } if (messageVmNameToStringSidReply.SeqNo != sn) { Console.WriteLine("qSid seqno mismatch: expected {0} obtained {1}", sn, messageVmNameToStringSidReply.SeqNo); } else { //Console.WriteLine("qSid {0}", messageVmNameToStringSidReply.SidString); stringSid = messageVmNameToStringSidReply.SidString; } return(stringSid); }