Skip to content

Increment by N, return current

Atomically adds the given value to the current value and returns the updated (current) value of the counter. Multiple concurrent client requests are guaranteed to return updated value.

// *******************************************
// synchronous methods
// *******************************************

// Backendless.Counters approach
public int Backendless.Counters.AddAndGet( String counterName, Int64 value );
public T Backendless.Counters.AddAndGet<T>( String counterName, Int64 value );

// IAtomic approach
IAtomic<T> counter = Backendless.Counters.Of<T>( String counterName );
public T counter.AddAndGet( Int64 value );

// *******************************************
// asynchronous methods
// *******************************************

// Backendless.Counters approach
public void Backendless.Counters.AddAndGet<T>( String counterName, Int64 value, AsyncCallback<T> callback );

// IAtomic approach
IAtomic<T> counter = Backendless.Counters.Of<T>( String counterName );
public void counter.AddAndGet( Int64 value, AsyncCallback<T> callback );

where:

Argument                Description
counterName name of the counter to increment.
value number to add to the current counter value
T numeric type for the counter values. Can be an instance of byte, short, int, float, long and double.
callback the callback used for asynchronous calls to indicate that the operation has either successfully completed or resulted in error.

Example

AsyncCallback<int> callback = new AsyncCallback<int>(
  result =>
  {
    System.Console.WriteLine( "[ASYNC] current counter value is - " + result );
  },
  fault =>
  {
     System.Console.WriteLine( "Error - " + fault );
  } );

Backendless.Counters.AddAndGet( "my counter", 1000, callback );

IAtomic<int> myCounter = Backendless.Counters.Of<int>( "my counter" );
int counter = myCounter.AddAndGet( 1000 );
System.Console.WriteLine( "[SYNC] current counter value through IAtomic is - " + counter );

counter = Backendless.Counters.AddAndGet( "my counter", 1000 );
System.Console.WriteLine( "[SYNC] current counter value is - " + counter );

long longCounter = Backendless.Counters.AddAndGet<long>( "my counter", 1000 );
System.Console.WriteLine( "[SYNC] current counter value is - " + longCounter );

Codeless Reference

codeless_atomic_counters_increment_1_return_current

where:

Argument                Description
counter name Name of the counter whose value must be incremented.
increment by Specify the number to increment the value by.
return current value When this box is checked, the operation returns the current value of the counter.

Returns the current value of the counter.

Consider the following counter:

codeless_atomic_counters_increment_1_return_previous_2

The example below increments the value of the "CarsParkingLot" by 20. This operation returns 20, since the return current value box is checked.

codeless_atomic_counters_increment_n_return_current_2

The result of this operation will look as shown below after the Codeless logic runs:

codeless_atomic_counters_increment_n_return_previous_3