Example #1
0
 public SessionFactory(AbstractLogger logger, ICoroutineManager coroutineManager, IStopwatch pollCountdownStopwatch, IEpochTime epochTime, DatabaseCorruptionHandler databaseCorruptionHandler, INotificationQueue notificationQueue, INotificationDispatcher notificationDispatcher, ISessionStatus sessionStatus, IMixWebCallFactoryFactory mixWebCallFactoryFactory, IWebCallEncryptorFactory webCallEncryptorFactory, IMixSessionStarter mixSessionStarter, IKeychain keychain, ISessionRefresherFactory sessionRefresherFactory, IGuestControllerClientFactory guestControllerClientFactory, IRandom random, IEncryptor encryptor, IFileSystem fileSystem, IWwwCallFactory wwwCallFactory, string localStorageDirPath, string clientVersion, IDatabaseDirectoryCreator databaseDirectoryCreator, IDocumentCollectionFactory documentCollectionFactory, IDatabase database)
 {
     this.logger                       = logger;
     this.coroutineManager             = coroutineManager;
     this.pollCountdownStopwatch       = pollCountdownStopwatch;
     this.epochTime                    = epochTime;
     this.databaseCorruptionHandler    = databaseCorruptionHandler;
     this.notificationQueue            = notificationQueue;
     this.notificationDispatcher       = notificationDispatcher;
     this.sessionStatus                = sessionStatus;
     this.mixWebCallFactoryFactory     = mixWebCallFactoryFactory;
     this.webCallEncryptorFactory      = webCallEncryptorFactory;
     this.mixSessionStarter            = mixSessionStarter;
     this.keychain                     = keychain;
     this.sessionRefresherFactory      = sessionRefresherFactory;
     this.guestControllerClientFactory = guestControllerClientFactory;
     this.random                       = random;
     this.encryptor                    = encryptor;
     this.fileSystem                   = fileSystem;
     this.wwwCallFactory               = wwwCallFactory;
     this.localStorageDirPath          = localStorageDirPath;
     this.clientVersion                = clientVersion;
     this.databaseDirectoryCreator     = databaseDirectoryCreator;
     this.documentCollectionFactory    = documentCollectionFactory;
     this.database                     = database;
 }
Example #2
0
 public Session(AbstractLogger logger, IInternalLocalUser localUser, string guestControllerAccessToken, bool pushNotificationsEnabled, INotificationPoller notificationPoller, ICoroutineManager coroutineManager, IDatabase database, IUserDatabase userDatabase, IGuestControllerClient guestControllerClient, IMixWebCallFactory mixWebCallFactory, IEpochTime epochTime, DatabaseCorruptionHandler databaseCorruptionHandler, ISessionStatus sessionStatus, IKeychain keychain, IGetStateResponseParser getStateResponseParser, string clientVersion, INotificationQueue notificationQueue)
 {
     this.logger                                     = logger;
     this.localUser                                  = localUser;
     this.notificationPoller                         = notificationPoller;
     this.coroutineManager                           = coroutineManager;
     this.database                                   = database;
     this.userDatabase                               = userDatabase;
     this.guestControllerClient                      = guestControllerClient;
     this.mixWebCallFactory                          = mixWebCallFactory;
     this.epochTime                                  = epochTime;
     this.databaseCorruptionHandler                  = databaseCorruptionHandler;
     this.sessionStatus                              = sessionStatus;
     this.keychain                                   = keychain;
     this.getStateResponseParser                     = getStateResponseParser;
     this.clientVersion                              = clientVersion;
     this.notificationQueue                          = notificationQueue;
     GuestControllerAccessToken                      = guestControllerAccessToken;
     guestControllerClient.OnAccessTokenChanged     += HandleGuestControllerAccessTokenChanged;
     guestControllerClient.OnAuthenticationLost     += HandleAuthenticationLost;
     mixWebCallFactory.OnAuthenticationLost         += HandleAuthenticationLost;
     localUser.OnPushNotificationsToggled           += HandlePushNotificationsToggled;
     localUser.OnPushNotificationReceived           += HandlePushNotificationReceived;
     localUser.OnDisplayNameUpdated                 += HandleDisplayNameUpdated;
     databaseCorruptionHandler.OnCorruptionDetected += HandleCorruptionDetected;
     updateEnumerator                                = Update();
     coroutineManager.Start(updateEnumerator);
     notificationPoller.OnNotificationsPolled += HandleNotificationsPolled;
     notificationPoller.UsePollIntervals       = !pushNotificationsEnabled;
     this.sessionStatus.IsPaused = true;
     notificationPoller.OnSynchronizationError += HandleNotificationPollerSynchronizationError;
 }
Example #3
0
 /// <summary>
 /// Receives status messages from the FXCM API
 /// </summary>
 /// <param name="message">Status message received</param>
 public void messageArrived(ISessionStatus message)
 {
     switch (message.getStatusCode())
     {
     case ISessionStatus.__Fields.STATUSCODE_READY:
         lock (_lockerConnectionMonitor)
         {
             _lastReadyMessageTime = DateTime.UtcNow;
         }
         break;
     }
 }
Example #4
0
 /// <summary>
 /// IStatusMessageListener implementation to capture and process messages sent back from API
 /// </summary>
 /// <param name="status">Status message received by API</param>
 public void messageArrived(ISessionStatus status)
 {
     // check the status code
     if (status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_ERROR ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_DISCONNECTING ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_CONNECTING ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_CONNECTED ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_CRITICAL_ERROR ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_EXPIRED ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_LOGGINGIN ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_LOGGEDIN ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_PROCESSING ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_DISCONNECTED)
     {
         // display status message
         Console.WriteLine("\t" + status.getStatusMessage());
     }
 }
Example #5
0
 /// <summary>
 /// IStatusMessageListener implementation to capture and process messages sent back from API
 /// </summary>
 /// <param name="status">Status message received by API</param>
 public void messageArrived(ISessionStatus status)
 {
     // check the status code
     if (status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_ERROR ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_DISCONNECTING ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_CONNECTING ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_CONNECTED ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_CRITICAL_ERROR ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_EXPIRED ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_LOGGINGIN ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_LOGGEDIN ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_PROCESSING ||
         status.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_DISCONNECTED)
     {
         // display status message
         Console.WriteLine("\t" + status.getStatusMessage());
     }
 }
        /// <summary>
        /// Receives status messages from the FXCM API
        /// </summary>
        /// <param name="message">Status message received</param>
        public void messageArrived(ISessionStatus message)
        {
            switch (message.getStatusCode())
            {
                case ISessionStatus.__Fields.STATUSCODE_READY:
                    lock (_lockerConnectionMonitor)
                    {
                        _lastReadyMessageTime = DateTime.UtcNow;
                    }
                    _connectionError = false;
                    break;

                case ISessionStatus.__Fields.STATUSCODE_ERROR:
                    _connectionError = true;
                    break;
            }
        }
 /// <summary>
 /// Receives status messages from the FXCM API
 /// </summary>
 /// <param name="message">Status message received</param>
 public void messageArrived(ISessionStatus message)
 {
 }
 /// <summary>
 /// Receives status messages from the FXCM API
 /// </summary>
 /// <param name="message">Status message received</param>
 public void messageArrived(ISessionStatus message)
 {
 }
Example #9
0
 /// <summary>
 /// ctor
 /// </summary>
 /// <param name="comListener"></param>
 public NativeSessionStatusListener(ISessionStatus comListener, Session session)
 {
     mComListener = comListener;
     mSession     = session;
 }
        /// <summary>
        /// Receives status messages from the FXCM API
        /// </summary>
        /// <param name="message">Status message received</param>
        public void messageArrived(ISessionStatus message)
        {
            if (message.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_ERROR && !_connectionLost)
            {
                OnMessage(BrokerageMessageEvent.Disconnected("Connection with FXCM server lost. " +
                    "This could be because of internet connectivity issues. " +
                    "Error message: " + message.getStatusMessage()));

                _connectionLost = true;
            }
            else if (message.getStatusCode() == ISessionStatus.__Fields.STATUSCODE_READY && _connectionLost)
            {
                OnMessage(BrokerageMessageEvent.Reconnected("Connection with FXCM server restored."));

                _connectionLost = false;
            }
        }