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 );