12#ifndef WSFCYBERATTACKPARAMETERS_HPP
13#define WSFCYBERATTACKPARAMETERS_HPP
15#include "wsf_cyber_export.h"
17#include <unordered_map>
20#include "UtScriptAccessible.hpp"
21#include "UtScriptClass.hpp"
36 : mScriptParameter(aScriptUsage)
49 void GetParameter(
const std::string& aEffectName, T*& aParameter)
const
56 aParameter = data.GetPointer()->GetAppObject<T>();
72 bool mScriptParameter{
false};
81 void*
Create(
const UtScriptContext& aInstance)
override;
82 void*
Clone(
void* aObjectPtr)
override;
83 void Destroy(
void* aObjectPtr)
override;
101 using ParameterMap = std::unordered_map<std::string, std::vector<AttackParameterObject>>;
109 std::vector<std::string> GetEffectNames()
const;
110 const std::vector<AttackParameterObject>* GetEffectEntries(
const std::string& aEffectName)
const;
111 size_t GetEffectEntryCount(
const std::string& aEffectName)
const;
137 void*
Create(
const UtScriptContext& aInstance)
override;
138 void*
Clone(
void* aObjectPtr)
override;
139 void Destroy(
void* aObjectPtr)
override;
#define UT_DECLARE_AUX_DATA_SCRIPT_METHODS()
Definition WsfScriptAuxDataUtil.hpp:194
ut::script::Data UtScriptData
Definition WsfScriptContext.hpp:47
const WsfAttributeContainer & GetAuxDataConst() const noexcept
Definition WsfAuxDataEnabled.cpp:47
WsfAuxDataEnabled()=default
This class is a simple wrapper for an AUX data container.
Definition WsfCyberAttackParameters.hpp:32
AttackParameterObject()=default
AttackParameterObject(bool aScriptUsage)
Definition WsfCyberAttackParameters.hpp:35
void GetParameter(const std::string &aEffectName, T *&aParameter) const
Definition WsfCyberAttackParameters.hpp:49
~AttackParameterObject() override=default
const char * GetScriptClassName() const override
Definition WsfCyberAttackParameters.hpp:42
virtual AttackParameterObject * Clone() const
Definition WsfCyberAttackParameters.hpp:41
std::unordered_map< std::string, std::vector< AttackParameterObject > > ParameterMap
Definition WsfCyberAttackParameters.hpp:101
const char * GetScriptClassName() const override
Definition WsfCyberAttackParameters.hpp:107
virtual AttackParameters * Clone() const
Definition WsfCyberAttackParameters.hpp:106
~AttackParameters() override=default
AttackParameters()=default
void * Clone(void *aObjectPtr) override
Definition WsfCyberAttackParameters.cpp:40
void Destroy(void *aObjectPtr) override
Definition WsfCyberAttackParameters.cpp:46
ScriptAttackParameterObjectClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfCyberAttackParameters.cpp:22
~ScriptAttackParameterObjectClass() override=default
void * Create(const UtScriptContext &aInstance) override
Definition WsfCyberAttackParameters.cpp:34
UT_DECLARE_SCRIPT_METHOD(GetEffectEntryByIndex)
UT_DECLARE_SCRIPT_METHOD(AddParameter)
void * Create(const UtScriptContext &aInstance) override
Definition WsfCyberAttackParameters.cpp:131
UT_DECLARE_SCRIPT_METHOD(GetEffectEntryCount)
void * Clone(void *aObjectPtr) override
Definition WsfCyberAttackParameters.cpp:137
UT_DECLARE_SCRIPT_METHOD(GetEffectNames)
ScriptAttackParametersClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfCyberAttackParameters.cpp:116
void Destroy(void *aObjectPtr) override
Definition WsfCyberAttackParameters.cpp:143
~ScriptAttackParametersClass() override=default
Definition WsfCyberApplicationExtension.cpp:24
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32