Example #1
0
Link * FirstFitAlgorithm::createDummyLink(Link * virtualLink, Assignment * assignment)
{
    if ( virtualLink == 0 )
        return 0;

    Element * first = getCastedAssignment(virtualLink->getFirst(), assignment);
    Element * second = getCastedAssignment(virtualLink->getSecond(), assignment);

    if ( first == 0 || second == 0 )
        return 0;

    Link * dummyLink = new Link("dummy_link", virtualLink->getCapacity(), virtualLink->getMaxCapacity());
    dummyLink->bindElements(first, second);
    return dummyLink;
}
Example #2
0
Algorithm::Result NetworkManager::buildPath(Element * from, Element * to, Link * vlink, Assignment * assignment)
{
    if ( from == to )
        return Algorithm::SUCCESS;

    cerr << "[NM]\tBuilding path" << endl;
    Link * dummy = new Link("dummy", vlink->getCapacity(), vlink->getMaxCapacity());
    dummy->bindElements(from, to);
    NetPath path = VirtualLinkRouter::routeDejkstra(dummy, &network);
    delete dummy;

    if ( path.empty() )
        return Algorithm::FAILURE;

    addAssignment(vlink, path);
    assignment->AddAssignment(vlink, path);
    cerr << "[NM]\tPath building succedeed" << endl;
    return Algorithm::SUCCESS;
}