Skip to content

Commit

Permalink
adding operation to trigger replication
Browse files Browse the repository at this point in the history
  • Loading branch information
mschoch committed Jul 1, 2011
1 parent e79ee3b commit 8d378a7
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
2 changes: 2 additions & 0 deletions Source/CCouchDBServer.h
Expand Up @@ -43,4 +43,6 @@
- (CURLOperation *)operationToUpdateConfigurationKey:(NSString *)inConfigurationKey inSection:(NSString*)inConfigurationSection withValue:(id)inConfigurationValue withSuccessHandler:(CouchDBSuccessHandler)inSuccessHandler failureHandler:(CouchDBFailureHandler)inFailureHandler;
- (CURLOperation *)operationToDeleteConfigurationKey:(NSString *)inConfigurationKey inSection:(NSString*)inConfigurationSection withSuccessHandler:(CouchDBSuccessHandler)inSuccessHandler failureHandler:(CouchDBFailureHandler)inFailureHandler;

- (CURLOperation *)operationToTriggerReplicationFromSource:(NSString *)inSource toTarget:(NSString *)inTarget withOptions:(NSDictionary *)inOptions successHandler:(CouchDBSuccessHandler)inSuccessHandler failureHandler:(CouchDBFailureHandler)inFailureHandler;

@end
22 changes: 22 additions & 0 deletions Source/CCouchDBServer.m
Expand Up @@ -284,4 +284,26 @@ - (CURLOperation *)operationToDeleteConfigurationKey:(NSString *)inConfiguration
return(theOperation);
}

- (CURLOperation *)operationToTriggerReplicationFromSource:(NSString *)inSource toTarget:(NSString *)inTarget withOptions:(NSDictionary *)inOptions successHandler:(CouchDBSuccessHandler)inSuccessHandler failureHandler:(CouchDBFailureHandler)inFailureHandler
{
NSURL *theURL = [self.URL URLByAppendingPathComponent:@"_replicate"];
NSMutableDictionary *replicationSettings = [[[NSMutableDictionary alloc] initWithObjectsAndKeys:inSource, @"source", inTarget, @"target", nil] autorelease];
if (inOptions.count > 0)
{
[replicationSettings addEntriesFromDictionary:inOptions];
}
NSMutableURLRequest *theRequest = [self requestWithURL:theURL];
theRequest.HTTPMethod = @"POST";
[theRequest setValue:kContentTypeJSON forHTTPHeaderField:@"Accept"];

NSData *theData = [self.session.serializer serializeObject:replicationSettings error:NULL];
[theRequest setValue:kContentTypeJSON forHTTPHeaderField:@"Content-Type"];
[theRequest setHTTPBody:theData];

CCouchDBURLOperation *theOperation = [self.session URLOperationWithRequest:theRequest];
theOperation.successHandler = inSuccessHandler;
theOperation.failureHandler = inFailureHandler;
return(theOperation);
}

@end

0 comments on commit 8d378a7

Please sign in to comment.