INET Framework for OMNeT++/OMNEST
inet::physicallayer::CommunicationCacheBase Class Referenceabstract

#include <CommunicationCacheBase.h>

Inheritance diagram for inet::physicallayer::CommunicationCacheBase:
inet::physicallayer::ICommunicationCache inet::IPrintableObject inet::physicallayer::MapCommunicationCache inet::physicallayer::ReferenceCommunicationCache inet::physicallayer::VectorCommunicationCache

Classes

class  RadioCacheEntry
 Caches the intermediate computation results related to a radio. More...
 
class  ReceptionCacheEntry
 Caches the intermediate computation results related to a reception. More...
 
class  TransmissionCacheEntry
 Caches the intermediate computation results related to a transmission. More...
 

Public Member Functions

Radio cache
virtual int getNumRadios () const override
 
Transmission cache
virtual int getNumTransmissions () const override
 
Interference cache
virtual std::vector< const ITransmission * > * computeInterferingTransmissions (const IRadio *radio, const simtime_t startTime, const simtime_t endTime) override
 
virtual const simtime_t getCachedInterferenceEndTime (const ITransmission *transmission) override
 
virtual void setCachedInterferenceEndTime (const ITransmission *transmission, const simtime_t interferenceEndTime) override
 
virtual void removeCachedInterferenceEndTime (const ITransmission *transmission) override
 
virtual const IWirelessSignalgetCachedSignal (const ITransmission *transmission) override
 
virtual void setCachedSignal (const ITransmission *transmission, const IWirelessSignal *signal) override
 
virtual void removeCachedSignal (const ITransmission *transmission) override
 
Reception cache
virtual const IArrivalgetCachedArrival (const IRadio *receiver, const ITransmission *transmission) override
 
virtual void setCachedArrival (const IRadio *receiver, const ITransmission *transmission, const IArrival *arrival) override
 
virtual void removeCachedArrival (const IRadio *receiver, const ITransmission *transmission) override
 
virtual const IntervalTree::IntervalgetCachedInterval (const IRadio *receiver, const ITransmission *transmission) override
 
virtual void setCachedInterval (const IRadio *receiver, const ITransmission *transmission, const IntervalTree::Interval *interval) override
 
virtual void removeCachedInterval (const IRadio *receiver, const ITransmission *transmission) override
 
virtual const IListeninggetCachedListening (const IRadio *receiver, const ITransmission *transmission) override
 
virtual void setCachedListening (const IRadio *receiver, const ITransmission *transmission, const IListening *listening) override
 
virtual void removeCachedListening (const IRadio *receiver, const ITransmission *transmission) override
 
virtual const IReceptiongetCachedReception (const IRadio *receiver, const ITransmission *transmission) override
 
virtual void setCachedReception (const IRadio *receiver, const ITransmission *transmission, const IReception *reception) override
 
virtual void removeCachedReception (const IRadio *receiver, const ITransmission *transmission) override
 
virtual const IInterferencegetCachedInterference (const IRadio *receiver, const ITransmission *transmission) override
 
virtual void setCachedInterference (const IRadio *receiver, const ITransmission *transmission, const IInterference *interference) override
 
virtual void removeCachedInterference (const IRadio *receiver, const ITransmission *transmission) override
 
virtual const INoisegetCachedNoise (const IRadio *receiver, const ITransmission *transmission) override
 
virtual void setCachedNoise (const IRadio *receiver, const ITransmission *transmission, const INoise *noise) override
 
virtual void removeCachedNoise (const IRadio *receiver, const ITransmission *transmission) override
 
virtual const ISnirgetCachedSNIR (const IRadio *receiver, const ITransmission *transmission) override
 
virtual void setCachedSNIR (const IRadio *receiver, const ITransmission *transmission, const ISnir *snir) override
 
virtual void removeCachedSNIR (const IRadio *receiver, const ITransmission *transmission) override
 
virtual const IReceptionDecisiongetCachedReceptionDecision (const IRadio *receiver, const ITransmission *transmission, IRadioSignal::SignalPart part) override
 
virtual void setCachedReceptionDecision (const IRadio *receiver, const ITransmission *transmission, IRadioSignal::SignalPart part, const IReceptionDecision *receptionDecision) override
 
virtual void removeCachedReceptionDecision (const IRadio *receiver, const ITransmission *transmission, IRadioSignal::SignalPart part) override
 
virtual const IReceptionResultgetCachedReceptionResult (const IRadio *receiver, const ITransmission *transmission) override
 
virtual void setCachedReceptionResult (const IRadio *receiver, const ITransmission *transmission, const IReceptionResult *receptionResult) override
 
virtual void removeCachedReceptionResult (const IRadio *receiver, const ITransmission *transmission) override
 
virtual const IWirelessSignalgetCachedSignal (const IRadio *receiver, const ITransmission *transmission) override
 
virtual void setCachedSignal (const IRadio *receiver, const ITransmission *transmission, const IWirelessSignal *signal) override
 
virtual void removeCachedSignal (const IRadio *receiver, const ITransmission *transmission) override
 
- Public Member Functions inherited from inet::physicallayer::ICommunicationCache
virtual ~ICommunicationCache ()
 
virtual void addRadio (const IRadio *radio)=0
 
virtual void removeRadio (const IRadio *radio)=0
 
virtual const IRadiogetRadio (int id) const =0
 
virtual void mapRadios (std::function< void(const IRadio *)> f) const =0
 
virtual void addTransmission (const ITransmission *transmission)=0
 
virtual void removeTransmission (const ITransmission *transmission)=0
 
virtual const ITransmissiongetTransmission (int id) const =0
 
virtual void mapTransmissions (std::function< void(const ITransmission *)> f) const =0
 
virtual void removeNonInterferingTransmissions (std::function< void(const ITransmission *transmission)> f)=0
 
- Public Member Functions inherited from inet::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level, int evFlags=0) const
 Prints this object to the provided output stream. More...
 
virtual std::string printToString () const
 
virtual std::string printToString (int level, int evFlags=0) const
 
virtual std::string getInfoStringRepresentation (int evFlags=0) const
 
virtual std::string getDetailStringRepresentation (int evFlags=0) const
 
virtual std::string getDebugStringRepresentation (int evFlags=0) const
 
virtual std::string getTraceStringRepresentation (int evFlags=0) const
 
virtual std::string getCompleteStringRepresentation (int evFlags=0) const
 

Protected Member Functions

Cache data structures
virtual RadioCacheEntrygetRadioCacheEntry (const IRadio *radio)=0
 
virtual TransmissionCacheEntrygetTransmissionCacheEntry (const ITransmission *transmission)=0
 
virtual ReceptionCacheEntrygetReceptionCacheEntry (const IRadio *radio, const ITransmission *transmission)=0
 

Additional Inherited Members

- Public Types inherited from inet::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 
enum  PrintFlag { PRINT_FLAG_FORMATTED = (1 << 0), PRINT_FLAG_MULTILINE = (1 << 1) }
 

Member Function Documentation

◆ computeInterferingTransmissions()

std::vector< const ITransmission * > * inet::physicallayer::CommunicationCacheBase::computeInterferingTransmissions ( const IRadio radio,
const simtime_t  startTime,
const simtime_t  endTime 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::ReferenceCommunicationCache.

281 {
282  RadioCacheEntry *radioCacheEntry = getRadioCacheEntry(radio);
283  std::vector<const ITransmission *> *interferingTransmissions = new std::vector<const ITransmission *>();
284  if (radioCacheEntry->receptionIntervals != nullptr) {
285  std::deque<const IntervalTree::Interval *> interferingIntervals = radioCacheEntry->receptionIntervals->query(startTime, endTime);
286  for (auto interferingInterval : interferingIntervals) {
287  const ITransmission *interferingTransmission = (ITransmission *)interferingInterval->value;
288  interferingTransmissions->push_back(interferingTransmission);
289  }
290  }
291  return interferingTransmissions;
292 }

◆ getCachedArrival()

const IArrival * inet::physicallayer::CommunicationCacheBase::getCachedArrival ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

325 {
326  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
327  return cacheEntry ? cacheEntry->arrival : nullptr;
328 }

◆ getCachedInterference()

const IInterference * inet::physicallayer::CommunicationCacheBase::getCachedInterference ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::ReferenceCommunicationCache.

417 {
418  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
419  return cacheEntry ? cacheEntry->interference : nullptr;
420 }

◆ getCachedInterferenceEndTime()

const simtime_t inet::physicallayer::CommunicationCacheBase::getCachedInterferenceEndTime ( const ITransmission transmission)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

295 {
296  return getTransmissionCacheEntry(transmission)->interferenceEndTime;
297 }

◆ getCachedInterval()

const IntervalTree::Interval * inet::physicallayer::CommunicationCacheBase::getCachedInterval ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

347 {
348  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
349  return cacheEntry ? cacheEntry->interval : nullptr;
350 }

◆ getCachedListening()

const IListening * inet::physicallayer::CommunicationCacheBase::getCachedListening ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

373 {
374  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
375  return cacheEntry ? cacheEntry->listening : nullptr;
376 }

◆ getCachedNoise()

const INoise * inet::physicallayer::CommunicationCacheBase::getCachedNoise ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::ReferenceCommunicationCache.

439 {
440  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
441  return cacheEntry ? cacheEntry->noise : nullptr;
442 }

◆ getCachedReception()

const IReception * inet::physicallayer::CommunicationCacheBase::getCachedReception ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::ReferenceCommunicationCache.

395 {
396  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
397  return cacheEntry ? cacheEntry->reception : nullptr;
398 }

◆ getCachedReceptionDecision()

const IReceptionDecision * inet::physicallayer::CommunicationCacheBase::getCachedReceptionDecision ( const IRadio receiver,
const ITransmission transmission,
IRadioSignal::SignalPart  part 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

483 {
484  ASSERT(part != IRadioSignal::SIGNAL_PART_NONE);
485  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
486  return cacheEntry ? cacheEntry->receptionDecisions[part] : nullptr;
487 }

◆ getCachedReceptionResult()

const IReceptionResult * inet::physicallayer::CommunicationCacheBase::getCachedReceptionResult ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

512 {
513  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
514  return cacheEntry ? cacheEntry->receptionResult : nullptr;
515 }

◆ getCachedSignal() [1/2]

const IWirelessSignal * inet::physicallayer::CommunicationCacheBase::getCachedSignal ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

534 {
535  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
536  return cacheEntry ? cacheEntry->signal : nullptr;
537 }

◆ getCachedSignal() [2/2]

const IWirelessSignal * inet::physicallayer::CommunicationCacheBase::getCachedSignal ( const ITransmission transmission)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

310 {
311  return getTransmissionCacheEntry(transmission)->signal;
312 }

◆ getCachedSNIR()

const ISnir * inet::physicallayer::CommunicationCacheBase::getCachedSNIR ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::ReferenceCommunicationCache.

461 {
462  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
463  return cacheEntry ? cacheEntry->snir : nullptr;
464 }

◆ getNumRadios()

int inet::physicallayer::CommunicationCacheBase::getNumRadios ( ) const
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::MapCommunicationCache, and inet::physicallayer::ReferenceCommunicationCache.

267 {
268  int numRadios = 0;
269  mapRadios([&](const IRadio *radio) { numRadios++; });
270  return numRadios;
271 }

◆ getNumTransmissions()

int inet::physicallayer::CommunicationCacheBase::getNumTransmissions ( ) const
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::MapCommunicationCache, and inet::physicallayer::ReferenceCommunicationCache.

274 {
275  int numTransmissions = 0;
276  mapTransmissions([&](const ITransmission *transmission) { numTransmissions++; });
277  return numTransmissions;
278 }

◆ getRadioCacheEntry()

virtual RadioCacheEntry* inet::physicallayer::CommunicationCacheBase::getRadioCacheEntry ( const IRadio radio)
protectedpure virtual

◆ getReceptionCacheEntry()

◆ getTransmissionCacheEntry()

◆ removeCachedArrival()

void inet::physicallayer::CommunicationCacheBase::removeCachedArrival ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

340 {
341  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
342  if (cacheEntry != nullptr)
343  cacheEntry->arrival = nullptr;
344 }

◆ removeCachedInterference()

void inet::physicallayer::CommunicationCacheBase::removeCachedInterference ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

432 {
433  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
434  if (cacheEntry != nullptr)
435  cacheEntry->interference = nullptr;
436 }

◆ removeCachedInterferenceEndTime()

void inet::physicallayer::CommunicationCacheBase::removeCachedInterferenceEndTime ( const ITransmission transmission)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

305 {
307 }

◆ removeCachedInterval()

void inet::physicallayer::CommunicationCacheBase::removeCachedInterval ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

366 {
367  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
368  if (cacheEntry != nullptr)
369  cacheEntry->interval = nullptr;
370 }

◆ removeCachedListening()

void inet::physicallayer::CommunicationCacheBase::removeCachedListening ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

388 {
389  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
390  if (cacheEntry != nullptr)
391  cacheEntry->listening = nullptr;
392 }

◆ removeCachedNoise()

void inet::physicallayer::CommunicationCacheBase::removeCachedNoise ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

454 {
455  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
456  if (cacheEntry != nullptr)
457  cacheEntry->noise = nullptr;
458 }

◆ removeCachedReception()

void inet::physicallayer::CommunicationCacheBase::removeCachedReception ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

410 {
411  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
412  if (cacheEntry != nullptr)
413  cacheEntry->reception = nullptr;
414 }

◆ removeCachedReceptionDecision()

void inet::physicallayer::CommunicationCacheBase::removeCachedReceptionDecision ( const IRadio receiver,
const ITransmission transmission,
IRadioSignal::SignalPart  part 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

502 {
503  ASSERT(part != IRadioSignal::SIGNAL_PART_NONE);
504  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
505  if (cacheEntry != nullptr) {
506  delete cacheEntry->receptionDecisions[part];
507  cacheEntry->receptionDecisions[part] = nullptr;
508  }
509 }

◆ removeCachedReceptionResult()

void inet::physicallayer::CommunicationCacheBase::removeCachedReceptionResult ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

527 {
528  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
529  if (cacheEntry != nullptr)
530  cacheEntry->receptionResult = nullptr;
531 }

◆ removeCachedSignal() [1/2]

void inet::physicallayer::CommunicationCacheBase::removeCachedSignal ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

549 {
550  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
551  if (cacheEntry != nullptr)
552  cacheEntry->signal = nullptr;
553 }

◆ removeCachedSignal() [2/2]

void inet::physicallayer::CommunicationCacheBase::removeCachedSignal ( const ITransmission transmission)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

320 {
321  getTransmissionCacheEntry(transmission)->signal = nullptr;
322 }

◆ removeCachedSNIR()

void inet::physicallayer::CommunicationCacheBase::removeCachedSNIR ( const IRadio receiver,
const ITransmission transmission 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

476 {
477  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
478  if (cacheEntry != nullptr)
479  cacheEntry->snir = nullptr;
480 }

◆ setCachedArrival()

void inet::physicallayer::CommunicationCacheBase::setCachedArrival ( const IRadio receiver,
const ITransmission transmission,
const IArrival arrival 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

331 {
332  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
333  if (cacheEntry == nullptr)
334  throw cRuntimeError("Cache entry not found");
335  else
336  cacheEntry->arrival = arrival;
337 }

◆ setCachedInterference()

void inet::physicallayer::CommunicationCacheBase::setCachedInterference ( const IRadio receiver,
const ITransmission transmission,
const IInterference interference 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::ReferenceCommunicationCache.

423 {
424  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
425  if (cacheEntry == nullptr)
426  throw cRuntimeError("Cache entry not found");
427  else
428  cacheEntry->interference = interference;
429 }

◆ setCachedInterferenceEndTime()

void inet::physicallayer::CommunicationCacheBase::setCachedInterferenceEndTime ( const ITransmission transmission,
const simtime_t  interferenceEndTime 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

300 {
301  getTransmissionCacheEntry(transmission)->interferenceEndTime = interferenceEndTime;
302 }

◆ setCachedInterval()

void inet::physicallayer::CommunicationCacheBase::setCachedInterval ( const IRadio receiver,
const ITransmission transmission,
const IntervalTree::Interval interval 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

353 {
354  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
355  if (cacheEntry == nullptr)
356  throw cRuntimeError("Cache entry not found");
357  else
358  cacheEntry->interval = interval;
359  RadioCacheEntry *radioCacheEntry = getRadioCacheEntry(receiver);
360  if (radioCacheEntry->receptionIntervals == nullptr)
361  radioCacheEntry->receptionIntervals = new IntervalTree();
362  radioCacheEntry->receptionIntervals->insert(interval);
363 }

◆ setCachedListening()

void inet::physicallayer::CommunicationCacheBase::setCachedListening ( const IRadio receiver,
const ITransmission transmission,
const IListening listening 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

379 {
380  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
381  if (cacheEntry == nullptr)
382  throw cRuntimeError("Cache entry not found");
383  else
384  cacheEntry->listening = listening;
385 }

◆ setCachedNoise()

void inet::physicallayer::CommunicationCacheBase::setCachedNoise ( const IRadio receiver,
const ITransmission transmission,
const INoise noise 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::ReferenceCommunicationCache.

445 {
446  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
447  if (cacheEntry == nullptr)
448  throw cRuntimeError("Cache entry not found");
449  else
450  cacheEntry->noise = noise;
451 }

◆ setCachedReception()

void inet::physicallayer::CommunicationCacheBase::setCachedReception ( const IRadio receiver,
const ITransmission transmission,
const IReception reception 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::ReferenceCommunicationCache.

401 {
402  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
403  if (cacheEntry == nullptr)
404  throw cRuntimeError("Cache entry not found");
405  else
406  cacheEntry->reception = reception;
407 }

◆ setCachedReceptionDecision()

void inet::physicallayer::CommunicationCacheBase::setCachedReceptionDecision ( const IRadio receiver,
const ITransmission transmission,
IRadioSignal::SignalPart  part,
const IReceptionDecision receptionDecision 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

490 {
491  ASSERT(part != IRadioSignal::SIGNAL_PART_NONE);
492  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
493  if (cacheEntry == nullptr)
494  throw cRuntimeError("Cache entry not found");
495  else {
496  delete cacheEntry->receptionDecisions[part];
497  cacheEntry->receptionDecisions[part] = receptionDecision;
498  }
499 }

◆ setCachedReceptionResult()

void inet::physicallayer::CommunicationCacheBase::setCachedReceptionResult ( const IRadio receiver,
const ITransmission transmission,
const IReceptionResult receptionResult 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

518 {
519  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
520  if (cacheEntry == nullptr)
521  throw cRuntimeError("Cache entry not found");
522  else
523  cacheEntry->receptionResult = receptionResult;
524 }

◆ setCachedSignal() [1/2]

void inet::physicallayer::CommunicationCacheBase::setCachedSignal ( const IRadio receiver,
const ITransmission transmission,
const IWirelessSignal signal 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

540 {
541  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
542  if (cacheEntry == nullptr)
543  throw cRuntimeError("Cache entry not found");
544  else
545  cacheEntry->signal = signal;
546 }

◆ setCachedSignal() [2/2]

void inet::physicallayer::CommunicationCacheBase::setCachedSignal ( const ITransmission transmission,
const IWirelessSignal signal 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

315 {
316  getTransmissionCacheEntry(transmission)->signal = signal;
317 }

◆ setCachedSNIR()

void inet::physicallayer::CommunicationCacheBase::setCachedSNIR ( const IRadio receiver,
const ITransmission transmission,
const ISnir snir 
)
overridevirtual

Implements inet::physicallayer::ICommunicationCache.

Reimplemented in inet::physicallayer::ReferenceCommunicationCache.

467 {
468  ReceptionCacheEntry *cacheEntry = getReceptionCacheEntry(receiver, transmission);
469  if (cacheEntry == nullptr)
470  throw cRuntimeError("Cache entry not found");
471  else
472  cacheEntry->snir = snir;
473 }

The documentation for this class was generated from the following files:
inet::physicallayer::CommunicationCacheBase::TransmissionCacheEntry::interferenceEndTime
simtime_t interferenceEndTime
The last moment when this transmission may have any effect on other transmissions by interfering with...
Definition: CommunicationCacheBase.h:92
inet::physicallayer::IRadioSignal::SIGNAL_PART_NONE
@ SIGNAL_PART_NONE
Definition: IRadioSignal.h:25
inet::physicallayer::ICommunicationCache::mapRadios
virtual void mapRadios(std::function< void(const IRadio *)> f) const =0
inet::physicallayer::CommunicationCacheBase::TransmissionCacheEntry::signal
const IWirelessSignal * signal
The signal that was created by the transmitter is never nullptr.
Definition: CommunicationCacheBase.h:96
inet::physicallayer::CommunicationCacheBase::getReceptionCacheEntry
virtual ReceptionCacheEntry * getReceptionCacheEntry(const IRadio *radio, const ITransmission *transmission)=0
inet::physicallayer::ICommunicationCache::mapTransmissions
virtual void mapTransmissions(std::function< void(const ITransmission *)> f) const =0
inet::physicallayer::CommunicationCacheBase::getRadioCacheEntry
virtual RadioCacheEntry * getRadioCacheEntry(const IRadio *radio)=0
inet::physicallayer::CommunicationCacheBase::getTransmissionCacheEntry
virtual TransmissionCacheEntry * getTransmissionCacheEntry(const ITransmission *transmission)=0