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)); }