15#ifndef WSFRIPRPROCESSOR_HPP
16#define WSFRIPRPROCESSOR_HPP
18#include "UtCallbackHolder.hpp"
19#include "UtWallClock.hpp"
51 const std::string& aPartClass,
52 const std::string& aPartVarName,
53 bool aJobPassThrough =
false);
72 void Update(
double aSimTime)
override;
286 size_t aAssigneeIndex,
337 using QueryBidMapType = std::map<std::string, std::pair<WsfScriptContext*, UtScript*>>;
size_t targetIndex(aVarArgs[0].GetInt())
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Definition WsfProcessor.hpp:39
Definition WsfRIPRJobBoard.hpp:44
Definition WsfRIPRJob.hpp:57
Definition WsfRIPRManager.hpp:71
Definition WsfRIPRProcessor.hpp:45
std::vector< std::pair< std::string, UtScript * > > mBiddingBlocks
Definition WsfRIPRProcessor.hpp:333
int Targeting(const WsfTrack *aTrackPtr)
Definition WsfRIPRProcessor.cpp:1283
UtCallbackHolder mCallbacks
Definition WsfRIPRProcessor.hpp:181
WsfPlatform * TargetPlatform()
Definition WsfRIPRProcessor.cpp:1484
void SetTargetByPlatformId(size_t aTargetId)
Definition WsfRIPRProcessor.cpp:1525
WsfPlatform * CommanderPlatform()
Definition WsfRIPRProcessor.cpp:597
int JobChannelByProcId(unsigned int aRIPRProcId)
Definition WsfRIPRProcessor.cpp:492
int SubsWeaponsActive(const WsfTrack *aTrackPtr, const WsfPlatform *aExcludePlatform=nullptr)
Definition WsfRIPRProcessor.cpp:1336
WsfRIPRProcessor & operator=(const WsfRIPRProcessor &)=delete
double QueryBid(WsfRIPRJob &aJob)
Definition WsfRIPRProcessor.cpp:304
void SetJobBoardComm(wsf::comm::Comm *aCommPtr)
Definition WsfRIPRProcessor.hpp:135
WsfPlatform * UplinkWeaponPlatform(unsigned int aIndex)
Return the weapon platform at aIndex in the list of the weapons currently being uplinked to.
Definition WsfRIPRProcessor.cpp:1204
ripr::JobChannelIdList JobChannelIds() const
Returns a copy of the Job Channels Id list.
Definition WsfRIPRProcessor.hpp:89
unsigned int NumJobChannels() const
Definition WsfRIPRProcessor.hpp:84
WeaponStatusList::iterator FindWeaponStatus(const WsfTrackId &aTrackId, size_t aAssigneeIndex, WsfStringId aWeaponSystemName)
Definition WsfRIPRProcessor.cpp:1547
std::vector< WsfPlatform * > WeaponsIncoming()
Definition WsfRIPRProcessor.cpp:1414
double WallClock()
Definition WsfRIPRProcessor.cpp:328
void SetNumJobChannels(unsigned int aNumChannels)
Definition WsfRIPRProcessor.cpp:464
bool UplinkCapable()
Definition WsfRIPRProcessor.cpp:1009
bool JobWindowOpen(double aSimTime)
Definition WsfRIPRProcessor.cpp:279
WsfRIPRManager * GetManager() const
Definition WsfRIPRProcessor.hpp:314
const char * GetScriptClassName() const override
Definition WsfRIPRProcessor.cpp:1750
void WeaponHit(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, WsfPlatform *aTargetPlatformPtr)
Definition WsfRIPRProcessor.cpp:959
bool ValidJobTypeChannel(std::string aJobType, unsigned int aChannelIndex)
Definition WsfRIPRProcessor.cpp:541
ripr::JobTypeChannelsMap::iterator JobTypeIter
Definition WsfRIPRProcessor.hpp:323
void WeaponTerminated(double aSimTime, const WsfWeaponEngagement *aEngagementPtr)
Definition WsfRIPRProcessor.cpp:906
std::vector< unsigned int > JobTypeChannels(std::string aJobType)
Definition WsfRIPRProcessor.cpp:513
wsf::comm::Comm * JobBoardComm()
Definition WsfRIPRProcessor.hpp:134
void SetBufferedJobForChannel(int aChannelIndex, int aJob)
Definition WsfRIPRProcessor.hpp:146
WsfRIPRProcessor * CommanderProcessor()
Definition WsfRIPRProcessor.cpp:658
int PeersTargeting(const WsfTrack &aTrack)
Definition WsfRIPRProcessor.cpp:1392
bool IsUplinkingTo(int receiverIndex)
Definition WsfRIPRProcessor.cpp:1173
WsfProcessor * Clone() const override
Definition WsfRIPRProcessor.cpp:140
bool mJobPassThrough
Definition WsfRIPRProcessor.hpp:329
ActiveWeaponList mActiveWeaponList
Definition WsfRIPRProcessor.hpp:206
WsfRIPRJob * JobFor(double aSimTime, WsfRIPRProcessor *aProcPtr, int aChannelIndex)
Definition WsfRIPRProcessor.cpp:1563
size_t TargetPlatformId()
Definition WsfRIPRProcessor.cpp:1489
std::list< ActiveWeapon > ActiveWeaponList
Definition WsfRIPRProcessor.hpp:203
unsigned int GetId(unsigned int aIndex=0)
Definition WsfRIPRProcessor.hpp:82
bool StartUplinking(size_t receiverIndex, size_t targetIndex=0)
Definition WsfRIPRProcessor.cpp:1021
int BufferedJobForChannel(int aChannelIndex)
Definition WsfRIPRProcessor.hpp:145
bool Initialize(double aSimTime) override
Definition WsfRIPRProcessor.cpp:154
bool BidWindowOpen(double aSimTime)
Definition WsfRIPRProcessor.cpp:284
WeaponStatusList mWeaponStatusList
Definition WsfRIPRProcessor.hpp:283
void SetBidWindowOpen(bool aOpen)
Definition WsfRIPRProcessor.cpp:294
~WsfRIPRProcessor() override
Definition WsfRIPRProcessor.cpp:101
bool ReceiveMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfRIPRProcessor.cpp:1729
std::vector< WsfRIPRProcessor * > SubordinateProcessors()
Definition WsfRIPRProcessor.cpp:761
UtWallClock mRiprWallClock
Definition WsfRIPRProcessor.hpp:343
void WeaponMissed(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, WsfPlatform *aTargetPlatformPtr)
Definition WsfRIPRProcessor.cpp:986
void SetJobStickiness(double aStickiness)
Definition WsfRIPRProcessor.cpp:299
unsigned int mDesiredJobChannels
Definition WsfRIPRProcessor.hpp:341
bool SetTargetByPlatform(WsfPlatform *aPlatformPtr)
Definition WsfRIPRProcessor.cpp:1514
bool StopUplinking(size_t receiverIndex)
Definition WsfRIPRProcessor.cpp:1131
void Update(double aSimTime) override
Definition WsfRIPRProcessor.cpp:232
int WeaponsActiveOfType(const WsfWeapon &aWeapon)
Definition WsfRIPRProcessor.cpp:1251
bool ProcessMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfRIPRProcessor.cpp:1629
std::string TargetName()
Definition WsfRIPRProcessor.cpp:1474
bool SetTargetByName(std::string aTargetName)
Definition WsfRIPRProcessor.cpp:1508
std::vector< std::string > ChannelJobTypes(unsigned int aChannelIndex)
Definition WsfRIPRProcessor.cpp:526
ripr::JobChannelIdList mJobChannelIds
Definition WsfRIPRProcessor.hpp:320
WsfPlatform * ActiveWeaponPlatform(unsigned int aIndex)
Return the platform of the active weapon at the given index.
Definition WsfRIPRProcessor.cpp:1266
wsf::comm::Comm * mJobBoardCommPtr
pointer to the WsfComm object to be used by mJobBoard
Definition WsfRIPRProcessor.hpp:349
virtual WsfRIPRJobBoard * JobBoard()
Definition WsfRIPRProcessor.cpp:253
size_t mTargetPlatformIndex
Definition WsfRIPRProcessor.hpp:178
int PeersWeaponsActive(const WsfTrack &aTrack)
Definition WsfRIPRProcessor.cpp:1369
WsfTrack * TargetTrack()
Definition WsfRIPRProcessor.cpp:1494
WsfRIPRJobBoard * mJobBoardPtr
Definition WsfRIPRProcessor.hpp:328
bool ProcessInput(UtInput &aInput) override
Definition WsfRIPRProcessor.cpp:364
WsfRIPRManager * mManagerPtr
Definition WsfRIPRProcessor.hpp:318
bool SetTargetByTrack(WsfTrack *aTargetTrackPtr)
Definition WsfRIPRProcessor.cpp:1530
void SendMessageJobAward(wsf::comm::Comm *aCommPtr, WsfRIPRProcessor *aSourcePtr, int aChannelIndex, int aJobId)
Definition WsfRIPRProcessor.cpp:1594
virtual bool RegisterScriptBiddingBlock(std::string aJobType, WsfScriptContext *aContextPtr, UtScript *aScriptPtr)
Definition WsfRIPRProcessor.cpp:334
bool ClearTarget()
Definition WsfRIPRProcessor.cpp:1541
WsfStringId mJobBoardCommInput
nameid of the WsfComm object to stick in mJobBoardComm during initialize; read during process input
Definition WsfRIPRProcessor.hpp:352
bool Initialize2(double aSimTime) override
Definition WsfRIPRProcessor.cpp:146
int SubsTargeting(const WsfTrack *aTrackPtr, const WsfPlatform *aExcludePlatform=nullptr)
Definition WsfRIPRProcessor.cpp:1306
WsfRIPRProcessor(WsfScenario &aScenario, const char *aPretendName, bool aJobPassThrough=false)
Definition WsfRIPRProcessor.cpp:47
void SetJobPassThrough(bool aJobPassThrough)
Definition WsfRIPRProcessor.cpp:269
bool BiddingHijacked() const
True means script calls to set bids for this processor are n.
Definition WsfRIPRProcessor.hpp:63
bool mBiddingHijacked
If true, this processor cannot bid from script calls.
Definition WsfRIPRProcessor.hpp:346
unsigned int WeaponUplinkCount()
Definition WsfRIPRProcessor.cpp:1193
void WeaponFired(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, const WsfTrack *aTargetTrackPtr)
Definition WsfRIPRProcessor.cpp:801
std::list< WeaponStatus > WeaponStatusList
Definition WsfRIPRProcessor.hpp:281
std::list< WeaponStatus >::iterator WeaponStatusListIter
Definition WsfRIPRProcessor.hpp:282
ripr::RIPRChannelJobMap mBufferedJobs
map of which job id each channel id thinks it should currently be doing, indexed by job id
Definition WsfRIPRProcessor.hpp:355
std::vector< WsfPlatform * > Subordinates()
Definition WsfRIPRProcessor.cpp:1292
bool JobPassThrough()
Definition WsfRIPRProcessor.hpp:122
QueryBidMapType mQueryBidTypeMap
Definition WsfRIPRProcessor.hpp:338
ripr::JobTypeChannelsMap mJobTypeChannels
Definition WsfRIPRProcessor.hpp:322
int WeaponsActive()
Return the count of the number of weapons that are active.
Definition WsfRIPRProcessor.cpp:1215
ripr::RIPRCommanderList Commanders()
Definition WsfRIPRProcessor.cpp:635
std::list< ActiveWeapon >::iterator ActiveWeaponListIter
Definition WsfRIPRProcessor.hpp:204
void SetJobWindowOpen(bool aOpen)
Definition WsfRIPRProcessor.cpp:289
std::vector< WsfPlatform * > SubordinatePlatforms()
Definition WsfRIPRProcessor.cpp:710
double QuerySubordinatesMaxBid(WsfRIPRJob &aJob, bool expandPassThroughAgents=true)
Definition WsfRIPRProcessor.cpp:767
std::map< std::string, std::pair< WsfScriptContext *, UtScript * > > QueryBidMapType
Definition WsfRIPRProcessor.hpp:337
virtual bool UnregisterScriptBiddingBlock(std::string aJobType)
Definition WsfRIPRProcessor.cpp:349
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfScriptContext.hpp:71
WsfScriptProcessor(const WsfScenario &aScenario)
Definition WsfScriptProcessor.cpp:30
Definition WsfTrackId.hpp:33
Definition WsfTrackMessage.hpp:28
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeaponEngagement.hpp:43
Definition WsfWeapon.hpp:63
Definition WsfComm.hpp:43
std::map< int, int > RIPRChannelJobMap
Definition WsfRIPRCommon.hpp:36
std::multimap< std::string, unsigned int > JobTypeChannelsMap
Definition WsfRIPRCommon.hpp:37
std::vector< unsigned int > JobChannelIdList
Definition WsfRIPRCommon.hpp:35
std::list< RIPRCommanderInfo > RIPRCommanderList
Definition WsfRIPRCommon.hpp:68
Definition WsfComm.cpp:34
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Definition WsfRIPRProcessor.hpp:190
size_t mTargetIndex
The platform index of the target, not in WsfTaskManager.
Definition WsfRIPRProcessor.hpp:200
WsfStringId mWeaponSystemName
The name of the weapon system that was fired. (NOT the name of the launched weapon).
Definition WsfRIPRProcessor.hpp:194
WsfTrackId mTaskTrackId
The track ID of the track that was provided to WsfWeapon::Fire.
Definition WsfRIPRProcessor.hpp:192
size_t mPlatformIndex
Platform index of the launched weapon platform.
Definition WsfRIPRProcessor.hpp:196
unsigned int mSerialNumber
The serial number of the weapon engagement.
Definition WsfRIPRProcessor.hpp:198
double mTimeWeaponLastHit
The time the last weapon hit.
Definition WsfRIPRProcessor.hpp:272
double mTimeWeaponLastTerminated
The simulation time when of the most recent weapon termination event for this task.
Definition WsfRIPRProcessor.hpp:254
int mRoundsHit
The number of weapons that hit.
Definition WsfRIPRProcessor.hpp:269
int mRoundsMissed
The number of weapons that missed.
Definition WsfRIPRProcessor.hpp:275
size_t mAssigneeIndex
The platform index of containing the weapon system.
Definition WsfRIPRProcessor.hpp:242
int mRoundsActive
The number of weapons that are active (in flight).
Definition WsfRIPRProcessor.hpp:266
int mTotalRoundsFired
The total number of weapons that have been fired for this task.
Definition WsfRIPRProcessor.hpp:260
int mTotalSalvosFired
The number of salvos that have been fired.
Definition WsfRIPRProcessor.hpp:257
double mTimeWeaponLastFired
The simulation time when of the most recent weapon firing event for this task.
Definition WsfRIPRProcessor.hpp:251
size_t mTargetIndex
The platform index of the target.
Definition WsfRIPRProcessor.hpp:248
WeaponStatus(const WsfTrackId &aTrackId, size_t aAssigneeIndex, WsfStringId aWeaponSystemName)
Definition WsfRIPRProcessor.hpp:220
int mRoundsPending
The number of weapons that are pending (requested but not yet in flight).
Definition WsfRIPRProcessor.hpp:263
double mTimeWeaponLastMissed
The time the last weapon missed.
Definition WsfRIPRProcessor.hpp:278
WsfStringId mWeaponSystemName
The string ID of the name of the weapon system.
Definition WsfRIPRProcessor.hpp:245
WsfTrackId mTrackId
The track ID.
Definition WsfRIPRProcessor.hpp:239