照屋のぞみ
DSMに対して以下のコマンドを送り操作できる
put | データを追加する |
update | データを更新する |
peek | データを取得する |
take | データを取得する。取得したデータはDSMから削除される。 |
1つの Data Segment に対し以下の3種類の表現を同時に持たせ、必要に応じた形式で DS を扱う。 1. 一般的な Java のクラスオブジェクト 2. MessagePack for Java でシリアライズ化され たバイナリオブジェクト 3. 2 を圧縮したバイナリオブジェクト
public class ReceiveData {
private Object val = null;
private byte[] messagePack = null;
private byte[] zMessagePack = null;
}
public <T> T asClass(Class<T> clazz) {
if (val != null) { return (T) val; }
if (zMessagePack != null && messagePack == null) {
messagePack = unzip(zMessagePack, dataSize);
}
return packer.read(messagePack, clazz);
}
通常のデータを扱う場合
* put(String managerKey, String key, Object val)
* take(String managerKey, String key)
圧縮表現のデータを扱う場合
* put(String “compressed” + managerKey, String key, Object val)
* take(String “compressed” + managerKey, String key)
RingRelayTest