80 lines
1.5 KiB
C++
80 lines
1.5 KiB
C++
#include "request.hh"
|
|
#include "mobile.hh"
|
|
|
|
using namespace std ;
|
|
using std::tr1::unordered_map ;
|
|
|
|
|
|
|
|
/*** Constructeurs ***/
|
|
|
|
|
|
Request::Request(const unordered_map<string, Measurement> &_measurements)
|
|
{
|
|
mobile = NULL ;
|
|
timestamp.tv_sec = 0 ;
|
|
timestamp.tv_nsec = 0 ;
|
|
measurements = _measurements ;
|
|
}
|
|
|
|
|
|
Request::Request(const struct timespec &_timestamp,
|
|
const unordered_map<string, Measurement> &_measurements)
|
|
{
|
|
mobile = NULL ;
|
|
timestamp = _timestamp ;
|
|
measurements = _measurements ;
|
|
}
|
|
|
|
|
|
Request::Request(const Mobile *_mobile, const struct timespec &_timestamp,
|
|
const unordered_map<string, Measurement> &_measurements)
|
|
{
|
|
mobile = (Mobile*) _mobile ;
|
|
timestamp = _timestamp ;
|
|
measurements = _measurements ;
|
|
}
|
|
|
|
|
|
|
|
/*** Accesseurs écriture ***/
|
|
|
|
|
|
void Request::clear()
|
|
{
|
|
mobile = NULL ;
|
|
timestamp.tv_sec = 0 ;
|
|
timestamp.tv_nsec = 0 ;
|
|
measurements.clear() ;
|
|
}
|
|
|
|
|
|
|
|
/*** Opérateurs ***/
|
|
|
|
|
|
ostream &operator<<(ostream &os, const Request &r)
|
|
{
|
|
// Timestamp
|
|
os
|
|
<< "At " << PosUtil::timespec_to_ns(r.timestamp) << "; " ;
|
|
|
|
// MAC address
|
|
os
|
|
<< "Mobile: "
|
|
<< (r.mobile != NULL ? r.mobile->get_mac_addr() : "Unknown_Mobile")
|
|
<< ":" ;
|
|
|
|
// List of Measurements
|
|
if (r.measurements.size() == 0)
|
|
os << " No values" ;
|
|
else
|
|
for (unordered_map<string, Measurement>::const_iterator i
|
|
= r.measurements.begin() ; i != r.measurements.end() ; i++)
|
|
{
|
|
os << '\n' << i->first << ": " << i->second ;
|
|
}
|
|
|
|
return os ;
|
|
}
|