WSF
WsfSignature.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 WSFSIGNATURE_HPP
13#define WSFSIGNATURE_HPP
14
15#include "wsf_export.h"
16
17#include <algorithm>
18#include <iterator>
19
20class UtInput;
21#include "WsfObject.hpp"
22class WsfPlatform;
23
29{
30public:
32 WsfSignature(const WsfSignature& aSrc);
34 ~WsfSignature() override = default;
35
36 virtual bool InitializeType();
37
38 virtual bool Initialize(double aSimTime, WsfPlatform* aPlatformPtr);
39
40 virtual bool IsA_ValidState(WsfStringId aId) const;
41
43 virtual std::vector<WsfStringId> GetStateNames() const { return {"default"}; }
44
45 bool ProcessInput(UtInput& aInput) override;
46
48 bool RequiresPlatform() const { return mRequiresPlatform; }
49
50protected:
52 double mBaseTime;
53 bool mRequiresPlatform{false};
54
57 template<class SignatureState, WsfStringId SignatureState::*IdMember, typename Iterator>
58 static std::vector<WsfStringId> GetStateNamesP(Iterator aBegin, Iterator aEnd)
59 {
60 std::vector<WsfStringId> names;
61 std::transform(aBegin, aEnd, std::back_inserter(names), [](const SignatureState& state) { return state.*IdMember; });
62 return names;
63 }
64};
65
66#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
virtual bool ProcessInput(UtInput &aInput)
Definition WsfObject.cpp:140
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
bool RequiresPlatform() const
indicates that a signature can be queried without a valid mPlatform
Definition WsfSignature.hpp:48
virtual bool Initialize(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfSignature.cpp:51
WsfPlatform * mPlatformPtr
Definition WsfSignature.hpp:51
WsfSignature()
Definition WsfSignature.cpp:19
double mBaseTime
Definition WsfSignature.hpp:52
virtual bool InitializeType()
Definition WsfSignature.cpp:40
virtual std::vector< WsfStringId > GetStateNames() const
get the list of all valid states belonging to the signature
Definition WsfSignature.hpp:43
bool mRequiresPlatform
Definition WsfSignature.hpp:53
~WsfSignature() override=default
static std::vector< WsfStringId > GetStateNamesP(Iterator aBegin, Iterator aEnd)
Definition WsfSignature.hpp:58
WsfSignature & operator=(const WsfSignature &)=delete
virtual bool IsA_ValidState(WsfStringId aId) const
Definition WsfSignature.cpp:62
Copyrights Multiple, All Rights Reserved