Ejemplo n.º 1
0
        public static TransStream DoResponse(IQueueItem item, MessageState state)
        {
            if (item == null)
            {
                return(null);
                //throw new MessageException(MessageState.MessageError, "Invalid queue item to write response");
            }

            var ts = ((QueueItem)item).ToTransStream(state);

            //((QueueItem)item).SetState(state);
            QLogger.Debug("QueueController DoResponse IQueueAck: {0}", item.Print());
            //return item.ToStream();

            return(ts);

            //if (item != null)
            //{
            //    ((QueueItem)item).SetState(state);
            //    return item.GetItemStream();
            //}
            //else
            //{
            //    Message response = Message.Ack(MessageState.UnExpectedError, new MessageException(MessageState.UnExpectedError, "WriteResponse error: there is no item stream to write reponse"));
            //    return response.ToStream();
            //}

            // QLogger.DebugFormat("Server WriteResponse State:{0}, MessageId: {1}", item.MessageState, item.MessageId);
        }
Ejemplo n.º 2
0
        static void WriteReponse(Stream pipeServer, byte[] response)
        {
            int length = response.Length;

            QLogger.Debug("Serevr WriteReponse:{0}", length);

            pipeServer.Write(response, 0, length);

            pipeServer.Flush();
        }
Ejemplo n.º 3
0
 public static TransStream DoResponse(IQueueItem item)
 {
     if (item == null)
     {
         return(null);
         //throw new MessageException(MessageState.MessageError, "Invalid queue item to write response");
     }
     QLogger.Debug("QueueController DoResponse IQueueAck: {0}", item.Print());
     return(item.ToTransStream());
 }
Ejemplo n.º 4
0
        public static void WriteAck(Stream pipeStream, MessageState state, QueueCmd cmd, string label)
        {
            if (pipeStream == null)
            {
                throw new MessageException(MessageState.PipeError, "Invalid stream to write ack");
            }
            string lbl = label == null?state.ToString() : label;

            QueueItem response = QueueItem.Ack(state, cmd, lbl, null);

            using (NetStream stream = new NetStream())
            {
                response.EntityWrite(stream, null);
                WriteReponse(pipeStream, stream.ToArray());
            }

            QLogger.Debug("Server Ack State:{0}, Label: {1}", state, label);
        }
Ejemplo n.º 5
0
        //public static void WriteResponse(Stream pipeStream, IQueueItem item, MessageState state)
        //{
        //    if (pipeStream == null)
        //    {
        //        throw new MessageException(MessageState.PipeError, "Invalid stream to write response");
        //    }
        //    if (item != null)
        //    {
        //        ((QueueItem)item).SetState(state);
        //        WriteReponse(pipeStream, item.Serilaize());

        //        //using (NetStream stream = new NetStream())
        //        //{
        //        //    //response.EntityWrite(stream, null);
        //        //    WriteReponse(pipeStream, ((QueueItem)item).ItemBinary);
        //        //}
        //    }
        //    else
        //    {
        //        QueueItem response = QueueItem.Ack(MessageState.UnExpectedError,item.QCommand, new MessageException(MessageState.UnExpectedError, "WriteResponse error: there is no item stream to write reponse"));
        //        using (NetStream stream = new NetStream())
        //        {
        //            response.EntityWrite(stream, null);
        //            WriteReponse(pipeStream, stream.ToArray());
        //        }
        //    }

        //    QLogger.DebugFormat("Server WriteResponse State:{0}, Identifier: {1}", item.MessageState, item.Identifier);
        //}

        public static void WriteReport(Stream pipeStream, object item, QueueCmd cmd, MessageState state, string lbl)
        {
            if (pipeStream == null)
            {
                throw new MessageException(MessageState.PipeError, "Invalid stream to write report");
            }
            if (item != null)
            {
                var message = QueueItem.Ack(state, cmd, lbl, null);

                message.SetBody(item);
                WriteReponse(pipeStream, message.ToStream().ToArray());
            }
            else
            {
                QueueItem response = QueueItem.Ack(MessageState.UnExpectedError, cmd, new MessageException(MessageState.UnExpectedError, "WriteReport error: there is no item stream to write reponse"));
                WriteReponse(pipeStream, response.ToStream().ToArray());
            }

            QLogger.Debug("Server WriteReport State:{0}, Command: {1}", state, cmd);
        }