Skip to content

Decrement by 1, return current

Atomically decrements by one the current value and returns the updated (current) value of the counter. Multiple concurrent client requests are guaranteed to return unique updated value.

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

// Backendless.Counters approach
public Long Backendless.Counters.decrementAndGet( String counterName );

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

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

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

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

where:

Argument                Description
counterName name of the counter to decrement.
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.decrementAndGet( "my counter", callback );

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

Codeless Reference

codeless_atomic_counters_decrement_1_return_current

where:

Argument                Description
counter name Name of the counter whose value must be decremented.
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_decrement_1_return_previous_2

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

codeless_atomic_counters_decrement_1_return_current_2

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

codeless_atomic_counters_decrement_1_return_previous_4