/
worker.cpp
38 lines (32 loc) · 857 Bytes
/
worker.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
* Paweł Kapica, 334579
* Sieci Komputerowe
* Duże zadanie zaliczeniowe
*
*/
#include "worker.h"
#include "datacontainer.h"
Worker::ptr Worker::create(boost::asio::io_service& io_srv, boost::asio::ip::address_v4 ip)
{
return ptr(new Worker(io_srv, ip));
}
Worker::Worker(boost::asio::io_service& io_srv, boost::asio::ip::address_v4 ip): io_srv_(io_srv), ip_(ip),
cudp(io_srv_, ip_.to_string()), cicmp(io_srv_, ip_.to_string()), ctcp(io_srv, ip.to_string())
{
}
void Worker::work()
{
cicmp.measure_latency();
cudp.measure_latency();
if (DataContainer::dc()->hasSSH(DataContainer::dc()->domainName(ip_))) {
ctcp.measure_latency();
}
}
bool Worker::finished()
{
bool tcp = true;
if (DataContainer::dc()->hasSSH(DataContainer::dc()->domainName(ip_))) {
tcp = ctcp.finished();
}
return cudp.finished() && cicmp.finished() && tcp;
}