/// <summary> /// ServiceHandler Private Constructor /// </summary> private ServiceHandler() { syncServiceWorker = new SyncServiceWorker(); asyncServiceWorker = AsyncServiceWorker.GetInstance(); resourceManager = ResourceManager.GetInstance(); }
/// <summary> /// It provides AsyncServiceWorker singleton instance /// </summary> /// <returns>AsyncServiceWorker singleton instance</returns> public static AsyncServiceWorker GetInstance() { if (asyncServiceWorker == null) { asyncServiceWorker = new AsyncServiceWorker(); } return(asyncServiceWorker); }
/// <summary> /// It provides AsyncServiceWorker singleton instance /// </summary> /// <returns>AsyncServiceWorker singleton instance</returns> public static AsyncServiceWorker GetInstance() { if(asyncServiceWorker == null) { asyncServiceWorker = new AsyncServiceWorker(); } return asyncServiceWorker; }
/// <summary> /// It is the inner class of Async service worker which processes all the requests in the queue /// </summary> public void HandleRequests() { Connect.Model.ServiceRequest[] services = null; try { services = (Connect.Model.ServiceRequest[]) new Connect.Model.ServiceRequest().Select().Execute(); } catch (SiminovException se) { Log.Error(this.GetType().Name, "HandleRequests", "SiminovException caught while getting queue services, " + se.GetMessage()); throw new SiminovCriticalException(this.GetType().Name, "HandleRequests", "SiminovException caught while getting queue services, " + se.GetMessage()); } if (services == null || services.Length <= 0) { AsyncServiceWorker.GetInstance().StopWorker(); return; } for (int i = 0; i < services.Length; i++) { Connect.Model.ServiceRequest service = services[i]; IService iService = null; try { iService = serviceUtils.Convert(service); } catch (ServiceException se) { Log.Error(this.GetType().Name, "HandleRequests", "ServiceException caught while converting service to iService, " + se.GetMessage()); return; } /* * Check Network Connectivity. */ if (!Utils.Utils.HasCoverage()) { try { asyncServiceWorkerThread.Wait(); } catch (System.Exception e) { Log.Error(this.GetType().Name, "HandleRequests", "Exception caught while putting async service worker thread into wait state, " + e.Message); return; } } /* * Service Resumed */ iService.OnResume(); Handle(iService); } AsyncServiceWorker.GetInstance().StopWorker(); }