33 #ifndef EMANEMODELSTDMARECEIVEMANAGER_HEADER_    34 #define EMANEMODELSTDMARECEIVEMANAGER_HEADER_    85         void loadCurves(
const std::string & sPCRFileName);
    94                      std::uint64_t u64PacketSequence);
    96         void process(std::uint64_t u64AbsoluteSlotIndex);
   115         PendingInfo pendingInfo_;
   116         std::uint64_t u64PendingAbsoluteSlotIndex_;
   119                                         std::uniform_real_distribution<float>> distribution_;
   121         bool bPromiscuousMode_;
   122         std::chrono::seconds fragmentCheckThreshold_;
   123         std::chrono::seconds fragmentTimeoutThreshold_;
   125         using FragmentKey = std::tuple<NEMId,Priority,std::uint64_t>;
   126         using FragmentParts = std::map<size_t,std::vector<std::uint8_t>>;
   127         using FragmentInfo = std::tuple<std::set<size_t>,
   132         using FragmentStore = std::map<FragmentKey,FragmentInfo>;
   133         using FragmentTimeStore = std::map<TimePoint,FragmentKey>;
   135         FragmentStore fragmentStore_;
   136         FragmentTimeStore fragmentTimeStore_;
   137         TimePoint lastFragmentCheckTime_;
   147 #endif // EMANEMODELSTDMARECEIVEMANAGER_HEADER_ 
void process(std::uint64_t u64AbsoluteSlotIndex)
 
Message class used to serialize and deserialize TDMA radio model messages. 
 
POR Manager responsible for loading PCR curves from file and determining POR. 
 
void setPromiscuousMode(bool bEnable)
 
Store source, destination, creation time and priority information for a packet. 
 
Log service provider interface. 
 
void setFragmentTimeoutThreshold(const std::chrono::seconds &threshold)
 
ReceiveManager(NEMId id, DownstreamTransport *pDownstreamTransport, LogServiceProvider *pLogService, RadioServiceProvider *pRadioService, Scheduler *pScheduler, PacketStatusPublisher *pPacketStatusPublisher, NeighborMetricManager *pNeighborMetricManager)
 
std::chrono::microseconds Microseconds
 
void loadCurves(const std::string &sPCRFileName)
 
The RadioServiceProvider interface provides access to radio (RF) model specific services. 
 
Scheduler interface used by BaseModel to communicate with a scheduler module. 
 
void setFragmentCheckThreshold(const std::chrono::seconds &threshold)
 
std::list< FrequencySegment > FrequencySegments
 
Manages all receive side message processing. 
 
Packet status interface used to publish statistics and tables showing accepted and rejected byte coun...
 
Clock::time_point TimePoint
 
DownstreamTransport allows for processing downstream data and control messages. 
 
bool enqueue(BaseModelMessage &&baseModelMessage, const PacketInfo &pktInfo, size_t length, const TimePoint &startOfReception, const FrequencySegments &frequencySegments, const Microseconds &span, const TimePoint &beginTime, std::uint64_t u64PacketSequence)
 
A utility wrapper around a generator and a distribution. 
 
Manages neighbor metrics and sends neighbor metric control message upstream.