示例#1
0
 public WSNotificationHandler(YHTTPHub hub) : base(hub)
 {
     _workingRequests = new Queue <WSRequest> [NB_TCP_CHANNEL];
     for (int i = 0; i < NB_TCP_CHANNEL; i++)
     {
         _workingRequests[i] = new Queue <WSRequest>();
     }
 }
        private async Task <int> AddNewHub(string url, bool reportConnnectionLost, System.IO.Stream request, System.IO.Stream response, object session)
        {
            foreach (YGenericHub h in _hubs)
            {
                if (h.imm_isSameHub(url, request, response, session))
                {
                    return(YAPI.SUCCESS);
                }
            }
            YGenericHub newhub;

            YGenericHub.HTTPParams parsedurl;
            parsedurl = new YGenericHub.HTTPParams(url);
            // Add hub to known list
            if (url.Equals("usb"))
            {
                newhub = new YUSBHub(this, _hubs.Count, true);
            }
            else if (url.Equals("usb_silent"))
            {
                newhub = new YUSBHub(this, _hubs.Count, false);
            }
            else if (url.Equals("net"))
            {
                if ((_apiMode & YAPI.DETECT_NET) == 0)
                {
                    _apiMode |= YAPI.DETECT_NET;
                    // todo: review ssdp callback
                    //_ssdp.addCallback(_ssdpCallback);
                }
                return(YAPI.SUCCESS);
            }
            else if (parsedurl.Host.Equals("callback"))
            {
                //todo: add SUPPORT FOR CALLBACK
                throw new YAPI_Exception(YAPI.NOT_SUPPORTED, "callback is not yet supported");
            }
            else
            {
                newhub = new YHTTPHub(this, _hubs.Count, parsedurl, reportConnnectionLost);
            }
            _hubs.Add(newhub);
            await newhub.startNotifications();

            return(YAPI.SUCCESS);
        }
        /**
         *
         */
        public async Task <int> TestHub(string url, uint mstimeout)
        {
            YGenericHub newhub;

            YGenericHub.HTTPParams parsedurl = new YGenericHub.HTTPParams(url);
            // Add hub to known list
            if (url.Equals("usb"))
            {
                newhub = new YUSBHub(this, 0, true);
            }
            else if (url.Equals("net"))
            {
                return(YAPI.SUCCESS);
            }
            else if (parsedurl.Host.Equals("callback"))
            {
                throw new YAPI_Exception(YAPI.NOT_SUPPORTED, "Not yet supported");
            }
            else
            {
                newhub = new YHTTPHub(this, 0, parsedurl, true);
            }
            return(await newhub.ping(mstimeout));
        }
 internal TCPNotificationHandler(YHTTPHub hub) : base(hub)
 {
 }
示例#5
0
 internal YHTTPRequest(YHTTPHub hub, string dbglabel)
 {
     _hub      = hub;
     _dbglabel = dbglabel;
     _reqNum   = global_reqNum++;
 }
示例#6
0
 internal NotificationHandler(YHTTPHub hub)
 {
     _hub = hub;
 }