コード例 #1
0
 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);
        }
 }
コード例 #2
0
 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);
        }
 }
コード例 #3
0
        ///<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();
                }
            }
        }