diff options
| author | Kali Kaneko <kali@leap.se> | 2015-11-26 22:13:34 -0400 | 
|---|---|---|
| committer | Kali Kaneko <kali@leap.se> | 2015-12-15 15:19:41 -0400 | 
| commit | 869aa5354ff74be9e0203c37c5d54c79d8e32863 (patch) | |
| tree | 71ab98710a249f7337b6e7213d3bb0fac078cf27 | |
| parent | def5b89e6066335708b93b1dda1e65aaca8598ac (diff) | |
[feat] set syncable attribute
this allows to switch the online/offline mode on a running soledad
instance.
| -rw-r--r-- | client/src/leap/soledad/client/api.py | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/client/src/leap/soledad/client/api.py b/client/src/leap/soledad/client/api.py index 619671fd..78f9c652 100644 --- a/client/src/leap/soledad/client/api.py +++ b/client/src/leap/soledad/client/api.py @@ -187,6 +187,7 @@ class Soledad(object):          self._defer_encryption = defer_encryption          self._secrets_path = None          self._sync_enc_pool = None +        self._dbsyncer = None          self.shared_db = shared_db @@ -217,6 +218,7 @@ class Soledad(object):      #      # initialization/destruction methods      # +      def _init_config_with_defaults(self):          """          Initialize configuration using default values for missing params. @@ -658,6 +660,21 @@ class Soledad(object):      # ISyncableStorage      # +    def set_syncable(self, syncable): +        """ +        Toggle the syncable state for this database. + +        This can be used to start a database with offline state and switch it +        online afterwards. Or the opposite: stop syncs when connection is lost. + +        :param syncable: new status for syncable. +        :type syncable: bool +        """ +        # TODO should check that we've got a token! +        self.shared_db.syncable = syncable +        if syncable and not self._dbsyncer: +            self._init_u1db_syncer() +      def sync(self, defer_decryption=True):          """          Synchronize documents with the server replica. @@ -754,6 +771,14 @@ class Soledad(object):          """          return self.sync_lock.locked +    @property +    def syncable(self): +        if self.shared_db: +            return self.shared_db.syncable +        else: +            return False + +      def _set_token(self, token):          """          Set the authentication token for remote database access. | 
