예제 #1
0
        /******************************************************************************/

        // must hold the lock before calling this function
        private void displayReportRequest(oadrReportRequestType reportRequest)
        {
            tvReportRequestPayload.Nodes.Clear();

            foreach (SpecifierPayloadType specifierPayload in reportRequest.reportSpecifier.specifierPayload)
            {
                TreeNode treeNode = new TreeNode("RID: " + specifierPayload.rID);
                tvReportRequestPayload.Nodes.Add(treeNode);

                treeNode.Nodes.Add("Reading Type: " + specifierPayload.readingType);
            }
        }
예제 #2
0
        public void sendUpdateReport(oadrReportType report, oadrReportRequestType reportRequest)
        {
            UpdateReport request = new UpdateReport();

            string requestBody = request.createUpdateReport("venID", "requestID", report, reportRequest.reportRequestID);

            Assert.IsTrue(request.request.oadrReport[0].intervals[0].streamPayloadBase.Length > 0);

            Console.Out.WriteLine(reportRequest.reportSpecifier.reportSpecifierID);
            Console.Out.WriteLine(requestBody);
            Console.Out.WriteLine("");
        }
        /**********************************************************************************/

        public void sendUpdateReport(oadrReportType report, oadrReportRequestType reportRequest)
        {
            Thread thread = new Thread(delegate()
            {
                try
                {
                    doSendUpdateReport(report, reportRequest);
                }
                catch (Exception ex)
                {
                    m_callbacks.processException(ex);
                }
            });

            thread.Start();
        }
        /**********************************************************************************/

        private void doSendUpdateReport(oadrReportType report, oadrReportRequestType reportRequest)
        {
            UpdateReport updateReport;

            lock (m_ven)
            {
                updateReport = m_ven.updateReport(RandomHex.instance().generateRandomHex(10), report, reportRequest.reportRequestID);
            }

            m_callbacks.processUpdateReport(updateReport);

            // UpdatedReports can contain a CancelReport piggybacked message; process
            // the message if it exists
            // since the VTN is not expecting a cancelledReport response so we can't call processCancelReport(...) directly
            if (updateReport.response.oadrCancelReport != null)
            {
                // cancel the report request
                List <string> pendingReports = m_resources.addCancelReport(updateReport.response.oadrCancelReport);

                // call the callback to update the UI
                m_callbacks.processCancelReport(updateReport.response.oadrCancelReport);
            }
        }
예제 #5
0
        /**********************************************************/

        private void lstReportRequests_SelectedIndexChanged(object sender, EventArgs e)
        {
            MethodInvoker mi = new MethodInvoker(delegate
            {
                lock (this)
                {
                    try
                    {
                        if (lstReportRequests.SelectedItems.Count == 0)
                        {
                            return;
                        }

                        ListViewItem lvi = lstReportRequests.SelectedItems[0];

                        oadrReportRequestType reportRequest = m_reportRequests[lvi.SubItems[IND_REPORT_REQUEST_ID].Text];

                        displayReportRequest(reportRequest);
                    }
                    catch (Exception ex)
                    {
                        Logger.logException(ex);
                    }
                }
            });

            // BeginInvoke only needs to be called if we're tyring to update the UI from
            // a thread that did not create it
            if (this.InvokeRequired)
            {
                this.BeginInvoke(mi);
            }
            else
            {
                mi.Invoke();
            }
        }
예제 #6
0
        static public oadrCreateReportType generateCreateReport(DateTime dtstartUTC, string reportRequestID, string telemetryStatusReportSpecifierID)
        {
            oadrCreateReportType createReport = new oadrCreateReportType();

            createReport.schemaVersion = "2.0b";
            createReport.requestID     = "requestid";
            createReport.venID         = "venid";

            oadrReportRequestType reportRequest = new oadrReportRequestType();

            reportRequest.reportRequestID = reportRequestID;
            reportRequest.reportSpecifier = new ReportSpecifierType();

            reportRequest.reportSpecifier.reportSpecifierID    = telemetryStatusReportSpecifierID;
            reportRequest.reportSpecifier.granularity          = new DurationPropType();
            reportRequest.reportSpecifier.granularity.duration = "PT10S";

            reportRequest.reportSpecifier.reportBackDuration          = new DurationPropType();
            reportRequest.reportSpecifier.reportBackDuration.duration = "PT1M";

            reportRequest.reportSpecifier.reportInterval                              = new WsCalendarIntervalType();
            reportRequest.reportSpecifier.reportInterval.properties                   = new properties();
            reportRequest.reportSpecifier.reportInterval.properties.dtstart           = new dtstart();
            reportRequest.reportSpecifier.reportInterval.properties.dtstart.datetime  = dtstartUTC;
            reportRequest.reportSpecifier.reportInterval.properties.duration          = new DurationPropType();
            reportRequest.reportSpecifier.reportInterval.properties.duration.duration = "PT5M";

            reportRequest.reportSpecifier.specifierPayload        = new SpecifierPayloadType[1];
            reportRequest.reportSpecifier.specifierPayload[0]     = new SpecifierPayloadType();
            reportRequest.reportSpecifier.specifierPayload[0].rID = "resource1_status";

            createReport.oadrReportRequest    = new oadrReportRequestType[1];
            createReport.oadrReportRequest[0] = reportRequest;

            return(createReport);
        }
예제 #7
0
        /**********************************************************/

        public ReportRequestWrapper(oadrReportRequestType reportRequest)
        {
            m_reportRequest = reportRequest;
        }