示例#1
0
        /// <summary>
        /// Get Simias Event Broker
        /// </summary>
        /// <returns>An instance of SimiasEventbroker</returns>
        public static SimiasEventBroker GetSimiasEventBroker()
        {
            lock (typeof(SimiasEventBroker))
            {
                if (instance == null)
                {
                    instance = new SimiasEventBroker();

                    instance.Register();
                }

                return(instance);
            }
        }
示例#2
0
 public LogWindow(Manager simiasManager)
     : base(Util.GS("iFolder Synchronization Log"))
 {
     CreateWidgets();
        ControlKeyPressed = false;
        KeyPressEvent += new KeyPressEventHandler(KeyPressHandler);
        KeyReleaseEvent += new KeyReleaseEventHandler(KeyReleaseHandler);
        simiasEventBroker = SimiasEventBroker.GetSimiasEventBroker();
        if (simiasEventBroker != null)
        {
     simiasEventBroker.CollectionSyncEventFired +=
      new CollectionSyncEventHandler(OniFolderSyncEvent);
     simiasEventBroker.FileSyncEventFired +=
      new FileSyncEventHandler(OniFolderFileSyncEvent);
        }
 }
示例#3
0
        /// <summary>
        /// Default constructor for LogWindow
        /// </summary>
        public LogWindow(Manager simiasManager)
            : base(Util.GS("iFolder Synchronization Log"))
        {
            this.simiasManager = simiasManager;

            CreateWidgets();

            // Bind ESC and C-w to close the window
            ControlKeyPressed = false;
            KeyPressEvent    += new KeyPressEventHandler(KeyPressHandler);
            KeyReleaseEvent  += new KeyReleaseEventHandler(KeyReleaseHandler);

            simiasEventBroker = SimiasEventBroker.GetSimiasEventBroker();
            if (simiasEventBroker != null)
            {
                simiasEventBroker.CollectionSyncEventFired +=
                    new CollectionSyncEventHandler(OniFolderSyncEvent);
                simiasEventBroker.FileSyncEventFired +=
                    new FileSyncEventHandler(OniFolderFileSyncEvent);
            }
        }
示例#4
0
 public iFolderWindow(iFolderWebService webService, SimiasWebService SimiasWS, Manager simiasManager)
     : base(Util.GS("iFolder"))
 {
     if(webService == null)
     throw new ApplicationException("iFolderWebServices was null");
        ifws = webService;
        simws = SimiasWS;
        this.simiasManager = simiasManager;
        ifdata = iFolderData.GetData();
        serverGroups = new Hashtable();
        serverGroupFilters = new Hashtable();
        PropDialogs = new Hashtable();
        ConflictDialogs = new Hashtable();
        lastXPos = -1;
        lastYPos = -1;
        searchTimeoutID = 0;
        domainController = DomainController.GetDomainController();
        bAvailableFoldersShowing = false;
        CreateWidgets();
        RefreshiFolders(true);
        if (domainController != null)
        {
     domainController.DomainAdded +=
      new DomainAddedEventHandler(OnDomainAddedEvent);
     domainController.DomainDeleted +=
      new DomainDeletedEventHandler(OnDomainDeletedEvent);
     domainController.DomainLoggedIn +=
      new DomainLoggedInEventHandler(OnDomainLoggedInEvent);
     domainController.DomainLoggedOut +=
      new DomainLoggedOutEventHandler(OnDomainLoggedOutEvent);
        }
        simiasEventBroker = SimiasEventBroker.GetSimiasEventBroker();
        if (simiasEventBroker != null)
        {
     simiasEventBroker.CollectionSyncEventFired +=
      new CollectionSyncEventHandler(OniFolderSyncEvent);
     simiasEventBroker.FileSyncEventFired +=
      new FileSyncEventHandler(OniFolderFileSyncEvent);
        }
        this.SetSizeRequest(730, 520);
 }
 private void StartiFolder()
 {
     bool simiasRunning = false;
        CurrentState = iFolderAppState.Starting;
        iFolderAppStateChanged.WakeupMain();
        {
     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)
      {
       simiasRunning = false;
      }
      if (forceShutdown)
      {
       QuitiFolder();
       return;
      }
      System.Threading.Thread.Sleep(10);
     }
        LogInit(simiasManager.DataPath);
     if (forceShutdown)
      QuitiFolder();
     else
     {
      try
      {
       simiasEventBroker = SimiasEventBroker.GetSimiasEventBroker();
       ifdata = iFolderData.GetData();
       domainController = DomainController.GetDomainController();
      }
      catch(Exception e)
      {
       Debug.PrintLine(e.Message);
       ifws = null;
      }
     }
        }
        CleanUpPassphrase();
        CurrentState = iFolderAppState.Running;
        iFolderAppStateChanged.WakeupMain();
 }
 public static SimiasEventBroker GetSimiasEventBroker()
 {
     lock (typeof(SimiasEventBroker))
        {
     if (instance == null)
     {
      instance = new SimiasEventBroker();
      instance.Register();
     }
     return instance;
        }
 }
示例#7
0
 private iFolderData()
 {
     simiasManager = Util.GetSimiasManager();
        try
        {
     Debug.PrintLine(String.Format("Url = {0}", simiasManager.WebServiceUri));
     ifws = new iFolderWebService();
     ifws.Url =
      simiasManager.WebServiceUri.ToString() +
      "/iFolder.asmx";
     LocalService.Start(ifws, simiasManager.WebServiceUri, simiasManager.DataPath);
        }
        catch(Exception e)
        {
     ifws = null;
     throw new Exception("Unable to create ifolder web service");
        }
        try
        {
     simws = new SimiasWebService();
     simws.Url =
      simiasManager.WebServiceUri.ToString() +
      "/Simias.asmx";
     LocalService.Start(simws, simiasManager.WebServiceUri, simiasManager.DataPath);
        }
        catch(Exception e)
        {
     simws = null;
     throw new Exception("Unable to create simias web service");
        }
        domainController = DomainController.GetDomainController();
        iFolderListStore = new ListStore(typeof(iFolderHolder));
        iFolderListStore.SetSortFunc(
     0,
     new TreeIterCompareFunc(TreeModelSortFunction));
        iFolderListStore.SetSortColumnId(0, SortType.Ascending);
        ifolderIters = new Hashtable();
        deletediFolders = new Hashtable();
        if (domainController != null)
        {
     domainController.DomainAdded +=
      new DomainAddedEventHandler(OnDomainAddedEvent);
     domainController.DomainDeleted +=
      new DomainDeletedEventHandler(OnDomainDeletedEvent);
     domainController.DomainLoggedOut +=
      new DomainLoggedOutEventHandler(OnDomainLoggedOutEvent);
        }
        eventBroker = SimiasEventBroker.GetSimiasEventBroker();
        if (eventBroker != null)
        {
     eventBroker.CollectionSyncEventFired += OniFolderSyncEvent;
     eventBroker.FileSyncEventFired += OniFolderFileSyncEvent;
        }
 }
示例#8
0
 private iFolderData()
 {
     Console.WriteLine("=====> iFolderData being constructed! <=====");
     Console.WriteLine("=====> iFolderData HashCode: {0} <=====", this.GetHashCode());
     Console.WriteLine("Current Thread: {0}", System.Threading.Thread.CurrentThread.Name);
     Console.WriteLine("Stack Trace:");
     Console.WriteLine(Environment.StackTrace);
        simiasManager = Util.GetSimiasManager();
        try
        {
     ifws = new iFolderWebService();
     ifws.Url =
      simiasManager.WebServiceUri.ToString() +
      "/iFolder.asmx";
     LocalService.Start(ifws, simiasManager.WebServiceUri, simiasManager.DataPath);
        }
        catch(Exception e)
        {
     ifws = null;
     throw new Exception("Unable to create ifolder web service");
        }
        try
        {
     simws = new SimiasWebService();
     simws.Url =
      simiasManager.WebServiceUri.ToString() +
      "/Simias.asmx";
     LocalService.Start(simws, simiasManager.WebServiceUri, simiasManager.DataPath);
        }
        catch(Exception e)
        {
     simws = null;
     throw new Exception("Unable to create simias web service");
        }
        domainController = DomainController.GetDomainController();
        iFolderListStore = new ListStore(typeof(iFolderHolder));
        ifolderIters = new Hashtable();
        subToiFolderMap = new Hashtable();
        if (domainController != null)
        {
     domainController.DomainAdded +=
      new DomainAddedEventHandler(OnDomainAddedEvent);
     domainController.DomainDeleted +=
      new DomainDeletedEventHandler(OnDomainDeletedEvent);
        }
        eventBroker = SimiasEventBroker.GetSimiasEventBroker();
        if (eventBroker != null)
        {
     eventBroker.CollectionSyncEventFired += OniFolderSyncEvent;
     eventBroker.FileSyncEventFired += OniFolderFileSyncEvent;
        }
        Refresh();
 }
 private void StartiFolder()
 {
     bool simiasRunning = false;
        CurrentState = iFolderState.Starting;
        iFolderStateChanged.WakeupMain();
        if(ifws == null)
        {
     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)
      {
       simiasRunning = false;
      }
      System.Threading.Thread.Sleep(10);
     }
     try
     {
      simiasEventBroker = SimiasEventBroker.GetSimiasEventBroker();
      ifdata = iFolderData.GetData();
      domainController = DomainController.GetDomainController();
     }
     catch(Exception e)
     {
      Console.WriteLine(e);
      ifws = null;
     }
        }
        CurrentState = iFolderState.Running;
        iFolderStateChanged.WakeupMain();
 }