コード例 #1
0
        public TelecomTask(XPathNavigator nav, TaskWorker worker) : base(nav, worker)
        {
            _LOG           = worker._LOG;
            OnStart       += (t) => _LOG.Trace("Start: " + t);
            OnStop        += (t) => _LOG.Trace("Stop: " + t);
            OnList        += (t) => _LOG.Trace("List: " + t);
            OnListError   += (t, e) => _LOG.HandleException(e, "List: " + t);
            OnRead        += (t, m, msg, ti) => _LOG.Trace("Read: " + t + m + " msgCount=" + (msg == null ? 0 : msg.Count));
            OnReadError   += (t, m, msg, ti, e) => _LOG.HandleException(e, "Read: '" + ti.Status + "' " + t + m);
            OnWrite       += (t1, m1, m2, msg, ti) => _LOG.Trace("Write: " + t1 + m1 + " >> " + m2);                                     //msg
            OnWriteError  += (t1, m1, m2, msg, ti, e) => _LOG.HandleException(e, "Write: '" + ti.Status + "' " + t1 + m1 + " >> " + m2); //msg
            OnDelete      += (t, m, ti) => _LOG.Trace("Delete: " + t + m);
            OnDeleteError += (t, m, ti, e) => _LOG.HandleException(e, "Delete: " + t + m);

            TaskQueuePath = Path.Combine(AppContext.AppDir, TaskInfo["Name"] + "TaskQueue.dat");
            var v = nav.GetAllChildAttributes();

            foreach (var x in v["read"])
            {
                readTask[x.Key] = x.Value;
            }
            foreach (var x in v["write"])
            {
                writeTask[x.Key] = x.Value;
            }
        }