CBLReplicatorConfiguration
@interface CBLReplicatorConfiguration : NSObject
Replicator Configuration
-
The local database to replicate with the target endpoint.
Declaration
Objective-C
@property (nonatomic, readonly) __deprecated_msg(" Use config.collections instead") CBLDatabase *database;
-
The replication endpoint to replicate with.
Declaration
Objective-C
@property (nonatomic, readonly) id<CBLEndpoint> _Nonnull target;
-
Replication type indicating the direction of the replication. The default value is .pushAndPull which is bidrectional.
Declaration
Objective-C
@property (nonatomic) CBLReplicatorType replicatorType;
-
Should the replicator stay active indefinitely, and push/pull changed documents?. The default value is NO.
Declaration
Objective-C
@property (nonatomic) BOOL continuous;
-
An Authenticator to authenticate with a remote server. Currently there are two types of the authenticators, CBLBasicAuthenticator and CBLSessionAuthenticator, supported.
Declaration
Objective-C
@property (nonatomic, nullable) CBLAuthenticator *authenticator;
-
The remote target’s SSL certificate.
@Note: The pinned cert will be evaluated against any certs in a cert chain, and the cert chain will be valid only if the cert chain contains the pinned cert.
Declaration
Objective-C
@property (nonatomic, nullable) SecCertificateRef pinnedServerCertificate;
-
Extra HTTP headers to send in all requests to the remote target.
Declaration
Objective-C
@property (nonatomic, nullable) NSDictionary<NSString *, NSString *> *headers;
-
Specific network interface (e.g. en0 and pdp_ip0) for connecting to the remote target.
Declaration
Objective-C
@property (nonatomic, nullable) NSString *networkInterface;
-
The option to remove the restriction that does not allow the replicator to save the parent-domain cookies, the cookies whose domains are the parent domain of the remote host, from the HTTP response. For example, when the option is set to true, the cookies whose domain are “.foo.com” returned by “bar.foo.com” host will be permitted to save.
This option is disabled by default (See
kCBLDefaultReplicatorAcceptParentCookies
) which means that the parent-domain cookies are not permitted to save by default.Declaration
Objective-C
@property (nonatomic) BOOL acceptParentDomainCookies;
-
Channels filter when using init(database:target:) to configure the default collection for the replication.
@Note: Channels are not supported in Peer-to-Peer and Database-to-Database replication.
Declaration
Objective-C
@property (nonatomic, nullable) NSArray<NSString *> *channels;
-
documentIDs filter when using init(database:target:) to configure the default collection for the replication.
Declaration
Objective-C
@property (nonatomic, nullable) NSArray<NSString *> *documentIDs;
-
Push filter when using init(database:target:) to configure the default collection for the replication.
Declaration
Objective-C
@property (nonatomic, nullable) CBLReplicationFilter pushFilter;
-
Pull filter when using init(database:target:) to configure the default collection for the replication.
Declaration
Objective-C
@property (nonatomic, nullable) CBLReplicationFilter pullFilter;
-
Conflict resolver when using init(database:target:) to configure the default collection for the replication.
Declaration
Objective-C
@property (nonatomic, nullable) id<CBLConflictResolver> conflictResolver;
-
The heartbeat interval in second.
The interval when the replicator sends the ping message to check whether the other peer is still alive. Default heartbeat is
kCBLDefaultReplicatorHeartbeat
seconds.@Note: Setting the heartbeat to negative value will result in InvalidArgumentException being thrown. For backward compatibility, setting to zero will result in default heartbeat internally.
Declaration
Objective-C
@property (nonatomic) NSTimeInterval heartbeat;
-
The maximum attempts to perform retry. The retry attempt will be reset when the replicator is able to connect and replicate with the remote server again.
Default maxAttempts is
kCBLDefaultReplicatorMaxAttemptsSingleShot
times for single shot replicators andkCBLDefaultReplicatorMaxAttemptsContinuous
times for continuous replicators.Settings the value to 1, will perform an initial request and if there is a transient error occurs, will stop without retry.
@Note: For backward compatibility, setting it to zero will result in default maxAttempt internally.
Declaration
Objective-C
@property (nonatomic) NSUInteger maxAttempts;
-
Max wait time for the next attempt(retry).
The exponential backoff for calculating the wait time will be used by default and cannot be customized. Default max attempts is
kCBLDefaultReplicatorMaxAttemptWaitTime
seconds.@Note: Set the maxAttemptWaitTime to negative value will result in InvalidArgumentException being thrown. For backward compatibility, setting it to zero will result in default maxAttemptWaitTime internally.
Declaration
Objective-C
@property (nonatomic) NSTimeInterval maxAttemptWaitTime;
-
To enable/disable the auto purge feature
The default value is true which means that the document will be automatically purged by the pull replicator when the user loses access to the document from both removed and revoked scenarios.
When the property is set to false, this behavior is disabled and an access removed event will be sent to any document listeners that are active on the replicator. For performance reasons, the document listeners must be added before the replicator is started or they will not receive the events.
@Note: Auto purge will not be performed when documentIDs filter is specified.
Declaration
Objective-C
@property (nonatomic) BOOL enableAutoPurge;
-
The collections used for the replication.
Declaration
Objective-C
@property (nonatomic, readonly) NSArray<CBLCollection *> *_Nonnull collections;
-
Not available
Declaration
Objective-C
- (nonnull instancetype)init;
-
Initializes a CBLReplicatorConfiguration with the local database and the target endpoint.
Declaration
Objective-C
- (nonnull instancetype)initWithDatabase:(nonnull CBLDatabase *)database target:(nonnull id<CBLEndpoint>)target;
Parameters
database
The database.
target
The target endpoint.
Return Value
The CBLReplicatorConfiguration object.
-
Create a ReplicatorConfiguration object with the target’s endpoint. After the ReplicatorConfiguration object is created, use addCollection(_ collection:, config:) or addCollections(_ collections:, config:) to specify and configure the collections used for replicating with the target. If there are no collections specified, the replicator will fail to start with a no collections specified error.
Declaration
Objective-C
- (nonnull instancetype)initWithTarget:(nonnull id<CBLEndpoint>)target;
Parameters
target
The target endpoint.
Return Value
The CBLReplicatorConfiguration object.
-
Initializes a CBLReplicatorConfiguration with the configuration object.
Declaration
Objective-C
- (nonnull instancetype)initWithConfig: (nonnull CBLReplicatorConfiguration *)config;
Parameters
config
The configuration.
Return Value
The CBLReplicatorConfiguration object.
-
Add a collection used for the replication with an optional collection configuration. If the collection has been added before, the previous added and its configuration if specified will be replaced. If a null configuration is specified, a default empty configuration will be applied.
Declaration
Objective-C
- (void)addCollection:(nonnull CBLCollection *)collection config:(nullable CBLCollectionConfiguration *)config;
Parameters
collection
The collection to be added.
config
Configuration for the collection, if nil, default config
-
Add multiple collections used for the replication with an optional shared collection configuration. If any of the collections have been added before, the previously added collections and their configuration if specified will be replaced. Adding an empty collection array will be no-ops. if specified will be replaced.
If a null configuration is specified, a default empty configuration will be applied.
Declaration
Objective-C
- (void)addCollections:(nonnull NSArray *)collections config:(nullable CBLCollectionConfiguration *)config;
Parameters
collections
The collections to be added.
config
Respective configuration for the collections, if nil, default config
-
Remove the collection. If the collection doesn’t exist, this operation will be no ops.
Declaration
Objective-C
- (void)removeCollection:(nonnull CBLCollection *)collection;
Parameters
collection
The collection to be removed.
-
Get a copy of the collection’s config. If the config needs to be changed for the collection, the collection will need to be re-added with the updated config.
Declaration
Objective-C
- (nullable CBLCollectionConfiguration *)collectionConfig: (nonnull CBLCollection *)collection;
Parameters
collection
The collection whose config is needed.
Return Value
The collection configuration, or nil if config doesn’t exist
-
ENTERPRISE EDITION ONLY.
Specify the replicator to accept any and only self-signed certs. Any non-self-signed certs will be rejected to avoid accidentally using this mode with the non-self-signed certs in production.
Default value is
kCBLDefaultReplicatorSelfSignedCertificateOnly
Declaration
Objective-C
@property (nonatomic) BOOL acceptOnlySelfSignedServerCertificate;