Пример #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;
 }
Пример #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;
 }
Пример #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;
     }
 }
Пример #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());
     }
 }
Пример #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());
     }
 }
Пример #6
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;
                    }
                    _connectionError = false;
                    break;

                case ISessionStatus.__Fields.STATUSCODE_ERROR:
                    _connectionError = true;
                    break;
            }
        }
Пример #7
0
 /// <summary>
 /// Receives status messages from the FXCM API
 /// </summary>
 /// <param name="message">Status message received</param>
 public void messageArrived(ISessionStatus message)
 {
 }
Пример #8
0
 /// <summary>
 /// Receives status messages from the FXCM API
 /// </summary>
 /// <param name="message">Status message received</param>
 public void messageArrived(ISessionStatus message)
 {
 }
Пример #9
0
 /// <summary>
 /// ctor
 /// </summary>
 /// <param name="comListener"></param>
 public NativeSessionStatusListener(ISessionStatus comListener, Session session)
 {
     mComListener = comListener;
     mSession     = session;
 }
Пример #10
0
        /// <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;
            }
        }