Search in sources :

Example 1 with COGMsg

use of abs.backend.java.lib.net.msg.COGMsg in project abstools by abstools.

the class NodeImpl method processMsg.

@Override
public synchronized void processMsg(Msg m) {
    if (m instanceof ObjectTargetMsg) {
        ObjectTargetMsg otm = (ObjectTargetMsg) m;
        if (objects.contains(otm.getTarget())) {
            NetCOG cog = (NetCOG) otm.getTarget().getCOG();
            cog.processMsg(m);
        } else {
            routeAway(m);
        }
    } else if (m instanceof COGMsg) {
        COGMsg cm = (COGMsg) m;
        NetCOG cog = cm.getCOG();
        cog.setNode(this);
        cogs.add(cog);
    } else if (m instanceof ObjectMsg) {
        ObjectMsg om = (ObjectMsg) m;
        ABSObject object = om.getObject();
        NetCOG cog = (NetCOG) object.getCOG();
        if (cogs.contains(cog)) {
            objects.add(object);
        } else {
            routeAway(m);
        }
    }
}
Also used : ObjectTargetMsg(abs.backend.java.lib.net.msg.ObjectTargetMsg) COGMsg(abs.backend.java.lib.net.msg.COGMsg) ABSObject(abs.backend.java.lib.runtime.ABSObject) ObjectMsg(abs.backend.java.lib.net.msg.ObjectMsg)

Example 2 with COGMsg

use of abs.backend.java.lib.net.msg.COGMsg in project abstools by abstools.

the class NodeImplTest method processCOGMsg.

@Test
public void processCOGMsg() {
    COGMsg msg = createMock(COGMsg.class);
    expect(msg.getCOG()).andReturn(cog);
    cog.setNode(currentNode);
    expectLastCall();
    currentRouter.replace(cog, currentNode, 0);
    expectLastCall();
    replay(msg);
    replay(cog);
    replay(currentRouter);
    currentNode.processMsg(msg);
    assertTrue("cog must be at node", currentNode.getRegisteredCOGs().contains(cog));
    verify(msg);
    verify(cog);
    verify(currentRouter);
}
Also used : COGMsg(abs.backend.java.lib.net.msg.COGMsg) Test(org.junit.Test)

Example 3 with COGMsg

use of abs.backend.java.lib.net.msg.COGMsg in project abstools by abstools.

the class NodeImpl method migrateGroup.

private synchronized boolean migrateGroup() {
    if (random.nextBoolean())
        return false;
    if (cogs.isEmpty())
        return false;
    NetCOG cog = cogs.iterator().next();
    cogs.remove(cog);
    ArcImpl arc = outArcs.values().iterator().next();
    arc.getQueue().enqueue(new COGMsg(cog));
    return true;
}
Also used : COGMsg(abs.backend.java.lib.net.msg.COGMsg)

Aggregations

COGMsg (abs.backend.java.lib.net.msg.COGMsg)3 ObjectMsg (abs.backend.java.lib.net.msg.ObjectMsg)1 ObjectTargetMsg (abs.backend.java.lib.net.msg.ObjectTargetMsg)1 ABSObject (abs.backend.java.lib.runtime.ABSObject)1 Test (org.junit.Test)1