Search in sources :

Example 91 with Message

use of org.jgroups.Message in project JGroups by belaban.

the class NonBlockingCreditTest method testDecrementAndQueing.

public void testDecrementAndQueing() {
    MessageSender msg_sender = new MessageSender();
    NonBlockingCredit cred = new NonBlockingCredit(max_credits, 500_000, new ReentrantLock(), msg_sender);
    Message msg = msg(1000);
    boolean success = cred.decrementIfEnoughCredits(msg, msg.getLength(), 500);
    assert success && cred.get() == 9000;
    msg = msg(9000);
    success = cred.decrementIfEnoughCredits(msg, msg.getLength(), 500);
    assert success && cred.get() == 0;
    for (int i = 0; i < 5; i++) {
        msg = msg(1000);
        success = cred.decrementIfEnoughCredits(msg, msg.getLength(), 500);
        assert !success && cred.get() == 0;
    }
    assert cred.isQueuing();
    assert cred.getQueuedMessages() == 5;
    assert cred.getQueuedMessageSize() == 5000;
    // not enough to trigger a message send
    cred.increment(500, max_credits);
    assert cred.isQueuing();
    assert cred.get() == 500 && cred.getQueuedMessages() == 5 && cred.getQueuedMessageSize() == 5000;
    // this is enough to send the first queued message
    cred.increment(500, max_credits);
    assert cred.isQueuing();
    assert cred.get() == 0 && cred.getQueuedMessages() == 4 && cred.getQueuedMessageSize() == 4000;
    assert msg_sender.sent_msgs == 1;
    cred.increment(20000, max_credits);
    assert !cred.isQueuing();
    assert cred.get() == 6000 && cred.getQueuedMessages() == 0 && cred.getQueuedMessageSize() == 0;
    assert msg_sender.sent_msgs == 5;
}
Also used : ReentrantLock(java.util.concurrent.locks.ReentrantLock) BytesMessage(org.jgroups.BytesMessage) Message(org.jgroups.Message) NonBlockingCredit(org.jgroups.util.NonBlockingCredit)

Example 92 with Message

use of org.jgroups.Message in project JGroups by belaban.

the class NioMessageTest method testSetObject.

public void testSetObject() throws Exception {
    Person person = new Person(53, "Bela");
    Message msg = new NioMessage(null).setObject(person);
    _testSize(msg);
    byte[] buf = marshal(msg);
    Message msg2 = unmarshal(NioMessage.class, buf);
    Person p = msg2.getObject();
    assert p != null && p.name.equals("Bela") && p.age == 53;
}
Also used : Message(org.jgroups.Message) NioMessage(org.jgroups.NioMessage) NioMessage(org.jgroups.NioMessage)

Example 93 with Message

use of org.jgroups.Message in project JGroups by belaban.

the class NioMessageTest method testSetObjectDirect.

public void testSetObjectDirect() throws Exception {
    Person person = new Person(53, "Bela");
    NioMessage msg = new NioMessage(null).useDirectMemory(true).setObject(person).useDirectMemory(false);
    _testSize(msg);
    byte[] buf = marshal(msg);
    ByteBuffer tmp = ByteBuffer.wrap(buf);
    Message msg2 = unmarshal(NioMessage.class, tmp);
    Person p = msg2.getObject();
    assert p != null && p.name.equals("Bela") && p.age == 53;
}
Also used : Message(org.jgroups.Message) NioMessage(org.jgroups.NioMessage) NioMessage(org.jgroups.NioMessage) ByteBuffer(java.nio.ByteBuffer)

Example 94 with Message

use of org.jgroups.Message in project JGroups by belaban.

the class Route method createMessage.

protected Message createMessage(Address target, Address final_destination, Address original_sender, final Message msg) {
    Message copy = relay.copy(msg).setDest(target).setSrc(null);
    RELAY2.Relay2Header hdr = new RELAY2.Relay2Header(RELAY2.Relay2Header.DATA, final_destination, original_sender);
    copy.putHeader(relay.getId(), hdr);
    return copy;
}
Also used : Message(org.jgroups.Message)

Example 95 with Message

use of org.jgroups.Message in project JGroups by belaban.

the class MessageBatch method last.

// not very efficient, but this is only used inside a trace log statement
public <T extends Message> T last() {
    Iterator<Message> it = iterator();
    Message last = null;
    while (it.hasNext()) last = it.next();
    return (T) last;
}
Also used : Message(org.jgroups.Message)

Aggregations

Message (org.jgroups.Message)246 Address (org.jgroups.Address)50 MessageBatch (org.jgroups.util.MessageBatch)37 BytesMessage (org.jgroups.BytesMessage)31 NioMessage (org.jgroups.NioMessage)14 ObjectMessage (org.jgroups.ObjectMessage)14 EmptyMessage (org.jgroups.EmptyMessage)12 Test (org.testng.annotations.Test)12 Event (org.jgroups.Event)11 ToaHeader (org.jgroups.protocols.tom.ToaHeader)11 Test (org.junit.Test)11 IOException (java.io.IOException)8 JChannel (org.jgroups.JChannel)8 MessageID (org.jgroups.protocols.tom.MessageID)8 DistributionMessage (org.apache.geode.distributed.internal.DistributionMessage)7 JoinRequestMessage (org.apache.geode.distributed.internal.membership.gms.messages.JoinRequestMessage)7 JoinResponseMessage (org.apache.geode.distributed.internal.membership.gms.messages.JoinResponseMessage)7 TimeoutException (java.util.concurrent.TimeoutException)6 Collectors (java.util.stream.Collectors)6 MembershipTest (org.apache.geode.test.junit.categories.MembershipTest)6