Q2NS dev
ns-3 module
Loading...
Searching...
No Matches
q2ns::ConditionalQMap Class Referencefinal

QMap wrapper that conditionally applies another QMap. More...

#include <q2ns-qmap.h>

Inheritance diagram for q2ns::ConditionalQMap:
Collaboration diagram for q2ns::ConditionalQMap:

Public Types

using Condition = std::function< bool(const std::shared_ptr< Qubit > &, const QMapContext &)>
 Predicate type controlling whether the wrapped map is applied.
 

Public Member Functions

void SetQMap (ns3::Ptr< QMap > qmap)
 Set the wrapped QMap.
 
void SetCondition (Condition pred)
 Set the condition predicate.
 
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 ()
 Get the ns-3 TypeId.
 
- 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

ns3::Ptr< QMapqmap_
 Wrapped QMap.
 
Condition cond_
 Application predicate.
 

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

QMap wrapper that conditionally applies another QMap.

The wrapped QMap is sampled normally, but its sampled instance is only executed if the configured predicate returns true.

Definition at line 287 of file q2ns-qmap.h.

Member Typedef Documentation

◆ Condition

using q2ns::ConditionalQMap::Condition = std::function<bool(const std::shared_ptr<Qubit>&, const QMapContext&)>

Predicate type controlling whether the wrapped map is applied.

Definition at line 292 of file q2ns-qmap.h.

Member Function Documentation

◆ GetTypeId()

ns3::TypeId q2ns::ConditionalQMap::GetTypeId ( )
static

Get the ns-3 TypeId.

Returns
TypeId for q2ns::ConditionalQMap.

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

◆ Sample()

QMapInstance q2ns::ConditionalQMap::Sample ( ns3::Ptr< ns3::UniformRandomVariable >  u,
const QMapContext ctx = QMapContext{} 
) const
overridevirtual

Sample a per-transmission QMapInstance.

Parameters
uUniform random source.
ctxPer-transmission context.
Returns
Sampled conditional instance.

Implements q2ns::QMap.

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

References cond_, and qmap_.

◆ SetCondition()

void q2ns::ConditionalQMap::SetCondition ( Condition  pred)

Set the condition predicate.

Parameters
predPredicate controlling application.

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

References cond_.

◆ SetQMap()

void q2ns::ConditionalQMap::SetQMap ( ns3::Ptr< QMap qmap)

Set the wrapped QMap.

Parameters
qmapWrapped QMap.

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

References qmap_.

Member Data Documentation

◆ cond_

Condition q2ns::ConditionalQMap::cond_
private

Application predicate.

Definition at line 323 of file q2ns-qmap.h.

Referenced by Sample(), and SetCondition().

◆ qmap_

ns3::Ptr<QMap> q2ns::ConditionalQMap::qmap_
private

Wrapped QMap.

Definition at line 322 of file q2ns-qmap.h.

Referenced by Sample(), and SetQMap().


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