Q2NS dev
ns-3 module
Loading...
Searching...
No Matches
q2ns::anonymous_namespace{q2ns-qmap.cc}::CompositeQMap Class Referencefinal

Internal QMap implementation for sequential composition. More...

Inheritance diagram for q2ns::anonymous_namespace{q2ns-qmap.cc}::CompositeQMap:
Collaboration diagram for q2ns::anonymous_namespace{q2ns-qmap.cc}::CompositeQMap:

Public Member Functions

 CompositeQMap ()=default
 
void SetMaps (const std::vector< ns3::Ptr< QMap > > &maps)
 
QMapInstance Sample (ns3::Ptr< ns3::UniformRandomVariable > u, const QMapContext &ctx=QMapContext{}) const override
 Sample a per-transmission QMapInstance.
 
- Public Member Functions inherited from q2ns::QMap
 ~QMap () override=default
 Virtual destructor.
 

Static Public Member Functions

static ns3::TypeId GetTypeId ()
 
- Static Public Member Functions inherited from q2ns::QMap
static ns3::TypeId GetTypeId ()
 Get the ns-3 TypeId.
 
static ns3::Ptr< QMapCompose (const ns3::Ptr< QMap > &a, const ns3::Ptr< QMap > &b)
 Compose two QMaps into one sequential composite QMap.
 
static ns3::Ptr< QMapCompose (const std::vector< ns3::Ptr< QMap > > &maps)
 Compose a sequence of QMaps into one sequential composite QMap.
 
static ns3::Ptr< QMapFromLambda (std::function< void(QNode &, std::shared_ptr< Qubit > &)> f)
 Build a QMap from a simple lambda.
 
static ns3::Ptr< QMapFromLambda (std::function< void(QNode &, std::shared_ptr< Qubit > &, ns3::Ptr< ns3::UniformRandomVariable >, const QMapContext &)> f)
 Build a QMap from an advanced lambda.
 
static double RateToProb (double rate_per_s, const ns3::Time &t)
 Convert a Poisson rate and elapsed time into an event probability.
 

Private Attributes

std::vector< ns3::Ptr< QMap > > maps_
 Component maps in left-to-right order.
 

Additional Inherited Members

- Protected Member Functions inherited from q2ns::QMap
double GetProb_ (const QMapContext &ctx) const
 Return the effective application probability for this transmission.
 
bool Bernoulli_ (ns3::Ptr< ns3::UniformRandomVariable > u, const QMapContext &ctx) const
 Perform one Bernoulli trial using the effective probability.
 
- Static Protected Member Functions inherited from q2ns::QMap
static void SetLost_ (Qubit &q)
 Mark a qubit lost through the standard registry-backed location path.
 
- Protected Attributes inherited from q2ns::QMap
double p_ = 0.0
 Direct per-transmission probability.
 
double rate_ = 0.0
 Poisson event rate in 1/s. Overrides p_ when positive.
 

Detailed Description

Internal QMap implementation for sequential composition.

This type is intentionally hidden from users. It samples each component map once for the current transmission and later executes the sampled instances left to right at the receiver.

Definition at line 69 of file q2ns-qmap.cc.

Constructor & Destructor Documentation

◆ CompositeQMap()

q2ns::anonymous_namespace{q2ns-qmap.cc}::CompositeQMap::CompositeQMap ( )
default

Member Function Documentation

◆ GetTypeId()

static ns3::TypeId q2ns::anonymous_namespace{q2ns-qmap.cc}::CompositeQMap::GetTypeId ( )
inlinestatic

Definition at line 71 of file q2ns-qmap.cc.

◆ Sample()

QMapInstance q2ns::anonymous_namespace{q2ns-qmap.cc}::CompositeQMap::Sample ( ns3::Ptr< ns3::UniformRandomVariable >  u,
const QMapContext ctx = QMapContext{} 
) const
inlineoverridevirtual

Sample a per-transmission QMapInstance.

The returned callable is later executed at the receiving node after the qubit has become local there.

Parameters
uUniform random source to use for sampling.
ctxOptional per-transmission context.
Returns
Per-transmission QMapInstance. An empty callable represents the identity map.

Implements q2ns::QMap.

Definition at line 89 of file q2ns-qmap.cc.

◆ SetMaps()

void q2ns::anonymous_namespace{q2ns-qmap.cc}::CompositeQMap::SetMaps ( const std::vector< ns3::Ptr< QMap > > &  maps)
inline

Definition at line 83 of file q2ns-qmap.cc.

Member Data Documentation

◆ maps_

std::vector<ns3::Ptr<QMap> > q2ns::anonymous_namespace{q2ns-qmap.cc}::CompositeQMap::maps_
private

Component maps in left-to-right order.

Definition at line 113 of file q2ns-qmap.cc.


The documentation for this class was generated from the following file: