Skip to content

Commit

Permalink
Simplify resource option/configuration APIs.
Browse files Browse the repository at this point in the history
  • Loading branch information
kuujo committed Feb 12, 2016
1 parent de4cc2f commit 6d7e82f
Show file tree
Hide file tree
Showing 27 changed files with 972 additions and 172 deletions.
Expand Up @@ -47,7 +47,25 @@
* @author <a href="http://github.com/kuujo">Jordan Halterman</a> * @author <a href="http://github.com/kuujo">Jordan Halterman</a>
*/ */
@ResourceTypeInfo(id=-11, stateMachine=MapState.class, typeResolver=MapCommands.TypeResolver.class) @ResourceTypeInfo(id=-11, stateMachine=MapState.class, typeResolver=MapCommands.TypeResolver.class)
public class DistributedMap<K, V> extends Resource<DistributedMap<K, V>, Resource.Options> { public class DistributedMap<K, V> extends Resource<DistributedMap<K, V>> {

/**
* Returns new map options.
*
* @return New map options.
*/
public static Options options() {
return new Options();
}

/**
* Returns a new map configuration.
*
* @return A new map configuration.
*/
public static Config config() {
return new Config();
}


public DistributedMap(CopycatClient client, Resource.Options options) { public DistributedMap(CopycatClient client, Resource.Options options) {
super(client, options); super(client, options);
Expand Down
Expand Up @@ -31,7 +31,25 @@
* @author <a href="http://github.com/kuujo>Jordan Halterman</a> * @author <a href="http://github.com/kuujo>Jordan Halterman</a>
*/ */
@ResourceTypeInfo(id=-12, stateMachine=MultiMapState.class, typeResolver=MultiMapCommands.TypeResolver.class) @ResourceTypeInfo(id=-12, stateMachine=MultiMapState.class, typeResolver=MultiMapCommands.TypeResolver.class)
public class DistributedMultiMap<K, V> extends Resource<DistributedMultiMap<K, V>, Resource.Options> { public class DistributedMultiMap<K, V> extends Resource<DistributedMultiMap<K, V>> {

/**
* Returns new multimap options.
*
* @return New multimap options.
*/
public static Options options() {
return new Options();
}

/**
* Returns a new multimap configuration.
*
* @return A new multimap configuration.
*/
public static Config config() {
return new Config();
}


public DistributedMultiMap(CopycatClient client, Resource.Options options) { public DistributedMultiMap(CopycatClient client, Resource.Options options) {
super(client, options); super(client, options);
Expand Down
Expand Up @@ -30,7 +30,25 @@
* @author <a href="http://github.com/kuujo">Jordan Halterman</a> * @author <a href="http://github.com/kuujo">Jordan Halterman</a>
*/ */
@ResourceTypeInfo(id=-14, stateMachine=QueueState.class, typeResolver=QueueCommands.TypeResolver.class) @ResourceTypeInfo(id=-14, stateMachine=QueueState.class, typeResolver=QueueCommands.TypeResolver.class)
public class DistributedQueue<T> extends Resource<DistributedQueue<T>, Resource.Options> { public class DistributedQueue<T> extends Resource<DistributedQueue<T>> {

/**
* Returns new queue options.
*
* @return New queue options.
*/
public static Options options() {
return new Options();
}

/**
* Returns a new queue configuration.
*
* @return A new queue configuration.
*/
public static Config config() {
return new Config();
}


public DistributedQueue(CopycatClient client, Resource.Options options) { public DistributedQueue(CopycatClient client, Resource.Options options) {
super(client, options); super(client, options);
Expand Down
Expand Up @@ -31,7 +31,25 @@
* @author <a href="http://github.com/kuujo">Jordan Halterman</a> * @author <a href="http://github.com/kuujo">Jordan Halterman</a>
*/ */
@ResourceTypeInfo(id=-13, stateMachine=SetState.class, typeResolver=SetCommands.TypeResolver.class) @ResourceTypeInfo(id=-13, stateMachine=SetState.class, typeResolver=SetCommands.TypeResolver.class)
public class DistributedSet<T> extends Resource<DistributedSet<T>, Resource.Options> { public class DistributedSet<T> extends Resource<DistributedSet<T>> {

/**
* Returns new set options.
*
* @return New set options.
*/
public static Options options() {
return new Options();
}

/**
* Returns a new set configuration.
*
* @return A new set configuration.
*/
public static Config config() {
return new Config();
}


public DistributedSet(CopycatClient client, Resource.Options options) { public DistributedSet(CopycatClient client, Resource.Options options) {
super(client, options); super(client, options);
Expand Down
Expand Up @@ -92,7 +92,26 @@
* @author <a href="http://github.com/kuujo>Jordan Halterman</a> * @author <a href="http://github.com/kuujo>Jordan Halterman</a>
*/ */
@ResourceTypeInfo(id=-20, stateMachine=GroupState.class, typeResolver=GroupCommands.TypeResolver.class) @ResourceTypeInfo(id=-20, stateMachine=GroupState.class, typeResolver=GroupCommands.TypeResolver.class)
public class DistributedGroup extends Resource<DistributedGroup, Resource.Options> { public class DistributedGroup extends Resource<DistributedGroup> {

/**
* Returns new group options.
*
* @return New group options.
*/
public static Options options() {
return new Options();
}

/**
* Returns a new group configuration.
*
* @return A new group configuration.
*/
public static Config config() {
return new Config();
}

private final Listeners<GroupMember> joinListeners = new Listeners<>(); private final Listeners<GroupMember> joinListeners = new Listeners<>();
private final Listeners<GroupMember> leaveListeners = new Listeners<>(); private final Listeners<GroupMember> leaveListeners = new Listeners<>();
private final Listeners<Long> termListeners = new Listeners<>(); private final Listeners<Long> termListeners = new Listeners<>();
Expand Down
Expand Up @@ -78,7 +78,26 @@
* @author <a href="http://github.com/kuujo">Jordan Halterman</a> * @author <a href="http://github.com/kuujo">Jordan Halterman</a>
*/ */
@ResourceTypeInfo(id=-22, stateMachine=LockState.class, typeResolver=LockCommands.TypeResolver.class) @ResourceTypeInfo(id=-22, stateMachine=LockState.class, typeResolver=LockCommands.TypeResolver.class)
public class DistributedLock extends Resource<DistributedLock, Resource.Options> { public class DistributedLock extends Resource<DistributedLock> {

/**
* Returns new lock options.
*
* @return New lock options.
*/
public static Options options() {
return new Options();
}

/**
* Returns a new lock configuration.
*
* @return A new lock configuration.
*/
public static Config config() {
return new Config();
}

private final Queue<Consumer<Long>> queue = new ConcurrentLinkedQueue<>(); private final Queue<Consumer<Long>> queue = new ConcurrentLinkedQueue<>();


public DistributedLock(CopycatClient client, Resource.Options options) { public DistributedLock(CopycatClient client, Resource.Options options) {
Expand Down

0 comments on commit 6d7e82f

Please sign in to comment.