WSF
WsfGroup.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFGROUP_HPP
13#define WSFGROUP_HPP
14
15#include "wsf_export.h"
16
17#include <string>
18#include <vector>
19
20class UtInput;
21#include "UtReferenceTracked.hpp"
22class UtScriptClass;
23class UtScriptTypes;
24#include "WsfAuxDataEnabled.hpp"
25#include "WsfObject.hpp"
26#include "WsfStringId.hpp"
27
30{
31public:
32 using GroupPair = std::pair<size_t, unsigned int>;
33 using MemberList = std::vector<GroupPair>;
34
35 WsfGroup() = default;
36 WsfGroup(WsfStringId aNameId);
37 WsfGroup& operator=(const WsfGroup&) = delete;
38 ~WsfGroup() override;
39
40 WsfGroup* Clone() const override;
41
42 const char* GetScriptClassName() const override;
43
44 static UtScriptClass* CreateScriptClass(const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
45
46 MemberList::iterator Find(size_t aPlatformIndex, unsigned int aPlatformPartId);
47
48 virtual void Initialize();
49
50 bool IsGroupMember(size_t aPlatformIndex, unsigned int aPlatformPartId = 0);
51
52 void JoinGroup(size_t aPlatformIndex, unsigned int aPlatformPartId = 0);
53
54 void LeaveGroup(size_t aPlatformIndex, unsigned int aPlatformPartId = 0);
55
56 MemberList& GetMembers() { return mMembers; }
57 const MemberList& GetMembers() const { return mMembers; }
58
59 bool ProcessInput(UtInput& aInput) override;
60
61protected:
62 WsfGroup(const WsfGroup& aSrc) = default;
63
64private:
65 MemberList mMembers;
66};
67
68#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfAuxDataEnabled()=default
bool IsGroupMember(size_t aPlatformIndex, unsigned int aPlatformPartId=0)
determine if the given platform or platform part is a member of the group
Definition WsfGroup.cpp:81
MemberList::iterator Find(size_t aPlatformIndex, unsigned int aPlatformPartId)
Find a member of this group.
Definition WsfGroup.cpp:66
void JoinGroup(size_t aPlatformIndex, unsigned int aPlatformPartId=0)
Add a new member to this group.
Definition WsfGroup.cpp:45
WsfGroup & operator=(const WsfGroup &)=delete
void LeaveGroup(size_t aPlatformIndex, unsigned int aPlatformPartId=0)
Remove a member of this group.
Definition WsfGroup.cpp:55
static UtScriptClass * CreateScriptClass(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
MemberList & GetMembers()
Definition WsfGroup.hpp:56
virtual void Initialize()
virtual
Definition WsfGroup.cpp:34
const MemberList & GetMembers() const
Definition WsfGroup.hpp:57
std::pair< size_t, unsigned int > GroupPair
Definition WsfGroup.hpp:32
std::vector< GroupPair > MemberList
Definition WsfGroup.hpp:33
WsfGroup(const WsfGroup &aSrc)=default
WsfGroup()=default
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
virtual WsfObject * Clone() const =0
virtual bool ProcessInput(UtInput &aInput)
Definition WsfObject.cpp:140
const char * GetScriptClassName() const override
Definition WsfObject.cpp:115
Copyrights Multiple, All Rights Reserved