WSF
Ato.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 2019 Infoscitex, a DCS 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 ATO_HPP
13#define ATO_HPP
14
15#include "usmtf_export.h"
16
17#include <memory>
18
19#include "Comment.hpp"
20#include "InputBuilder.hpp"
21#include "MacroEnabled.hpp"
22#include "Message.hpp"
23#include "Platform.hpp"
24
25namespace usmtf
26{
34
35/* Programmer Commentary:
36 For our purposes the AIR TASKING ORDER (ATO) Message describes various entities used for AFSIM Scenario lay down.
37 Primarily its used to extract platforms, as thats the most concrete entity. A zone is present for area of interest as
38 well. Many of the data elements in an ATO do not fulfill all the requirements of its AFSIM entity counterpart, this
39 means that the user will have to fill in the missing data that is needed. This means that the ATO import primarily
40 serves to build a scaffolding for the user to fill in that missing data easily with the use of macros.
41
42 For examples see tests/message_examples/Ato.txt
43 Detailed Document:
44 ATO.UF.html
45*/
46class USMTF_EXPORT Ato : public Message, public MacroEnabled
47{
48public:
49 Ato(const std::string& aMTF, std::vector<std::unique_ptr<Set>>&& aSets) noexcept;
51 const Comment* GetHeader() const noexcept;
53 std::vector<const Platform*> GetPlatforms() const noexcept;
54
55private:
57 void BuildPlatformList() noexcept;
58 void BuildHeader() noexcept;
61 void ProcessTaskUnit(const Segment& taskUnitSegment);
62 std::unique_ptr<Comment> mComments;
63 std::vector<std::unique_ptr<Platform>> mPlatforms;
64};
65
67USMTF_EXPORT void ExportAto(const Ato& aAto, const std::string& aDirectory, const std::string& aFileName);
68} // namespace usmtf
69
70#endif
Definition Ato.hpp:47
Ato(const std::string &aMTF, std::vector< std::unique_ptr< Set > > &&aSets) noexcept
Definition Ato.cpp:23
const Comment * GetHeader() const noexcept
Comment section for useful data that will be places at the top of the export.
Definition Ato.cpp:49
std::vector< const Platform * > GetPlatforms() const noexcept
Platforms extracted from Message.
Definition Ato.cpp:38
Definition Comment.hpp:23
Definition MacroEnabled.hpp:27
Message(const std::string &aMTF, std::vector< std::unique_ptr< Set > > aSets) noexcept
Definition Message.cpp:22
Definition Segment.hpp:30
Definition Acmid.cpp:17
void ExportAto(const Ato &aAto, const std::string &aDirectory, const std::string &aFileName)
Exports the Ato to scenario lay down file indicated by the target InputBuilder.
Definition Ato.cpp:104
Copyrights Multiple, All Rights Reserved