WSF
WsfScriptTrackListClass.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 WSFSCRIPTTRACKLISTCLASS_HPP
13#define WSFSCRIPTTRACKLISTCLASS_HPP
14
15#include "wsf_export.h"
16
17#include "UtScriptBasicTypes.hpp"
18class WsfTrack;
19#include "WsfTrackListFwd.hpp"
20
23
24class WSF_EXPORT WsfScriptTrackListClass : public UtScriptClass
25{
26public:
27 WsfScriptTrackListClass(const std::string& aClassName, UtScriptTypes* aTypesPtr);
28
29 ~WsfScriptTrackListClass() override;
30
31 // See the base class for a description of Create, Clone, and Destroy.
32
33 void* Create(const UtScriptContext& aInstance) override;
34 void* Clone(void* aObjectPtr) override;
35 void Destroy(void* aObjectPtr) override;
36 int EnumerateSize(void* aObjectPtr) override;
37 UtScriptData Enumerate(void* aObjectPtr, int aIndex) override;
38
39 // Each of the exported methods are defined as function objects.
40
46};
47
48class WSF_EXPORT WsfScriptTrackListIteratorClass : public UtScriptClass
49{
50public:
51 WsfScriptTrackListIteratorClass(const std::string& aClassName, UtScriptTypes* aTypesPtr);
53
54 void Destroy(void* aObjectPtr) override;
55
62
65 {
66 public:
67 Iterator(const WsfTrackList& aTrackList);
68 virtual ~Iterator();
69
70 virtual bool HasNext();
71 virtual WsfTrack* Next();
72
73 virtual bool HasPrev();
74 virtual WsfTrack* Prev();
75
76 virtual int Key() const;
77 virtual WsfTrack* Data() const;
78
79 bool IteratorValidForAccess() const;
80 std::string IteratorErrorString() const;
81
82 private:
83 const WsfTrackList& mTrackListRef;
84 int mCurrentKey;
85 int mVectorSize;
86 };
87};
88
89#endif
ut::script::Data UtScriptData
Definition WsfScriptContext.hpp:47
WsfTrackListT< WsfTrack > WsfTrackList
Definition WsfTrackList.hpp:88
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
void Destroy(void *aObjectPtr) override
Definition WsfScriptTrackListClass.cpp:58
int EnumerateSize(void *aObjectPtr) override
Definition WsfScriptTrackListClass.cpp:63
UtScriptData Enumerate(void *aObjectPtr, int aIndex) override
Definition WsfScriptTrackListClass.cpp:69
void * Clone(void *aObjectPtr) override
Definition WsfScriptTrackListClass.cpp:52
WsfScriptTrackListClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfScriptTrackListClass.cpp:18
void * Create(const UtScriptContext &aInstance) override
Definition WsfScriptTrackListClass.cpp:46
UT_DECLARE_SCRIPT_METHOD(GetIterator)
bool IteratorValidForAccess() const
Definition WsfScriptTrackListClass.cpp:252
virtual WsfTrack * Data() const
Definition WsfScriptTrackListClass.cpp:246
virtual WsfTrack * Next()
Definition WsfScriptTrackListClass.cpp:212
std::string IteratorErrorString() const
Definition WsfScriptTrackListClass.cpp:258
virtual bool HasNext()
Definition WsfScriptTrackListClass.cpp:206
virtual bool HasPrev()
Definition WsfScriptTrackListClass.cpp:223
virtual int Key() const
Definition WsfScriptTrackListClass.cpp:240
virtual WsfTrack * Prev()
Definition WsfScriptTrackListClass.cpp:229
Iterator(const WsfTrackList &aTrackList)
Definition WsfScriptTrackListClass.cpp:195
WsfScriptTrackListIteratorClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfScriptTrackListClass.cpp:129
void Destroy(void *aObjectPtr) override
Definition WsfScriptTrackListClass.cpp:146
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Copyrights Multiple, All Rights Reserved