Increment by N, return previous¶
Atomically adds the given value to the current value and returns the previous value of the counter. It is possible that multiple concurrent client requests may receive the same previous value. This occurs since only the incrementing part of the logic is atomic, the retrieval of the value before it is incremented is not.
- (void)getAndAddWithCounterName:(NSString * _Nonnull)counterName value:(NSInteger)value responseHandler:^(NSInteger)responseHandler errorHandler:^(Fault * _Nonnull)errorHandler;
func getAndAdd(counterName: String, value: Int, responseHandler: ((Int) -> Void)!, errorHandler: ((Fault) -> Void)!)
where:
Argument | Description |
---|---|
counterName |
name of the counter to update. |
value |
number to add to the current counter value |
Example¶
[Backendless.shared.counters getAndAddWithCounterName:@"MyCounter" value:7 responseHandler:^(NSInteger value) {
NSLog(@"Previous value = %li", value);
} errorHandler:^(Fault *fault) {
NSLog(@"Error: %@", fault.message);
}];
//
id<IAtomic> myCounter = [Backendless.shared.counters ofCounterName:@"MyCounter"];
[myCounter getAndAddWithValue:7 responseHandler:^(NSInteger value) {
NSLog(@"Previous value = %li", value);
} errorHandler:^(Fault *fault) {
NSLog(@"Error: %@", fault.message);
}];
Backendless.shared.counters.getAndAdd(counterName: "MyCounter", value: 7, responseHandler: { value in
print("Previous value = \(value)")
}, errorHandler: { fault in
print("Error: \(fault.message ?? "")")
})
//
let myCounter = Backendless.shared.counters.of(counterName: "MyCounter")
myCounter.getAndAdd(value: 7, responseHandler: { value in
print("Previous value = \(value)")
}, errorHandler: { fault in
print("Error: \(fault.message ?? "")")
})