Conditional update¶
Atomically sets the value to the given updated value if the current value == the expected value.
// *******************************************
// synchronous methods
// *******************************************
// Backendless.Counters approach
public bool Backendless.Counters.CompareAndSet( String counterName, Int64 expected, Int64 updated );
// IAtomic approach
IAtomic<T> counter = Backendless.Counters.Of<T>( String counterName );
public bool counter.CompareAndSet( Int64 expected, Int64 updated );
// *******************************************
// asynchronous methods
// *******************************************
// Backendless.Counters approach
public void Backendless.Counters.CompareAndSet<T>( String counterName, Int64 expected, Int64 updated, AsyncCallback<bool> callback );
// IAtomic approach
IAtomic<T> counter = Backendless.Counters.Of<T>( String counterName );
public void counter.CompareAndSet( Int64 expected, Int64 updated, AsyncCallback<T> callback );
where:
Argument | Description |
---|---|
counterName |
name of the counter to update. |
expected |
the expected value of the counter. If the current value equals the expected value, the counter is set to the "updated " value. |
updated |
the new value to assign to the counter if the current value equals the expected value. |
callback |
the callback used for asynchronous calls to indicate that the operation has either successfully completed or resulted in error. |
Example¶
AsyncCallback<bool> callback = new AsyncCallback<bool>(
result =>
{
System.Console.WriteLine( "[ASYNC] valud has been updated? - " + result );
},
fault =>
{
System.Console.WriteLine( "Error - " + fault );
} );
Backendless.Counters.CompareAndSet( "my counter", 1000, 2000, callback );
IAtomic<int> myCounter = Backendless.Counters.Of<int>( "my counter" );
bool updateResult = myCounter.CompareAndSet( 1000, 2000 );
System.Console.WriteLine( "[SYNC] value has been updated? - " + updateResult );
updateResult = Backendless.Counters.CompareAndSet( "my counter", 2000, 3000 );
System.Console.WriteLine( "[SYNC] value has been updated? - " + updateResult );