40 pPlatformService_{pPlatformService}
47 std::pair<EMANE::Events::CommEffect,bool>
53 for(
const auto & filter : filters_)
55 if(filter.match(buf, len) == 1)
57 return std::make_pair(filter.getEffect(),
true);
62 const auto itr = profileDataMap_.find(src);
64 if(itr != profileDataMap_.end())
66 return std::make_pair(itr->second,
true);
93 for(
const auto & effect : effects)
95 if(effect.getNEMId() != 0)
102 profileDataMap_.insert(std::make_pair(effect.getNEMId(), effect));
104 if(result.second ==
true)
115 result.first->second = effect;
120 "SHIMI %03hu ProfileManager::%s: %s entry src: %03hu latency: %lf," 121 " jitter: %lf, loss: %.2f%%, dups: %.2f%%, ucbitrate %ju, bcbitrate %ju",
126 std::chrono::duration_cast<
DoubleSeconds>(effect.getLatency()).count(),
127 std::chrono::duration_cast<
DoubleSeconds>(effect.getJitter()).count(),
128 effect.getProbabilityLoss(),
129 effect.getProbabilityDuplicate(),
130 effect.getUnicastBitRate(),
131 effect.getBroadcastBitRate());
ProfileManager(NEMId id, PlatformServiceProvider *pPlatformService)
std::pair< Events::CommEffect, bool > getProfileData(const void *buf, size_t len, NEMId id) const
static Filters load(const char *pzFileName)
std::list< CommEffect > CommEffects
std::chrono::duration< double > DoubleSeconds
A CommEffect entry holds the NEM Id of a transmitter and the link effects to apply to received transm...
virtual ~ProfileManager()
#define LOGGER_STANDARD_LOGGING(logger, level, fmt, args...)