📄 test.cpp
字号:
#include "Common.h"
#include "Topology.h"
#include "Graph.h"
#include "Property.h"
#include "Connection.h"
#include "Agent.h"
int main(int argc, char *argv[])
{
if(argc != 3)
{
cout << "usage: test.out configure-file graph-file" << endl;
return -1;
}
Property property;
Graph graph;
Topology *topology = Topology::getInstance();
property.parseConfigFile(argv[1]);
graph.fromBRITEFile(argv[2]);
cout << graph << endl;
(*topology).configNetwork(graph, property);
(*topology).writeData("abcd");
int n = (*topology).getNodeNumber();
Agent agenta;
Agent agentb;
int k1 = random() % n;
int k2 = random() % n;
agenta.mNode = topology->getNode(k1);
agentb.mNode = topology->getNode(k2);
agenta.mId = 1024;
agentb.mId = 2048;
agenta.mBandwidthIn = 20000;
agentb.mBandwidthIn = 10000;
agenta.mBandwidthOut = 20000;
agentb.mBandwidthOut = 10000;
if(!agenta.mNode || !agentb.mNode) {
cout << "null node pointer" << endl;
exit(-1);
}
agenta.attach();
agentb.attach();
vector<Agent *> vec;
vector<Connection *> vecc;
Agent *pa;
Connection *pc;
for(int i = 0; i < 64; i++)
{
pa = new Agent;
int k = random() % n;
pa->mNode = topology->getNode(k);
if(pa->mNode == NULL) {
cout << "null pointer" << endl;
exit(-1);
}
pa->mId = i;
pa->mBandwidthIn = 10000 * i;
pa->mBandwidthOut = 10000 * i;
pa->attach();
vec.push_back(pa);
}
unsigned int m = vec.size();
for(int i = 0; i < 12; i++)
{
int k1 = random() % m;
int k2 = random() % m;
if(k1 == k2)
continue;
if(!vec[k1]->mNode || !vec[k2]->mNode) {
cout << "null pointer" << endl;
exit(-1);
}
if(vec[k1]->mNode->getID() == vec[k2]->mNode->getID())
continue;
pc = new Connection(vec[k1], vec[k2]);
vecc.push_back(pc);
}
cout << "---------------------------------------------" << endl;
cout << "logical connection: " << vecc.size() << endl;
for(unsigned int i = 0; i < vecc.size(); i++)
{
cout << "init" << endl;
cout << *vecc[i] << endl;
cout << "---------------------------------------------" << endl;
}
cout << topology->getAvailableBandwidth(true, vec[1]) << endl;
cout << vecc[0]->getAvailableBandwidth(true) << endl;
for(unsigned int i = 0; i < vecc.size(); i++)
{
cout << "i = " << i << endl;
vecc[i]->activate();
cout << *vecc[i] << endl;
}
for(unsigned int i = 0; i < vecc.size(); i++)
{
cout << "activate" << endl;
cout << *vecc[i] << endl;
cout << "---------------------------------------------" << endl;
}
for(unsigned int i = 0; i < vecc.size(); i++)
{
vecc[i]->adjustBandwidth(-50);
}
for(unsigned int i = 0; i < vecc.size(); i++)
{
cout << "down50" << endl;
cout << *vecc[i] << endl;
cout << "---------------------------------------------" << endl;
}
for(unsigned int i = 0; i < vecc.size(); i++)
{
vecc[i]->adjustBandwidth(999);
}
for(unsigned int i = 0; i < vecc.size(); i++)
{
cout << "up1" << endl;
cout << *vecc[i] << endl;
cout << "---------------------------------------------" << endl;
}
for(unsigned int i = 0; i < vecc.size(); i++)
{
vecc[i]->inactivate();
}
for(unsigned int i = 0; i < vecc.size(); i++)
{
cout << "inactivate" << endl;
cout << *vecc[i] << endl;
cout << "---------------------------------------------" << endl;
}
for(unsigned int i = 0; i < vecc.size(); i++)
{
delete vecc[i];
}
for(unsigned int i = 0; i < vec.size(); i++) {
cout << "detach" << endl;
vec[i]->detach();
}
/*
Connection connection(&agenta, &agentb);
Connection cb(&agenta, &agentb);
connection.activate();
cout << connection.getBandwidth() << endl;
connection.adjustBandwidth(-3000000);
cout << connection.getBandwidth() << endl;
connection.adjustBandwidth(-3000000);
cb.activate(4000000);
cb.activate(-1000000);
cout << connection.getBandwidth() << endl;
cout << cb.getBandwidth() << endl;
connection.adjustBandwidth(4000000);
cout << connection.getBandwidth() << endl;
cout << cb.getBandwidth() << endl;
cout << "---------------------------------------------" << endl;
connection.adjustBandwidth(0);
cb.adjustBandwidth(-4000000);
cb.adjustBandwidth(-1000000);
cout << connection.getBandwidth() << endl;
cout << cb.getBandwidth() << endl;
cout << "---------------------------------------------" << endl;
connection.adjustBandwidth(FLOAT_INFI);
cout << connection.getBandwidth() << endl;
cout << cb.getBandwidth() << endl;
cout << "---------------------------------------------" << endl;
cb.adjustBandwidth(FLOAT_INFI);
cout << connection.getBandwidth() << endl;
cout << cb.getBandwidth() << endl;
connection.inactivate();
cb.inactivate();
*/
/*
Connection ca(&agenta, &agentb);
Connection cb(&agentb, &agenta);
Connection cc(&agenta, &agentb);
Connection cd(&agentb, &agenta);
cout << "---------------------------------------------" << endl;
cout << ca << endl;
cout << endl;
cout << cb << endl;
cout << endl;
cout << cc << endl;
cout << endl;
cout << cd << endl;
ca.activate();
cout << "---------------------------------------------" << endl;
cout << ca << endl;
cout << endl;
cout << cb << endl;
cout << endl;
cout << cc << endl;
cout << endl;
cout << cd << endl;
cout << endl;
cb.activate();
cout << "---------------------------------------------" << endl;
cout << ca << endl;
cout << endl;
cout << cb << endl;
cout << endl;
cout << cc << endl;
cout << endl;
cout << cd << endl;
cout << endl;
cc.activate();
cout << "---------------------------------------------" << endl;
cout << ca << endl;
cout << endl;
cout << cb << endl;
cout << endl;
cout << cc << endl;
cout << endl;
cout << cd << endl;
cout << endl;
cd.activate();
cout << "---------------------------------------------" << endl;
cout << ca << endl;
cout << endl;
cout << cb << endl;
cout << endl;
cout << cc << endl;
cout << endl;
cout << cd << endl;
cout << endl;
ca.inactivate();
cout << "---------------------------------------------" << endl;
cout << ca << endl;
cout << endl;
cout << cb << endl;
cout << endl;
cout << cc << endl;
cout << endl;
cout << cd << endl;
cout << endl;
cb.inactivate();
cout << "---------------------------------------------" << endl;
cout << ca << endl;
cout << endl;
cout << cb << endl;
cout << endl;
cout << cc << endl;
cout << endl;
cout << cd << endl;
cout << endl;
cc.inactivate();
cout << "---------------------------------------------" << endl;
cout << ca << endl;
cout << endl;
cout << cb << endl;
cout << endl;
cout << cc << endl;
cout << endl;
cout << cd << endl;
cout << endl;
cd.inactivate();
cout << "---------------------------------------------" << endl;
cout << ca << endl;
cout << endl;
cout << cb << endl;
cout << endl;
cout << cc << endl;
cout << endl;
cout << cd << endl;
cout << endl;
*/
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -