Example #1
0
 public ResponseHandler SendCommand(string commandText)
 {
     var dgram = new CommandDatagram(this.GetNextCommandSequenceNumber(), commandText);
     return this.SendDatagram(dgram);
 }
Example #2
0
 /// <summary>
 ///   Sends a command to the server with the specified sequenceNumber,
 ///   and returns a <see cref="ResponseHandler"/> object that can be 
 ///   used to wait for the response and to retrieve it.
 /// </summary>
 /// <param name="sequenceNumber"> The sequence number for the datagram to be sent. </param>
 /// <param name="commandText"> The command text to send. </param>
 /// <returns>
 ///   A <see cref="ResponseHandler"/> object that can be used used to 
 ///   wait for the response and to retrieve it.
 /// </returns>
 /// <remarks> This method is only used for testing. </remarks>
 internal ResponseHandler SendCommand(byte sequenceNumber, string commandText)
 {
     var dgram = new CommandDatagram(sequenceNumber, commandText);
     return this.dispatcher.SendDatagram(dgram);
 }
Example #3
0
        private void SendKeepAliveDatagram()
        {
            if (this.sequenceNumber == -1)
            {
                this.sequenceNumber = this.datagramSender.GetNextCommandSequenceNumber();
            }

            Debug.WriteLine("keep alive datagram {0} sent", this.sentCount + 1);
            var keepAliveDgram = new CommandDatagram((byte)this.sequenceNumber, string.Empty);
            var responseHandler = this.datagramSender.SendDatagram(keepAliveDgram);
            this.sentHandlers.Add(responseHandler);
            this.lastSendTime = DateTime.Now;
            this.sentCount++;
            this.metrics.KeepAliveDatagramsSent++;
            this.Log.TraceFormat("C#{0:000} Sent keep alive command.", keepAliveDgram.SequenceNumber);
        }