2012-07-05 21:26:14 +00:00
|
|
|
#include "nxstesthub.h"
|
|
|
|
|
2012-07-12 20:18:58 +00:00
|
|
|
NxsTestHub::NxsTestHub(NxsTestScenario* nts) : mTestScenario(nts)
|
2012-07-05 21:26:14 +00:00
|
|
|
{
|
2012-07-12 20:18:58 +00:00
|
|
|
|
2012-07-15 12:38:20 +00:00
|
|
|
netServicePairs.first = new RsGxsNetService(mTestScenario->getServiceType(),
|
|
|
|
mTestScenario->dummyDataService1(), &netMgr1, mTestScenario);
|
|
|
|
netServicePairs.second = new RsGxsNetService(mTestScenario->getServiceType(),
|
|
|
|
mTestScenario->dummyDataService2(), &netMgr2, mTestScenario);
|
2012-07-12 20:18:58 +00:00
|
|
|
|
|
|
|
mServicePairs.first = netServicePairs.first;
|
|
|
|
mServicePairs.second = netServicePairs.second;
|
|
|
|
|
|
|
|
createThread(*(netServicePairs.first));
|
|
|
|
createThread(*(netServicePairs.second));
|
|
|
|
}
|
|
|
|
|
|
|
|
NxsTestHub::~NxsTestHub()
|
|
|
|
{
|
|
|
|
delete netServicePairs.first;
|
|
|
|
delete netServicePairs.second;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void NxsTestHub::run()
|
|
|
|
{
|
|
|
|
|
|
|
|
std::list<RsItem*> send_queue_s1, send_queue_s2;
|
|
|
|
|
|
|
|
while(isRunning()){
|
|
|
|
|
|
|
|
// make thread sleep for a couple secs
|
2012-07-15 12:38:20 +00:00
|
|
|
usleep(3000);
|
2012-07-12 20:18:58 +00:00
|
|
|
|
|
|
|
p3Service* s1 = mServicePairs.first;
|
|
|
|
p3Service* s2 = mServicePairs.second;
|
|
|
|
|
|
|
|
RsItem* item = NULL;
|
|
|
|
while((item = s1->send()) != NULL)
|
|
|
|
{
|
2012-07-15 12:38:20 +00:00
|
|
|
item->PeerId("PeerB");
|
2012-07-12 20:18:58 +00:00
|
|
|
send_queue_s1.push_back(item);
|
|
|
|
}
|
|
|
|
|
|
|
|
while((item = s2->send()) != NULL)
|
|
|
|
{
|
2012-07-15 12:38:20 +00:00
|
|
|
item->PeerId("PeerA");
|
2012-07-12 20:18:58 +00:00
|
|
|
send_queue_s2.push_back(item);
|
|
|
|
}
|
|
|
|
|
|
|
|
while(!send_queue_s1.empty()){
|
|
|
|
item = send_queue_s1.front();
|
|
|
|
s2->receive(dynamic_cast<RsRawItem*>(item));
|
|
|
|
send_queue_s1.pop_front();
|
|
|
|
}
|
|
|
|
|
|
|
|
while(!send_queue_s2.empty()){
|
|
|
|
item = send_queue_s2.front();
|
|
|
|
s1->receive(dynamic_cast<RsRawItem*>(item));
|
|
|
|
send_queue_s2.pop_front();
|
|
|
|
}
|
|
|
|
|
2012-07-15 12:38:20 +00:00
|
|
|
// tick services so nxs net services process items
|
2012-07-12 20:18:58 +00:00
|
|
|
s1->tick();
|
|
|
|
s2->tick();
|
|
|
|
}
|
|
|
|
|
|
|
|
// also shut down this net service peers if this goes down
|
|
|
|
netServicePairs.first->join();
|
|
|
|
netServicePairs.second->join();
|
|
|
|
}
|
|
|
|
|
2012-07-14 17:59:54 +00:00
|
|
|
void NxsTestHub::cleanUp()
|
2012-07-12 20:18:58 +00:00
|
|
|
{
|
2012-07-14 17:59:54 +00:00
|
|
|
mTestScenario->cleanUp();
|
|
|
|
}
|
2012-07-12 20:18:58 +00:00
|
|
|
|
2012-07-14 17:59:54 +00:00
|
|
|
bool NxsTestHub::testsPassed()
|
|
|
|
{
|
2012-07-12 20:18:58 +00:00
|
|
|
return false;
|
2012-07-05 21:26:14 +00:00
|
|
|
}
|