VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
aisDataServiceInterface.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include "vrfcore/vrfcoreDefines.h"
13 
14 #include <unordered_map>
15 #include <map>
16 #include <memory>
17 #include <set>
18 
19 class DtVertexList;
20 class DtAisTrack;
21 class DtPathPoint;
22 
23 
29 {
30 
31 public:
32 
33  using DtMmsi = int;
34  using DtMmsiSet = std::set<DtMmsi>;
35  using DtPathPoints = std::map<double, DtPathPoint>;
36  using DtPathPointIter = std::map<double, DtPathPoint>::const_iterator;
37 
41  {
42  public:
43  using Ptr = std::shared_ptr<DtAisDataJob>;
44  using WeakPtr = std::weak_ptr<DtAisDataJob>;
45 
46  DtAisDataJob() { };
47  virtual ~DtAisDataJob() { };
48 
50  virtual bool complete() const = 0;
51 
53  virtual void tick() = 0;
54 
56  virtual bool success() const = 0;
57 
59  virtual void cancel() = 0;
60 
62  virtual const DtAisDataServiceInterface::DtMmsiSet& tracks() const = 0;
63  };
64 
66 
68 
70  virtual bool isDataLoaded() const = 0;
71 
74  virtual DtAisDataJob::Ptr findTracksInArea(const DtVertexList& areaVertices,
75  bool unownedOnly = true) = 0;
76 
79  virtual DtAisDataJob::Ptr findTracksInAreaDuringTime(const DtVertexList & areaVertices,
80  double startSimTime, double endSimTime, bool unownedOnly) = 0;
81 
84  virtual const DtAisTrack* trackInfo(DtMmsi trackId) const = 0;
85 
87  virtual DtAisDataJob::Ptr requestOwnershipOfTracks(const DtMmsiSet& trackIds) = 0;
88 
90  virtual DtAisDataJob::Ptr releaseOwnershipOfTracks(const DtMmsiSet& trackIds) = 0;
91 
94  virtual double aisTimeFromSimTime(double simTime) const = 0;
95 
98  virtual double simTimeFromAisTime(double aisTime) const = 0;
99 
101  virtual double finalDataSimTime() const = 0;
102 
107  virtual bool getFirstPointAfterTime(const DtAisTrack& track, double simTime,
108  DtPathPointIter& pathPointIter) const = 0;
109 
114  virtual bool getLastPointBeforeTime(const DtAisTrack& track, double simTime,
115  DtPathPointIter& pathPointIter) const = 0;
116 
118  virtual DtPathPointIter getEndOfpath(const DtAisTrack& track) const = 0;
119 
122  virtual void resetData() = 0;
123 
125  virtual void clearData() = 0;
126 
127 private:
128 
131 
134 };
Abstract interface class to the AIS data service. This service provides access to Automatic Identific...
Definition: aisDataServiceInterface.h:28
virtual ~DtAisDataJob()
Definition: aisDataServiceInterface.h:47
typedef int(ZCALLBACK *close_file_func) OF((voidpf opaque
std::map< double, DtAdsb::DtPathPoint >::const_iterator DtPathPointIter
Definition: adsbDataManager.h:34
This class hold ship data that is obtained from AIS messages. It is generated initially by the proces...
Definition: aisTrack.h:24
DtAisDataJob()
Definition: aisDataServiceInterface.h:46
std::set< DtMmsi > DtMmsiSet
Definition: aisDataServiceInterface.h:34
Definition: asyncJobServer.h:37
std::shared_ptr< DtAisDataJob > Ptr
Definition: aisDataServiceInterface.h:43
class DtVertexList:
Definition: vertexList.h:22
Class definition for one track created from AIS messages, i.e. the identifying information and time-s...
Definition: aisTrack.h:60
Base class for all AIS data jobs. Provides an interface for getting the status of an ongoing job...
Definition: aisDataServiceInterface.h:40
std::map< double, DtPathPoint > DtPathPoints
Definition: aisDataServiceInterface.h:35
std::weak_ptr< DtAisDataJob > WeakPtr
Definition: aisDataServiceInterface.h:44
std::map< double, DtPathPoint >::const_iterator DtPathPointIter
Definition: aisDataServiceInterface.h:36
DtAisDataServiceInterface()
Definition: aisDataServiceInterface.h:65
virtual ~DtAisDataServiceInterface()
Definition: aisDataServiceInterface.h:67
#define DT_DLL_vrfcore
This file is used to determine how to build.
Definition: vrfcoreDefines.h:25

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)