public class CasGetCmd extends CmdBase implements Cmd<ByteArrayOutputStream>
An Usage Example:
Typical use case of this class is a counter. You will usually take the following 3 steps.
Here is an example code.
package com.example;
import ax.antpick.k2hdkc.*;
import com.sun.jna.*;
import com.sun.jna.ptr.*;
import java.io.IOException;
import java.util.*;
import java.util.stream.*;
public class App {
public static void main(String[] args) {
try (Cluster c = Cluster.of("cluster/slave.yaml");
Session s = Session.of(c); ) {
// 1. init
CasInitCmd init = CasInitCmd.of("key", 0);
System.out.println(init.execute(s).get().getValue()); // true
// 2. set
CasSetCmd set = CasSetCmd.of("key", 0, 1); // CasIncDecCmd should be used here.
System.out.println(set.execute(s).get().getValue()); // true
// 3. get
CasGetCmd get = CasGetCmd.of("key", Cmd.DataType.INT);
ByteArrayOutputStream bos = (ByteArrayOutputStream) get.execute(s).get().getValue();
assert (Cmd.getValusAsInt(bos.toByteArray()) == 1);
} catch (IOException ex) {
System.out.println(ex.getMessage());
assert (false);
}
}
}
You shoule see the "true" twice and "1" on the stdout if you could successfully run it. Before running the code above, You should run three processes.
The following commands in this repository will run all processes you need in localhost.
$ cd cluster
$ sh start_server.sh
Cmd.DataType
DEFAULT_CHECK_PARENT_ATTRS, DEFAULT_EXPIRATION_DURATION, DEFAULT_IS_CHECK_PARENT_ATTRS, DEFAULT_IS_CLEAR_SUBKEYS, DEFAULT_IS_FIFO, DEFAULT_IS_INCREMENT, DEFAULT_NEED_RETURN_VALUE, DEFAULT_PARENT_KEY, DEFAULT_PASS, DEFAULT_REMOVE_ELEMENT_SIZE, DEFAULT_REMOVE_RECURSIVELY, DEFAULT_SUBKEYS
Modifier and Type | Method and Description |
---|---|
<T> Optional<Result<T>> |
execute(Session session)
Gets a variable from a cluster using a CAS operation.
|
static CasGetCmd |
of(String key,
Cmd.DataType type)
Constructs a CasGetCmd instance.
|
static CasGetCmd |
of(String key,
Cmd.DataType type,
String pass,
long expirationDuration)
Constructs a CasGetCmd instance.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
bytesToInt, getValusAsInt
public static CasGetCmd of(String key, Cmd.DataType type, String pass, long expirationDuration)
key
- a key stringtype
- a data typepass
- a password stringexpirationDuration
- a duration to expire.IllegalArgumentException
- if a key or a val string is null or emptypublic static CasGetCmd of(String key, Cmd.DataType type)
key
- a key stringtype
- a DateType
instance.IllegalArgumentException
- if a key or a val string is null or emptypublic <T> Optional<Result<T>> execute(Session session) throws IOException
execute
in interface Cmd<ByteArrayOutputStream>
session
- a session instanceIllegalArgumentException
- if an illegal augment existsIOException
- if underlying library errors occur.Copyright © 2020. All rights reserved.