WSF
Segment.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#ifndef SEGMENT_HPP
12#define SEGMENT_HPP
13
14#include "usmtf_export.h"
15
16#include "Set.hpp"
17
18namespace usmtf
19{
29class USMTF_EXPORT Segment
30{
31public:
33 using SetPosition = size_t;
34 using SetLocation = std::pair<const Set&, SetPosition>;
35 using SetLocations = std::vector<SetLocation>;
36 explicit Segment(const SetLocations& aSets) noexcept;
37 const SetLocation GetSet(const std::string& aSTF) const;
38 const Set& GetSet(SetPosition aSetIndex) const;
39 std::vector<SetLocations> GetSubSegments(const std::string& aSTF) const;
40 SetLocations GetSubSegment(const SetPosition& startPosition, const SetPosition& stopPosition) const;
41 SetLocations GetSets(const std::string& aSTF) const noexcept;
42 size_t GetNumberOfSets() const noexcept;
43 bool HasSet(const std::string& aSTF) const;
45 SetLocations::const_iterator begin() const;
46 SetLocations::const_iterator end() const;
47
48private:
49 bool IsSetPositionOutOfBounds(const SetPosition& aPos) const noexcept;
50 const SetLocations mSets;
51};
52} // namespace usmtf
53
54#endif
std::vector< SetLocation > SetLocations
Definition Segment.hpp:35
SetLocations GetSets(const std::string &aSTF) const noexcept
Definition Segment.cpp:88
bool HasSet(const std::string &aSTF) const
Definition Segment.cpp:104
SetLocations::const_iterator begin() const
Iteration support.
Definition Segment.cpp:117
Segment(const SetLocations &aSets) noexcept
Definition Segment.cpp:20
size_t SetPosition
Location in file, useful for logging errors.
Definition Segment.hpp:33
SetLocations GetSubSegment(const SetPosition &startPosition, const SetPosition &stopPosition) const
Definition Segment.cpp:69
const SetLocation GetSet(const std::string &aSTF) const
Definition Segment.cpp:23
std::vector< SetLocations > GetSubSegments(const std::string &aSTF) const
Definition Segment.cpp:48
SetLocations::const_iterator end() const
Definition Segment.cpp:122
size_t GetNumberOfSets() const noexcept
Definition Segment.cpp:64
std::pair< const Set &, SetPosition > SetLocation
Definition Segment.hpp:34
Definition Set.hpp:54
Template specialization for wsf::comm::Address. Allows usage of Address in std::unordered_map/set.
Definition WsfCommAddress.hpp:185
Definition Acmid.cpp:17
Copyrights Multiple, All Rights Reserved