use of org.jgroups.util.Buffer in project JGroups by belaban.
the class MessageDispatcherSpeedTest method sendMessages.
void sendMessages(int num) throws Exception {
long start, stop;
int show = num / 10;
if (show <= 0)
show = 1;
start = System.currentTimeMillis();
RequestOptions opts = new RequestOptions(ResponseMode.GET_ALL, TIMEOUT).flags(Message.Flag.DONT_BUNDLE, Message.Flag.NO_FC);
byte[] data = "bla".getBytes();
Buffer buf = new Buffer(data, 0, data.length);
System.out.println("-- sending " + num + " messages");
for (int i = 1; i <= num; i++) {
disp.castMessage(null, buf, opts);
if (i % show == 0)
System.out.println("-- sent " + i);
}
stop = System.currentTimeMillis();
printStats(stop - start, num);
}
use of org.jgroups.util.Buffer in project JGroups by belaban.
the class GroupRequestTest method testGetAllWithResponseFilter.
public void testGetAllWithResponseFilter() throws Exception {
Object[] responses = { new Message(null, (long) 1).src(a), new Message(null, (long) 2).src(b), new Message(null, (long) 3).src(c) };
MyCorrelator corr = new MyCorrelator(true, responses, 500);
dests.add(c);
GroupRequest<Long> req = new GroupRequest<>(corr, dests, new RequestOptions(ResponseMode.GET_ALL, 0));
req.setResponseFilter(new RspFilter() {
int num_rsps = 0;
public boolean isAcceptable(Object response, Address sender) {
boolean retval = response instanceof Long && ((Long) response == 1L || (Long) response == 2L);
System.out.println("-- received " + response + " from " + sender + ": " + (retval ? "OK" : "NOTOK"));
if (retval)
num_rsps++;
return retval;
}
public boolean needMoreResponses() {
return num_rsps < 2;
}
});
corr.setGroupRequest(req);
System.out.println("group request is " + req);
RspList<Long> results = req.execute(new Buffer(buf, 0, buf.length), true);
assert req.isDone();
Assert.assertEquals(3, results.size());
Assert.assertEquals(2, results.numReceived());
}
use of org.jgroups.util.Buffer in project JGroups by belaban.
the class GroupRequestTest method testCancel.
public void testCancel() throws Exception {
MyCorrelator corr = new MyCorrelator(true, null, 0);
GroupRequest<Integer> req = new GroupRequest<>(corr, Arrays.asList(a, b, c), RequestOptions.SYNC());
corr.setGroupRequest(req);
req.cancel(true);
RspList<Integer> rsps = req.execute(new Buffer(buf, 0, buf.length), true);
System.out.println("rsps:\n" + rsps);
assert rsps.size() == 3;
long num_not_received = rsps.values().stream().filter(rsp -> !rsp.wasReceived()).count();
assert num_not_received == 3;
assert req.isCancelled();
final GroupRequest<Integer> req2 = new GroupRequest<>(corr, Arrays.asList(a, b, c), RequestOptions.SYNC());
corr.setGroupRequest(req2);
new Thread(() -> {
Util.sleep(1000);
req2.cancel(true);
}).start();
rsps = req2.execute(new Buffer(buf, 0, buf.length), true);
System.out.println("rsps:\n" + rsps);
assert rsps.size() == 3;
num_not_received = rsps.values().stream().filter(rsp -> !rsp.wasReceived()).count();
assert num_not_received == 3;
assert req2.isCancelled();
}
use of org.jgroups.util.Buffer in project JGroups by belaban.
the class GroupRequestTest method _testMessageReception.
private void _testMessageReception(boolean async) throws Exception {
Object[] responses = { new Message(null, (long) 1).src(a), new Message(null, (long) 2).src(b) };
MyCorrelator corr = new MyCorrelator(async, responses, 0);
GroupRequest<Object> req = new GroupRequest<>(corr, dests, new RequestOptions(ResponseMode.GET_ALL, 0));
corr.setGroupRequest(req);
RspList<Object> results = req.execute(new Buffer(buf, 0, buf.length), true);
System.out.println("group request is " + req);
assert req.isDone();
Assert.assertEquals(2, results.size());
}
use of org.jgroups.util.Buffer in project JGroups by belaban.
the class GroupRequestTest method testGetFirstWithResponseFilter.
public void testGetFirstWithResponseFilter() throws Exception {
Object[] responses = { new Message(null, (long) 1).src(a), new Message(null, (long) 2).src(b), new Message(null, (long) 3).src(c) };
MyCorrelator corr = new MyCorrelator(true, responses, 500);
dests.add(c);
GroupRequest<Long> req = new GroupRequest<>(corr, dests, new RequestOptions(ResponseMode.GET_FIRST, 0));
req.setResponseFilter(new RspFilter() {
int num_rsps = 0;
public boolean isAcceptable(Object response, Address sender) {
boolean retval = response instanceof Long && (Long) response == 2L;
System.out.println("-- received " + response + " from " + sender + ": " + (retval ? "OK" : "NOTOK"));
if (retval)
num_rsps++;
return retval;
}
public boolean needMoreResponses() {
return num_rsps < 1;
}
});
corr.setGroupRequest(req);
System.out.println("group request is " + req);
RspList<Long> results = req.execute(new Buffer(buf, 0, buf.length), true);
assert req.isDone();
Assert.assertEquals(3, results.size());
Assert.assertEquals(1, results.numReceived());
}
Aggregations