com.netflix.curator.framework.recipes.shared
Class SharedCount

java.lang.Object
  extended by com.netflix.curator.framework.recipes.shared.SharedCount
All Implemented Interfaces:
Listenable<SharedCountListener>, SharedCountReader, Closeable

public class SharedCount
extends Object
implements Closeable, SharedCountReader, Listenable<SharedCountListener>

Manages a shared integer. All clients watching the same path will have the up-to-date value of the shared integer (considering ZK's normal consistency guarantees).


Constructor Summary
SharedCount(CuratorFramework client, String path, int seedValue)
           
 
Method Summary
 void addListener(SharedCountListener listener)
           
 void addListener(SharedCountListener listener, Executor executor)
           
 void close()
           
 int getCount()
          Return the current value of the count
 void removeListener(SharedCountListener listener)
           
 void setCount(int newCount)
          Change the shared count value irrespective of its previous state
 void start()
          The shared count must be started before it can be used.
 boolean trySetCount(int newCount)
          Changes the shared count only if its value has not changed since this client last read it.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SharedCount

public SharedCount(CuratorFramework client,
                   String path,
                   int seedValue)
Parameters:
client - the client
path - the shared path - i.e. where the shared count is stored
seedValue - the initial value for the count if/f the path has not yet been created
Method Detail

getCount

public int getCount()
Description copied from interface: SharedCountReader
Return the current value of the count

Specified by:
getCount in interface SharedCountReader
Returns:
count

setCount

public void setCount(int newCount)
              throws Exception
Change the shared count value irrespective of its previous state

Parameters:
newCount - new value
Throws:
Exception - ZK errors, interruptions, etc.

trySetCount

public boolean trySetCount(int newCount)
                    throws Exception
Changes the shared count only if its value has not changed since this client last read it. If the count has changed, the value is not set and this client's view of the value is updated. i.e. if the count is not successful you can get the updated value by calling getCount().

Parameters:
newCount - the new value to attempt
Returns:
true if the change attempt was successful, false if not. If the change was not successful, getCount() will return the updated value
Throws:
Exception - ZK errors, interruptions, etc.

addListener

public void addListener(SharedCountListener listener)
Specified by:
addListener in interface Listenable<SharedCountListener>

addListener

public void addListener(SharedCountListener listener,
                        Executor executor)
Specified by:
addListener in interface Listenable<SharedCountListener>

removeListener

public void removeListener(SharedCountListener listener)
Specified by:
removeListener in interface Listenable<SharedCountListener>

start

public void start()
           throws Exception
The shared count must be started before it can be used. Call close() when you are finished with the shared count

Throws:
Exception - ZK errors, interruptions, etc.

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Throws:
IOException


Copyright © 2012. All Rights Reserved.