Backendless Support
 

Support for cross-platform, multi-type atomic counters

There are plenty of use-cases when mBaaS-powered applications must use centralized mechanism for incrementing or decrementing a value.

There are several approaches for maintaining a counter - some apps use a database, others keep it in the server-side business logic. 

Backendless offers a specialized API for working with atomic counters. The Backendless API is a cross-platform - any number of different clients (including REST) can work with the same counter and update it concurrently. Every counter in Backendless has a name, which is assigned by the client application. 

The sample below demonstrates the API for incrementing and retrieving the value of a counter. 

                                            For Objective-C and Swift implementations CLICK HERE

Asynchronous sample (Android and Plain Java):

IAtomic<Integer> counter = Backendless.Counters.of( "my counter", Integer.class );
counter.incrementAndGet( new AsyncCallback<Integer>()
{
 @Override
 public void handleResponse( Integer counterValue )
 {
 System.out.println( "Counter value - " + counterValue );
 }
 @Override
 public void handleFault( BackendlessFault backendlessFault )
 {
 System.out.println( "Server reported an error " + backendlessFault.getMessage() );
 }
} );
Synchronous sample (Plain Java only):
IAtomic<Integer> counter = Backendless.Counters.of( "my counter", Integer.class );
int counterValue = counter.incrementAndGet();
System.out.println( "Counter value - " + counterValue );

The API is very easy to use and provides several other features like decrementing a value, performing a conditional update, retrieving current value and resetting a counter.

Is article helpful?