WSF
WsfEW_EP Class Reference

#include <WsfEW_EP.hpp>

Inheritance diagram for WsfEW_EP:
Collaboration diagram for WsfEW_EP:

Classes

class  EP_Technique
 Special class to handle the EP specific technique implementations as required. More...

Public Member Functions

 WsfEW_EP ()
WsfEW_EPoperator= (const WsfEW_EP &)=delete
 ~WsfEW_EP () override
Public Member Functions inherited from WsfEW_EA_EP
 WsfEW_EA_EP ()
WsfEW_EA_EPoperator= (const WsfEW_EA_EP &)=delete
 ~WsfEW_EA_EP () override=default
bool HasFrequencyAgilityEffect () const
bool EffectIsAvailable (WsfStringId aEffectNameId) const
bool EffectIsAvailable (WsfEW_Types::TechniqueId aTechId, WsfStringId aEffectNameId) const
virtual WsfEW_EffectGetEffect (WsfEW_Types::TechniqueId aTechId, unsigned int aIndex) const
virtual WsfEW_EffectGetEffect (WsfEW_Types::TechniqueId aTechId, WsfStringId aEffectId) const
virtual const WsfEW_Technique::EffectPtrVecGetEffects (WsfEW_Types::TechniqueId aId) const
WsfSimulationGetSimulation () const
bool ProcessInput (UtInput &aInput) override
virtual bool DebugEnabled () const
 Determines if debugging is enabled.
virtual WsfEM_XmtrRcvrGetLinkedXmtrRcvr () const
virtual void RemoveJammerXmtr (unsigned int aXmtrId)
virtual void RemoveJammerXmtr (WsfEM_Xmtr *aXmtrPtr)
virtual bool SetDeltaGainTechnique (double aSimTime, WsfStringId aTechniqueId, bool aOnOff, bool aDebug, WsfStringId aEffectId, double aJammingDeltaGain, WsfStringId aSystemTypeId, WsfStringId aSystemFunctionId)
bool TechniquesAreAvailable () const
 Return true if there are techniques available, 0 otherwise.
bool TechniquesAreInUse () const
 Return true if there are techniques in use, 0 otherwise.
bool TechniqueIsAvailable (WsfEW_Types::TechniqueId aId) const
bool TechniqueIsInUse (WsfEW_Types::TechniqueId aId) const
bool TechniqueIsExternallyControlled (WsfEW_Types::TechniqueId aId) const
const WsfEW_Types::TechniqueIdVecGetTechniquesAvailable () const
 Return a list of all the technique Ids that are currently available.
const WsfEW_Types::TechniqueIdVecGetTechniquesInUse () const
 Return a list of all the technique Ids that are currently in use.
void SetTechnique (WsfEW_Types::TechniqueId aTechniqueId, bool aOnOff)
void ResetTechniquesInUseList ()
virtual bool CanApplyTechnique (WsfEW_Types::TechniqueId aId, WsfEW_Effect::SystemFunction aSystemFunction) const
virtual WsfEW_Types::TechniqueIdVecGetMitigatedTechniques ()
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)

Static Public Member Functions

static WsfEW_EA_EPGetElectronicProtect (const WsfEM_Rcvr &aRcvr)
 Convenience method to get the electronic protect object for the specified receiver.
static void SetElectronicProtect (WsfEM_Rcvr &aRcvr, WsfEW_EA_EP *aElectronicProtectPtr)
 Convenience method to set the electronic protect object for the specified receiver.

Technique methods.

typedef std::map< WsfEW_Types::TechniqueId, EP_Technique * > TechniqueIdToPtrMap
 Map the technique's ID to its location (pointer).
typedef std::map< WsfEW_Types::TechniqueId, EP_Technique * >::iterator TechniqueIdToPtrMapIter
typedef std::map< WsfEW_Types::TechniqueId, EP_Technique * >::const_iterator TechniqueIdToPtrMapConstIter
bool AddTechnique (WsfEW_Technique *aTechniquePtr) override
WsfEW_TechniqueGetTechnique (WsfEW_Types::TechniqueId aTechniqueId) const override
WsfEW_TechniqueGetTechnique (unsigned int aIndex) const override
virtual bool SelectTechnique (unsigned int aIndex, WsfEW_Effect::SystemFunction aSystemFunction)
virtual bool SelectTechnique (WsfEW_Types::TechniqueId aId, WsfEW_Effect::SystemFunction aSystemFunction)
virtual bool DeselectTechnique (unsigned int aIndex, WsfEW_Effect::SystemFunction aSystemFunction)
virtual bool DeselectTechnique (WsfEW_Types::TechniqueId aId, WsfEW_Effect::SystemFunction aSystemFunction)
WsfEW_Types::TechniqueIdVecGetMitigatedTechniqueIds (WsfEW_Types::TechniqueId aId) const
virtual bool DeselectTechnique (unsigned int aIndex)
virtual bool DeselectTechnique (WsfEW_Types::TechniqueId aId)
virtual bool SelectTechnique (unsigned int aIndex)
virtual bool SelectTechnique (WsfEW_Types::TechniqueId aId)

Effect methods.

WsfEW_Technique::EffectPtrVec GetMitigatingEffects (const WsfEW_Effect *aEA_EffectPtr, WsfEW_Effect::SystemFunction aAffectingSystemFunction, WsfEW_Effect::SystemFunction aAffectedSystemFunction) override
 WsfEW_EP (const WsfEW_EP &aSrc)

Common infrastructure methods.

WsfEW_EA_EPClone () const override
bool Initialize (WsfSimulation &aSimulation, WsfEM_XmtrRcvr *aXmtrRcvrPtr) override

Additional Inherited Members

Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
 WsfEW_EA_EP (const WsfEW_EA_EP &aSrc)
bool PrivateSetTechnique (WsfEW_Types::TechniqueId aTechnique, bool aOnOff)
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).
WsfSimulationmSimulationPtr
WsfEW_Types::TechniqueIdVec mTechniques
 A collection/list of all the Techniques by Id.
WsfEW_Types::TechniqueIdVec mTechniquesInUse
 A collection of all the Techniques currently in use by Id.
bool mDebug
 Debug flag 'true' if debug is enabled, 'false' otherwise.
WsfEM_XmtrRcvrmLinkedXmtrRcvrPtr
 The transmitter/receiver to which this EA/EP is linked to.

Detailed Description

A class which models an Electronic Protection procedure in response to an Electronic Attack.

An instance of this class is aggregated into a receiver that may be subject to Electronic Attack (EA) (see WsfEW_EA). The response may be to use mitigating techniques to thwart the attack, including the employment of one or more pre-planned counter-techniques in response to the adversary.

Member Typedef Documentation

◆ TechniqueIdToPtrMap

Map the technique's ID to its location (pointer).

◆ TechniqueIdToPtrMapConstIter

◆ TechniqueIdToPtrMapIter

Constructor & Destructor Documentation

◆ WsfEW_EP() [1/2]

WsfEW_EP::WsfEW_EP ( )

References WsfEW_EA_EP::WsfEW_EA_EP().

Referenced by Clone(), operator=(), and WsfEW_EP().

◆ ~WsfEW_EP()

WsfEW_EP::~WsfEW_EP ( )
override

◆ WsfEW_EP() [2/2]

WsfEW_EP::WsfEW_EP ( const WsfEW_EP & aSrc)
protected

Member Function Documentation

◆ AddTechnique()

bool WsfEW_EP::AddTechnique ( WsfEW_Technique * aTechniquePtr)
overridevirtual

Reimplemented from WsfEW_EA_EP.

References WsfEW_EA_EP::AddTechnique(), and WsfObject::GetNameId().

◆ Clone()

WsfEW_EA_EP * WsfEW_EP::Clone ( ) const
overridevirtual

Clone this object.

Returns
a pointer to the new object.

Implements WsfEW_EA_EP.

References WsfEW_EA_EP::WsfEW_EA_EP(), and WsfEW_EP().

◆ DeselectTechnique() [1/4]

bool WsfEW_EA_EP::DeselectTechnique ( unsigned int aIndex)
virtual

Deselect a technique for use based on technique index

Parameters
aIndexSpecifies the index of the technique in the list (0 - size mTechniques-1).
Returns
Returns true if the technique was successfully deselected.

Reimplemented from WsfEW_EA_EP.

◆ DeselectTechnique() [2/4]

bool WsfEW_EP::DeselectTechnique ( unsigned int aIndex,
WsfEW_Effect::SystemFunction aSystemFunction )
virtual

Deselect a technique for use based on technique index for the specified System Type

Parameters
aIndexSpecifies the index of the technique in the list (0 - size mTechniques-1).
aSystemFunctionIndicates what system function that the effect will be applied to (i.e. Comms, Sensors, etc.).
Returns
Returns true if the technique was successfully deselected.

References WsfEW_EA_EP::mDebug, WsfEW_EA_EP::mTechniques, and WsfEW_EA_EP::PrivateSetTechnique().

◆ DeselectTechnique() [3/4]

Deselect a technique for use based on technique Id

Parameters
aIdSpecifies the Id of the technique in the list.
Returns
Returns true if the technique was successfully deselected.

Reimplemented from WsfEW_EA_EP.

◆ DeselectTechnique() [4/4]

bool WsfEW_EP::DeselectTechnique ( WsfEW_Types::TechniqueId aId,
WsfEW_Effect::SystemFunction aSystemFunction )
virtual

Deselect a technique for use based on technique Id for the specified System Type

Parameters
aIdSpecifies the Id of the technique in the list.
aSystemFunctionIndicates what system function that the effect will be applied to (i.e. Comms, Sensors, etc.).
Returns
Returns true if the technique was successfully deselected.

References WsfEW_EA_EP::mDebug, and WsfEW_EA_EP::PrivateSetTechnique().

◆ GetElectronicProtect()

◆ GetMitigatedTechniqueIds()

WsfEW_Types::TechniqueIdVec * WsfEW_EP::GetMitigatedTechniqueIds ( WsfEW_Types::TechniqueId aId) const

◆ GetMitigatingEffects()

WsfEW_Technique::EffectPtrVec WsfEW_EP::GetMitigatingEffects ( const WsfEW_Effect * aEA_EffectPtr,
WsfEW_Effect::SystemFunction aAffectingSystemFunction,
WsfEW_Effect::SystemFunction aAffectedSystemFunction )
overridevirtual

This non-const method selects appropriate EP Technique(s) (if available), that will mitigate the applied Electronic Attack Techniques, and then returns the resulting effect.

Parameters
aEA_EffectPtrPointer to the applied electronic attack effect to mitigate
aAffectingSystemFunctionIndicates the system function the attack was applied to.
aAffectedSystemFunctionIndicates the system function the attack was applied to.
Returns
The 'effect' resulting from the interchange (can be zero).

Reimplemented from WsfEW_EA_EP.

References WsfEW_EA_EP::CanApplyTechnique(), WsfEW_Technique::CanApplyTechnique(), WsfEW_Technique::GetEffects(), WsfEW_Technique::GetMitigatedTechniqueClassIds(), WsfEW_Technique::GetMitigatedTechniqueIds(), WsfEW_Technique::GetMitigationClassId(), WsfObject::GetName(), WsfObject::GetNameId(), WsfSimulation::GetSimTime(), WsfEW_EA_EP::GetSimulation(), GetTechnique(), WsfEW_Effect::GetTechniquePtr(), WsfEW_Technique::IsExternallyControlled(), WsfEW_EA_EP::mDebug, WsfEW_EA_EP::mTechniques, WsfEW_EA_EP::PrivateSetTechnique(), WsfEW_EA_EP::ResetTechniquesInUseList(), sort(), WsfEW_EA_EP::TechniqueIsInUse(), and unique().

◆ GetTechnique() [1/2]

WsfEW_Technique * WsfEW_EP::GetTechnique ( unsigned int aIndex) const
overridevirtual

Get technique for use based on technique index

Parameters
aIndexSpecifies the index of the technique in the list (0 - size mTechniques-1).
Returns
Returns pointer to technique if found and NULL ('0') if not found.

Reimplemented from WsfEW_EA_EP.

References WsfEW_EA_EP::mTechniques.

◆ GetTechnique() [2/2]

WsfEW_Technique * WsfEW_EP::GetTechnique ( WsfEW_Types::TechniqueId aTechniqueId) const
overridevirtual

Get technique for use based on technique Id

Parameters
aTechniqueIdThe Id of the technique.
Returns
Returns pointer to technique if found and NULL ('0') if not found.

Reimplemented from WsfEW_EA_EP.

Referenced by GetMitigatedTechniqueIds(), GetMitigatingEffects(), and Initialize().

◆ Initialize()

bool WsfEW_EP::Initialize ( WsfSimulation & aSimulation,
WsfEM_XmtrRcvr * aXmtrRcvrPtr )
overridevirtual

◆ operator=()

WsfEW_EP & WsfEW_EP::operator= ( const WsfEW_EP & )
delete

◆ SelectTechnique() [1/4]

bool WsfEW_EA_EP::SelectTechnique ( unsigned int aIndex)
virtual

Selects a technique for use based on technique index

Parameters
aIndexSpecifies the index of the technique in the list (0 - size mTechniques-1).
Returns
Returns true if the technique was successfully selected.

Reimplemented from WsfEW_EA_EP.

◆ SelectTechnique() [2/4]

bool WsfEW_EP::SelectTechnique ( unsigned int aIndex,
WsfEW_Effect::SystemFunction aSystemFunction )
virtual

Selects a technique for use based on technique index for the specified System Type

Parameters
aIndexSpecifies the index of the technique in the list (0 - size mTechniques-1).
aSystemFunctionIndicates what system function that the effect will be applied to (i.e. Comms, Sensors, etc.).
Returns
Returns true if the technique was successfully selected.

References WsfEW_EA_EP::mDebug, WsfEW_EA_EP::mTechniques, and WsfEW_EA_EP::PrivateSetTechnique().

◆ SelectTechnique() [3/4]

Selects a technique for use based on technique Id

Parameters
aIdSpecifies the Id of the technique in the list.
Returns
Returns true if the technique was successfully selected.

Reimplemented from WsfEW_EA_EP.

◆ SelectTechnique() [4/4]

bool WsfEW_EP::SelectTechnique ( WsfEW_Types::TechniqueId aId,
WsfEW_Effect::SystemFunction aSystemFunction )
virtual

Selects a technique for use based on technique Id for the specified System Type

Parameters
aIdSpecifies the Id of the technique in the list.
aSystemFunctionIndicates what system function that the effect will be applied to (i.e. Comms, Sensors, etc.).
Returns
Returns true if the technique was successfully selected.

References WsfEW_EA_EP::mDebug, and WsfEW_EA_EP::PrivateSetTechnique().

◆ SetElectronicProtect()

void WsfEW_EP::SetElectronicProtect ( WsfEM_Rcvr & aRcvr,
WsfEW_EA_EP * aElectronicProtectPtr )
static

Convenience method to set the electronic protect object for the specified receiver.

References WsfEW_RcvrComponent::FindOrCreate(), WsfEW_RcvrComponent::SetElectronicProtect(), and WsfEW_EA_EP::WsfEW_EA_EP().


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved