34 #ifndef EMANEMODELSTDMARECEIVEMANAGER_HEADER_    35 #define EMANEMODELSTDMARECEIVEMANAGER_HEADER_    86         void loadCurves(
const std::string & sPCRFileName);
    95                      std::uint64_t u64PacketSequence);
    97         void process(std::uint64_t u64AbsoluteSlotIndex);
   116         PendingInfo pendingInfo_;
   117         std::uint64_t u64PendingAbsoluteSlotIndex_;
   120                                         std::uniform_real_distribution<float>> distribution_;
   122         bool bPromiscuousMode_;
   123         std::chrono::seconds fragmentCheckThreshold_;
   124         std::chrono::seconds fragmentTimeoutThreshold_;
   126         using FragmentKey = std::tuple<NEMId,Priority,std::uint64_t>;
   127         using FragmentParts = std::map<size_t,std::vector<std::uint8_t>>;
   128         using FragmentInfo = std::tuple<std::set<size_t>,
   134         using FragmentStore = std::map<FragmentKey,FragmentInfo>;
   136         FragmentStore fragmentStore_;
   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.