/// <summary>
        /// Instantiate a one-time use Factory
        /// </summary>
        /// <param name="DescLocation">XML Description Uri</param>
        /// <param name="MaxSeconds">Device Refresh Cycle</param>
        /// <param name="deviceCB">Success Callback</param>
        /// <param name="failedCB">Failure Callback</param>
        public UPnPDeviceFactory(Uri DescLocation, int MaxSeconds, UPnPDeviceHandler deviceCB, UPnPDeviceFailedHandler failedCB, IPAddress localaddr, string usn, string userAgent = null)
        {
            Debug.Assert(null != DescLocation);
            Debug.Assert(null != deviceCB);
//            Debug.Assert(null != failedCB);
            Debug.Assert(null != localaddr);
//            Debug.Assert(null != usn);

            OpenSource.Utilities.InstanceTracker.Add(this);
            httprequestor = new HttpRequestor();
            httprequestor.OnRequestCompleted += new HttpRequestor.RequestCompletedHandler(httprequestor_OnRequestCompleted);
            if (null != userAgent)
            {
                this.userAgent = userAgent;
            }
            httprequestor.UserAgent = this.userAgent;
            expected_usn            = usn;

            CBLock         = new object();
            OnDevice      += deviceCB;
            OnFailed2     += failedCB;
            DUrl           = DescLocation.ToString();
            MaxAge         = MaxSeconds;
            this.localaddr = localaddr;
            httprequestor.LaunchRequest(DescLocation.ToString(), null, null, null, null);
        }
        /// <summary>
        /// Instantiate a one-time use Factory
        /// </summary>
        /// <param name="DescLocation">XML Description Uri</param>
        /// <param name="MaxSeconds">Device Refresh Cycle</param>
        /// <param name="deviceCB">Success Callback</param>
        /// <param name="failedCB">Failure Callback</param>
        public UPnPDeviceFactory(Uri DescLocation, int MaxSeconds, UPnPDeviceHandler deviceCB, UPnPDeviceFailedHandler failedCB, IPAddress localaddr, string usn)
        {
            httprequestor = new HttpRequestor();
            httprequestor.OnRequestCompleted += new HttpRequestor.RequestCompletedHandler(httprequestor_OnRequestCompleted);
            expected_usn = usn;

            CBLock = new object();
            OnDevice += deviceCB;
            OnFailed2 += failedCB;
            DUrl = DescLocation.ToString();
            MaxAge = MaxSeconds;
            this.localaddr = localaddr;
            httprequestor.LaunchRequest(DescLocation.ToString(), null, null, null, null);
        }
示例#3
0
        /// <summary>
        /// Instantiate a one-time use Factory
        /// </summary>
        /// <param name="DescLocation">XML Description Uri</param>
        /// <param name="MaxSeconds">Device Refresh Cycle</param>
        /// <param name="deviceCB">Success Callback</param>
        /// <param name="failedCB">Failure Callback</param>
        public UPnPDeviceFactory(Uri DescLocation, int MaxSeconds, UPnPDeviceHandler deviceCB, UPnPDeviceFailedHandler failedCB, IPAddress localaddr, string usn)
        {
            InstanceTracker.Add(this);
            httprequestor = new HttpRequestor();
            httprequestor.OnRequestCompleted += httprequestor_OnRequestCompleted;
            expected_usn = usn;

            CBLock         = new object();
            OnDevice      += deviceCB;
            OnFailed2     += failedCB;
            DUrl           = DescLocation.ToString();
            MaxAge         = MaxSeconds;
            this.localaddr = localaddr;
            httprequestor.LaunchRequest(DescLocation.ToString(), null, null, null, null);
        }
示例#4
0
 public UPnPDeviceFactory(Uri DescLocation, int MaxSeconds, UPnPDeviceHandler deviceCB, UPnPDeviceFailedHandler failedCB)
 {
     this.Lifetime = new LifeTimeMonitor();
     InstanceTracker.Add(this);
     this.r                   = new HTTPRequest();
     this.r.OnResponse       += new HTTPRequest.RequestHandler(this.HandleRequest);
     this.CBLock              = new object();
     this.OnDevice            = (UPnPDeviceHandler)Delegate.Combine(this.OnDevice, deviceCB);
     this.OnFailed            = (UPnPDeviceFailedHandler)Delegate.Combine(this.OnFailed, failedCB);
     this.DUrl                = DescLocation.ToString();
     this.MaxAge              = MaxSeconds;
     this.ExpiredHandler      = new LifeTimeMonitor.LifeTimeHandler(this.HandleTimeout);
     this.Lifetime.OnExpired += this.ExpiredHandler;
     this.Lifetime.Add(DateTime.Now, 30);
     this.r.PipelineRequest(DescLocation, null);
 }
        /// <summary>
        /// Instantiate a one-time use Factory
        /// </summary>
        /// <param name="DescLocation">XML Description Uri</param>
        /// <param name="MaxSeconds">Device Refresh Cycle</param>
        /// <param name="deviceCB">Success Callback</param>
        /// <param name="failedCB">Failure Callback</param>
        public UPnPDeviceFactory(Uri DescLocation, int MaxSeconds, UPnPDeviceHandler deviceCB, UPnPDeviceFailedHandler failedCB, IPAddress localaddr, string usn)
        {
            OpenSource.Utilities.InstanceTracker.Add(this);
            httprequestor = new HttpRequestor();
            httprequestor.OnRequestCompleted += new HttpRequestor.RequestCompletedHandler(httprequestor_OnRequestCompleted);
            expected_usn = usn;

            CBLock = new object();
            OnDevice += deviceCB;
            OnFailed2 += failedCB;
            DUrl = DescLocation.ToString();
            MaxAge = MaxSeconds;
            this.localaddr = localaddr;
            OpenSource.Utilities.EventLogger.Log(this, System.Diagnostics.EventLogEntryType.SuccessAudit, "Fetching Description");
            httprequestor.LaunchRequest(DescLocation.ToString(), null, null, null, null);
        }