private DomainController() { Console.WriteLine("=====> DomainController being constructed! <====="); Console.WriteLine("=====> DomainController HashCode: {0} <=====", this.GetHashCode()); Console.WriteLine("Current Thread: {0}", System.Threading.Thread.CurrentThread.GetHashCode()); Console.WriteLine("Stack Trace:"); Console.WriteLine(Environment.StackTrace); this.simiasManager = Util.GetSimiasManager(); string localServiceUrl = simiasManager.WebServiceUri.ToString(); try { ifws = new iFolderWebService(); ifws.Url = localServiceUrl + "/iFolder.asmx"; LocalService.Start(ifws, simiasManager.WebServiceUri, simiasManager.DataPath); } catch(Exception e) { ifws = null; throw new Exception("Unable to create ifolder web service in DomainController"); } try { simws = new SimiasWebService(); simws.Url = localServiceUrl + "/Simias.asmx"; LocalService.Start(simws, simiasManager.WebServiceUri, simiasManager.DataPath); } catch(Exception e) { simws = null; throw new Exception("Unable to create simias web service in DomainController"); } keyedDomains = new Hashtable(); defDomainID = "0"; Refresh(); eventBroker = SimiasEventBroker.GetSimiasEventBroker(); if (eventBroker != null) { eventBroker.DomainUpEventFired += new DomainUpEventHandler(OnDomainUpEvent); eventBroker.DomainAdded += new DomainAddedEventHandler(OnDomainAddedEvent); eventBroker.DomainDeleted += new DomainDeletedEventHandler(OnDomainDeletedEvent); } }
private DomainController() { this.simiasManager = Util.GetSimiasManager(); string localServiceUrl = simiasManager.WebServiceUri.ToString(); try { ifws = new iFolderWebService(); ifws.Url = localServiceUrl + "/iFolder.asmx"; LocalService.Start(ifws, simiasManager.WebServiceUri, simiasManager.DataPath); } catch(Exception) { ifws = null; throw new Exception("Unable to create ifolder web service in DomainController"); } try { simws = new SimiasWebService(); simws.Url = localServiceUrl + "/Simias.asmx"; LocalService.Start(simws, simiasManager.WebServiceUri, simiasManager.DataPath); } catch(Exception) { simws = null; throw new Exception("Unable to create simias web service in DomainController"); } keyedDomains = new Hashtable(); defDomainID = "0"; Refresh(); eventBroker = SimiasEventBroker.GetSimiasEventBroker(); if (eventBroker != null) { eventBroker.DomainUpEventFired += new DomainUpEventHandler(OnDomainUpEvent); eventBroker.DomainAdded += new DomainAddedEventHandler(OnDomainAddedEvent); eventBroker.DomainDeleted += new DomainDeletedEventHandler(OnDomainDeletedEvent); } }
///<summary> /// Start Simias ///</summary> ///<param name="args">Array of strings as arguments</param> public static void StartSimias(string[] args) { bool simiasRunning = false; simiasManager = Util.CreateSimiasManager(args); simiasManager.Start(); string localServiceUrl = simiasManager.WebServiceUri.ToString(); ifws = new iFolderWebService(); ifws.Url = localServiceUrl + "/iFolder.asmx"; LocalService.Start(ifws, simiasManager.WebServiceUri, simiasManager.DataPath); simws = new SimiasWebService(); simws.Url = localServiceUrl + "/Simias.asmx"; LocalService.Start(simws, simiasManager.WebServiceUri, simiasManager.DataPath); while (!simiasRunning) { try { ifws.Ping(); simiasRunning = true; } catch (Exception e) { Console.WriteLine(e.Message); } if (forceShutdown) { ForceQuit(); } // Wait and ping again System.Threading.Thread.Sleep(10); } if (forceShutdown) { ForceQuit(); } else { try { simiasEventBroker = SimiasEventBroker.GetSimiasEventBroker(); // set up to have data ready for events ifdata = iFolderData.GetData(); domainController = DomainController.GetDomainController(); } catch (Exception e) { Console.WriteLine(e); ifws = null; ForceQuit(); } } }