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 Long Backendless.Counters.addAndGet( String counterName, Number value );

// IAtomic approach
IAtomic<T> counter = Backendless.Counters.of( String counterName, 
                                                    Class<? extends T> type );
public T counter.addAndGet( Number value );

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

// Backendless.Counters approach
public <T> T Backendless.Counters.addAndGet( String counterName, 
                                                   Number value, 
                                                   AsyncCallback<T> callback );

// IAtomic approach
IAtomic<T> counter = Backendless.Counters.of( String counterName, 
                                                    Class<? extends T> type );
public T counter.addAndGet( Number value, AsyncCallback<T> callback );

where:

Argument                Description
counterName name of the counter to update.
value number to add to the current counter value
type numeric type for the counter values. Can be an instance of Byte.class, Short.class, Integer.class, Float.class, Long.class and Double.class.
callback the callback used for asynchronous calls to indicate that the operation has either successfully completed or resulted in error.

Example

AsyncCallback<Integer> callback = new AsyncCallback<Integer>()
{
  @Override
  public void handleResponse( Integer value )
  {
    Log.i( "MYAPP", "[ASYNC] current counter value is - " + value );
  }

  @Override
  public void handleFault( BackendlessFault backendlessFault )
  {
    Log.e( "MYAPP", "Error - " + backendlessFault.getMessage() );
  }
};

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

IAtomic<Integer> myCounter = Backendless.Counters.of( "my counter", Integer.class );
int counterValue = myCounter.addAndGet( 2000 );
Log.i( "MYAPP", "[SYNC] current counter value is - " + counterValue );