/// <summary>
 /// Initializes our Locally Initialized transaction handler.
 /// </summary>
 /// <param name="session"></param>
 public override void InitializeInteraction(IDSPExSession session)
 {
     session.SendMessage(
         new TransactionInitialMessage(
             TransactionId,
             (byte)DTP.GET_VERSION
             )
         );
 }
Beispiel #2
0
        /// <summary>
        /// Processes the initial echo message
        /// </summary>
        /// <param name="session"></param>
        /// <param name="message"></param>
        public override void ProcessInitialMessage(IDSPExSession session, TransactionInitialMessage message)
        {
            // Echo the message's data
            Logger.L(LoggerLevel.Info, "Sending echo response of length " + message.DataLength);
            var response = new TransactionMessage(TransactionID, message.DataBuffer, message.DataOffset, message.DataLength);

            session.SendMessage(response);
            session.DeregisterRITransactionHandler(this);
        }
 public override void ProcessMessage(IDSPExSession session, TransactionMessage message)
 {
     throw new InvalidOperationException(
        "ProcessMessage invoked on stateless rith! " +
        $"TID: {message.TransactionId} " +
        $"OFF: {message.DataOffset} " +
        $"LEN: {message.DataLength} " +
        $"DAT: {message.DataBuffer.ToHex()} "
     );
 }
Beispiel #4
0
 public override void ProcessMessage(IDSPExSession session, TransactionMessage message)
 {
     throw new InvalidOperationException(
               "ProcessMessage invoked on stateless rith! " +
               $"TID: {message.TransactionId} " +
               $"OFF: {message.DataOffset} " +
               $"LEN: {message.DataLength} " +
               $"DAT: {message.DataBuffer.ToHex()} "
               );
 }
 /// <summary>
 /// Initializes our Locally Initialized transaction handler, sending over the initial echo
 /// request.
 /// </summary>
 /// <param name="session"></param>
 public override void InitializeInteraction(IDSPExSession session)
 {
     session.SendMessage(
         new TransactionInitialMessage(
             TransactionId,
             (byte)DTP.ECHO,
             RequestData,
             0,
             RequestData.Length
             )
         );
     Logger.L(LoggerLevel.Info, "Sent Echo");
 }
        /// <summary>
        /// Processes the response to our LIT Handler.  The data segment of the message should be
        /// identical to our request data, as this is an echo implementation.
        /// </summary>
        /// <param name="session"></param>
        /// <param name="message"></param>
        public unsafe override void ProcessMessage(IDSPExSession session, TransactionMessage message)
        {
            bool match = RequestData.Length == message.DataLength;

            //if (match)
            //{
            //   fixed (byte* pRequestBuffer = RequestData)
            //   fixed (byte* pResponseBuffer = message.DataBuffer)
            //   {
            //      byte* pResponseBuffer_ = pResponseBuffer + message.DataOffset;
            //      match = memcmp(pRequestBuffer, pResponseBuffer_, RequestData.Length) == 0;
            //   }
            //}

            ResponseDataMatched = match;
            session.DeregisterLITransactionHandler(this);
            OnCompletion();

            Logger.L(LoggerLevel.Info, "Echo response matched? " + match);
        }
 public override void ProcessInitialMessage(IDSPExSession session, TransactionInitialMessage message)
 {
     processInitialMessage(new LimitedDSPExSessionImpl(session), message);
     session.DeregisterRITransactionHandler(this);
 }
 /// <summary>
 /// Creates the initial message which begins our interaction.
 /// </summary>
 public abstract void InitializeInteraction(IDSPExSession session);
Beispiel #9
0
 public override void ProcessMessage(IDSPExSession session, TransactionMessage message)
 {
     throw new System.NotImplementedException();
 }
Beispiel #10
0
 public override void ProcessInitialMessage(IDSPExSession session, TransactionInitialMessage message)
 {
 }
 public LimitedDSPExSessionImpl(IDSPExSession innerSession) {
    this.innerSession = innerSession;
 }
 public override void ProcessMessage(IDSPExSession session, TransactionMessage message)
 {
     throw new System.NotImplementedException();
 }
 public override void ProcessInitialMessage(IDSPExSession session, TransactionInitialMessage message)
 {
 }
 /// <summary>
 /// Processes the response to our LIT Handler.  The data segment of the message should be
 /// identical to our request data, as this is an echo implementation.
 /// </summary>
 /// <param name="session"></param>
 /// <param name="message"></param>
 public override void ProcessMessage(IDSPExSession session, TransactionMessage message)
 {
     ResponseData = message.DataBuffer.SubArray(message.DataOffset, message.DataLength);
     session.DeregisterLITransactionHandler(this);
     OnCompletion();
 }
 /// <summary>
 /// Handles the initial message (server-sent) which begins our transaction.
 /// </summary>
 public abstract void ProcessInitialMessage(IDSPExSession session, TransactionInitialMessage message);
Beispiel #16
0
 /// <summary>
 /// DSPExRITEchoHandler shouldn't ever get here.
 /// </summary>
 /// <param name="session"></param>
 /// <param name="message"></param>
 public override void ProcessMessage(IDSPExSession session, TransactionMessage message)
 {
     //Just eat the packet [do nothing]
 }
Beispiel #17
0
 public override void ProcessInitialMessage(IDSPExSession session, TransactionInitialMessage message)
 {
     processInitialMessage(new LimitedDSPExSessionImpl(session), message);
     session.DeregisterRITransactionHandler(this);
 }
 /// <summary>
 /// Processes a message recieved from the remote endpoint
 /// </summary>
 /// <param name="session">
 /// DSPEx session object, which permits us to send messages.
 /// </param>
 /// <param name="message">
 /// The recieved DSPEx message which we are to process.
 /// </param>
 public abstract void ProcessMessage(IDSPExSession session, TransactionMessage message);
 public LimitedDSPExSessionImpl(IDSPExSession innerSession)
 {
     this.innerSession = innerSession;
 }