お世話になります。
github の pull request で既にお知らせさせていただいたのですが、
roma の java client に、add と cas コマンドを使えるように実装して
みました。
http://github.com/kikumoto/roma-java-client/tree/master
jp.co.rakuten.rit.roma.client.RomaClient インターフェイスに
boolean add(String key, byte[] value) throws ClientException;
boolean add(String key, byte[] value, Date expiry) throws
ClientException;
Map<String, CasValue> getsWithCasID(List<String> keys) throws
ClientException;
Map<String, CasValue> getsWithCasID(List<String> keys, boolean
useThreads) throws ClientException;
CasResponse cas(String key, long casID, byte[] value) throws
ClientException;
CasResponse cas(String key, long casID, byte[] value, Date expiry)
throws ClientException;
のメソッドを追加した形となっています。
add は既存処理をほぼ流用するかたちで実装できていますが、
gets/cas については結構ベタに書いてしまいました。
特に gets は既存の gets メソッドが Map<String, byte[]>
を戻り値の型として持ってしまっているので、別メソッド名で
とりあえず定義しました。
add, cas を利用する必要があったのですが、可能であればなんらか
の形で取り込んでいただけるとありがたいです。
よろしくお願いいたします。
ご連絡ありがとうございます。西澤無我です。
Java client に機能追加いただきありがとうございます。
ソースを読ませていただきました。テストもパスしておりますので、
クライアント本体にそのままマージさせていただきました。
gets についても、今のところいただいたままマージしてます。
#gets の戻り値は、Map<String, CasValue> の方が良いです。
#どこかのタイミングで、現行の gets を、きくもとさんのそれに
#変更できればと思います。
どうもありがとうございます。
西澤無我