コード例 #1
0
ファイル: ManagementApi.cs プロジェクト: nistec/MQueue
        public void ReportAsync(QueueCmdReport command, Action <TransStream> action)
        {
            using (

                Task <TransStream> task = Task <TransStream> .Factory.StartNew(() =>
                                                                               Report(command)
                                                                               ,
                                                                               canceller.Token,
                                                                               TaskCreationOptions.LongRunning,
                                                                               TaskScheduler.Default))
            {
                task.Wait();
                if (task.IsCompleted)
                {
                    TransStream item = task.Result;
                    if (item != null)
                    {
                        if (action != null)
                        {
                            Task.Factory.StartNew(() => action(item));
                        }
                    }
                }
                else if (task.IsCanceled)
                {
                }
                else if (task.IsFaulted)
                {
                }
            }
        }
コード例 #2
0
        private void DoProperty()
        {
            string name = GetSelectedItem();

            if (string.IsNullOrEmpty(name))
            {
                return;
            }

            //object obj = null;
            string itemName = "";

            TransStream ts = ManagementApi.Get(name).Command(QueueCmd.QueueProperty);
            //var obj = TransStream.ReadValue(ts);
            var obj = (ts != null) ? ts.ReadValue() : null;

            //var obj = AgentManager.Queue.Get(name);

            //RemoteQueue Client = new RemoteQueue(name);
            //obj = Client;
            itemName = "RemoteQueue";


            if (obj != null)
            {
                PropertyForm dlg = new PropertyForm(name);//, obj, itemName);
                dlg.Text          = "Queue Item Property";
                dlg.ControlLayout = ControlLayout.Visual;
                //dlg.FormBorderStyle = FormBorderStyle.FixedDialog;
                dlg.VGrid.SetDataBinding(obj, itemName);
                dlg.ShowDialog();
            }
        }
コード例 #3
0
        private void ClearAllItem()
        {
            string name = GetSelectedItem();

            if (MsgBox.ShowQuestion("Clear All items Queue " + name + "?", "Nistec", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                TransStream ts  = ManagementApi.Get(name).Command(QueueCmd.ClearQueue);
                object      val = (ts != null) ? ts.ReadValue() : null;
                //var val = TransStream.ReadValue(ts);

                //AgentManager.Queue.ClearAllItems(name);
                CreateNodeItems(true);
            }
        }
コード例 #4
0
        /// <summary>
        /// Write response to client.
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="bResponse"></param>
        protected virtual void WriteResponse(NetworkStream stream, TransStream bResponse)
        {
            if (bResponse == null)
            {
                return;
            }
            var ns = bResponse.GetStream();

            if (ns == null)
            {
                return;
            }
            int lenth = ns.iLength;

            //stream.WriteValue(cbResponse);
            stream.Write(ns.ToArray(), 0, lenth);
        }
コード例 #5
0
ファイル: QueueRequest.cs プロジェクト: nistec/MQueue
        public TransStream ToTransStream()
        {
            TransStream stream = new TransStream(this);

            return(stream);
        }
コード例 #6
0
 /// <summary>
 /// Create fault ack.
 /// </summary>
 /// <param name="reason"></param>
 /// <returns></returns>
 protected virtual TransStream FaultAck(string reason)
 {
     return(TransStream.Write(new TcpMessage("Fault", "ack", reason, 0), TransType.Object));//.ToStream();
 }
コード例 #7
0
        //public NetStream ToStream()
        //{
        //    NetStream stream = new NetStream();
        //    EntityWrite(stream, null);
        //    return stream;
        //}
        public TransStream ToTransStream()
        {
            TransStream stream = new TransStream(this, TransType.Object);

            return(stream);
        }