wrench::NetworkProximityService
-
class NetworkProximityService : public wrench::Service
A network proximity service that continuously estimates inter-host latencies and can be queried for such estimates.
Public Functions
-
NetworkProximityService(std::string db_hostname, std::vector<std::string> hosts_in_network, WRENCH_PROPERTY_COLLECTION_TYPE property_list = {}, WRENCH_MESSAGE_PAYLOADCOLLECTION_TYPE messagepayload_list = {})
Constructor.
- Parameters
hostname – the name of the host on which to start the service
hosts_in_network – the hosts participating in network measurements
property_list – a property list ({} means “use all defaults”)
messagepayload_list – a message payload list ({} means “use all defaults”)
-
~NetworkProximityService() override
Destructor.
-
std::pair<std::pair<double, double>, double> getHostCoordinate(std::string)
Look up the current (x,y) coordinates of a given host (only for a Vivaldi network service type)
- Parameters
requested_host – the host whose coordinates are being requested
- Throws
WorkFlowExecutionException –
std::runtime_error –
- Returns
A pair:
a (x,y) coordinate pair
a timestamp (the oldest timestamp of measurements usead to compute the coordinate)
-
std::vector<std::string> getHostnameList()
Gets the list of hosts monitored by this service (does not involve simulated network communications with the service)
- Returns
a list of hostnames
-
std::pair<double, double> getHostPairDistance(std::pair<std::string, std::string> hosts)
Look up a proximity value in database.
- Parameters
hosts – the pair of hosts whose proximity is of interest
- Throws
std::runtime_error –
- Returns
A pair:
The proximity value between the pair of hosts (or DBL_MAX if none)
The timestamp of the oldest measurement use to compute the proximity value (or -1.0 if none)
-
std::string getNetworkProximityServiceType()
Get the network proximity service type.
- Returns
a string specifying the network proximity service type
Public Static Attributes
-
static constexpr double NOT_AVAILABLE = DBL_MAX
A convenient constant that is returned as a latency between two hosts when no latency estimates are available for this pair of hosts.
-
NetworkProximityService(std::string db_hostname, std::vector<std::string> hosts_in_network, WRENCH_PROPERTY_COLLECTION_TYPE property_list = {}, WRENCH_MESSAGE_PAYLOADCOLLECTION_TYPE messagepayload_list = {})