NavDataFactory.hpp
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // This file is part of GNSSTk, the ARL:UT GNSS Toolkit.
4 //
5 // The GNSSTk is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 3.0 of the License, or
8 // any later version.
9 //
10 // The GNSSTk is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with GNSSTk; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18 //
19 // This software was developed by Applied Research Laboratories at the
20 // University of Texas at Austin.
21 // Copyright 2004-2022, The Board of Regents of The University of Texas System
22 //
23 //==============================================================================
24 
25 
26 //==============================================================================
27 //
28 // This software was developed by Applied Research Laboratories at the
29 // University of Texas at Austin, under contract to an agency or agencies
30 // within the U.S. Department of Defense. The U.S. Government retains all
31 // rights to use, duplicate, distribute, disclose, or release this software.
32 //
33 // Pursuant to DoD Directive 523024
34 //
35 // DISTRIBUTION STATEMENT A: This software has been approved for public
36 // release, distribution is unlimited.
37 //
38 //==============================================================================
39 #ifndef GNSSTK_NAVDATAFACTORY_HPP
40 #define GNSSTK_NAVDATAFACTORY_HPP
41 
42 #include <memory>
43 #include <map>
44 #include "NavSignalID.hpp"
45 #include "CommonTime.hpp"
46 #include "NavData.hpp"
47 #include "NavValidityType.hpp"
48 #include "NavMessageID.hpp"
49 #include "NavSearchOrder.hpp"
50 #include "SVHealth.hpp"
51 #include "FactoryControl.hpp"
52 
53 namespace gnsstk
54 {
56 
57 
61  {
62  public:
68  {}
69 
71  virtual ~NavDataFactory()
72  {
73  }
74 
76  virtual std::string getClassName() const;
77 
92  virtual bool find(const NavMessageID& nmid, const CommonTime& when,
93  NavDataPtr& navOut, SVHealth xmitHealth,
95 
115  virtual bool getOffset(TimeSystem fromSys, TimeSystem toSys,
116  const CommonTime& when, NavDataPtr& offset,
117  SVHealth xmitHealth = SVHealth::Any,
119 
125  { navValidity = nvt; }
126 
139  virtual void setTypeFilter(const NavMessageTypeSet& nmts)
140  { procNavTypes = nmts; }
141 
149  { return procNavTypes; }
150 
155  virtual void clearTypeFilter()
156  { procNavTypes.clear(); }
157 
163  virtual void addTypeFilter(NavMessageType nmt)
164  { procNavTypes.insert(nmt); }
165 
175  virtual bool addDataSource(const std::string& source) = 0;
176 
181  virtual void dump(std::ostream& s, DumpDetail dl) const
182  {}
183 
189  virtual void edit(const CommonTime& fromTime, const CommonTime& toTime)
190  {}
191 
200  virtual void edit(const CommonTime& fromTime, const CommonTime& toTime,
201  const NavSatelliteID& satID)
202  {}
203 
211  virtual void edit(const CommonTime& fromTime, const CommonTime& toTime,
212  const NavSignalID& signal)
213  {}
214 
216  virtual void clear()
217  {}
218 
223  virtual CommonTime getInitialTime() const
224  { return CommonTime::END_OF_TIME; }
225 
230  virtual CommonTime getFinalTime() const
232 
245  virtual NavSatelliteIDSet getAvailableSats(const CommonTime& fromTime,
246  const CommonTime& toTime)
247  const = 0;
248 
263  const CommonTime& fromTime,
264  const CommonTime& toTime)
265  const = 0;
266 
279  virtual NavMessageIDSet getAvailableMsgs(const CommonTime& fromTime,
280  const CommonTime& toTime)
281  const = 0;
282 
296  std::set<SatID> getIndexSet(const CommonTime& fromTime,
297  const CommonTime& toTime) const;
298 
313  std::set<SatID> getIndexSet(NavMessageType nmt,
314  const CommonTime& fromTime,
315  const CommonTime& toTime) const;
316 
334  virtual bool isPresent(const NavMessageID& nmid,
335  const CommonTime& fromTime,
336  const CommonTime& toTime);
337 
359  virtual bool isTypePresent(NavMessageType nmt,
360  const NavSatelliteID& satID,
361  const CommonTime& fromTime,
362  const CommonTime& toTime)
363  { return isPresent(NavMessageID(satID,nmt),fromTime,toTime); }
364 
366  virtual std::string getFactoryFormats() const = 0;
367 
372  virtual void setControl(const FactoryControl& ctrl)
373  { factControl = ctrl; }
374 
380 
381  protected:
384 
391 
395  };
396 
398  typedef std::shared_ptr<NavDataFactory> NavDataFactoryPtr;
400  typedef std::multimap<NavSignalID, NavDataFactoryPtr> NavDataFactoryMap;
401 
403 
404 }
405 
406 #endif // GNSSTK_NAVDATAFACTORY_HPP
gnsstk::NavDataFactory::edit
virtual void edit(const CommonTime &fromTime, const CommonTime &toTime)
Definition: NavDataFactory.hpp:189
gnsstk::NavDataPtr
std::shared_ptr< NavData > NavDataPtr
Factories instantiate these in response to find() requests.
Definition: NavData.hpp:62
gnsstk::NavMessageTypeSet
std::set< NavMessageType > NavMessageTypeSet
Set of message types, used by NavLibrary and NavDataFactory.
Definition: NavMessageType.hpp:76
gnsstk::NavMessageID
Class used to identify/categorize navigation message data.
Definition: NavMessageID.hpp:52
gnsstk::NavDataFactory::getIndexSet
std::set< SatID > getIndexSet(const CommonTime &fromTime, const CommonTime &toTime) const
Definition: NavDataFactory.cpp:88
gnsstk::NavDataFactory::getFinalTime
virtual CommonTime getFinalTime() const
Definition: NavDataFactory.hpp:230
gnsstk::NavDataFactory::setControl
virtual void setControl(const FactoryControl &ctrl)
Definition: NavDataFactory.hpp:372
gnsstk::NavDataFactory::clear
virtual void clear()
Remove all data from the factory.
Definition: NavDataFactory.hpp:216
gnsstk::NavDataFactory::edit
virtual void edit(const CommonTime &fromTime, const CommonTime &toTime, const NavSatelliteID &satID)
Definition: NavDataFactory.hpp:200
gnsstk::NavDataFactory::factControl
FactoryControl factControl
Configuration for the behavior of this factory.
Definition: NavDataFactory.hpp:383
SVHealth.hpp
gnsstk::NavSatelliteID
Definition: NavSatelliteID.hpp:57
gnsstk::allNavMessageTypes
const GNSSTK_EXPORT NavMessageTypeSet allNavMessageTypes
Definition: NavStatic.cpp:64
gnsstk::NavSatelliteIDSet
std::set< NavSatelliteID > NavSatelliteIDSet
Definition: NavSatelliteID.hpp:174
gnsstk::CarrierBand::Any
@ Any
Used to match any carrier band.
gnsstk::NavDataFactory::isTypePresent
virtual bool isTypePresent(NavMessageType nmt, const NavSatelliteID &satID, const CommonTime &fromTime, const CommonTime &toTime)
Definition: NavDataFactory.hpp:359
gnsstk::NavDataFactory::getAvailableMsgs
virtual NavMessageIDSet getAvailableMsgs(const CommonTime &fromTime, const CommonTime &toTime) const =0
gnsstk::CommonTime::BEGINNING_OF_TIME
static const GNSSTK_EXPORT CommonTime BEGINNING_OF_TIME
earliest representable CommonTime
Definition: CommonTime.hpp:102
gnsstk::SVHealth
SVHealth
Identify different types of SV health states.
Definition: SVHealth.hpp:52
gnsstk::NavValidityType
NavValidityType
Definition: NavValidityType.hpp:53
gnsstk::NavSearchOrder
NavSearchOrder
Specify the behavior of nav data searches in NavLibrary/NavDataFactory.
Definition: NavSearchOrder.hpp:51
gnsstk::NavDataFactory::getClassName
virtual std::string getClassName() const
Returns the fully-qualified class name. Used for debugging.
Definition: NavDataFactory.cpp:117
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::NavDataFactoryPtr
std::shared_ptr< NavDataFactory > NavDataFactoryPtr
Managed pointer to NavDataFactory.
Definition: NavDataFactory.hpp:398
gnsstk::SVHealth::Any
@ Any
Use in searches when you don't care about the SV health.
gnsstk::CommonTime::END_OF_TIME
static const GNSSTK_EXPORT CommonTime END_OF_TIME
latest representable CommonTime
Definition: CommonTime.hpp:104
gnsstk::NavDataFactoryMap
std::multimap< NavSignalID, NavDataFactoryPtr > NavDataFactoryMap
Map signal to a factory.
Definition: NavDataFactory.hpp:400
gnsstk::NavDataFactory::getOffset
virtual bool getOffset(TimeSystem fromSys, TimeSystem toSys, const CommonTime &when, NavDataPtr &offset, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)=0
NavMessageID.hpp
gnsstk::NavDataFactory::edit
virtual void edit(const CommonTime &fromTime, const CommonTime &toTime, const NavSignalID &signal)
Definition: NavDataFactory.hpp:211
gnsstk::NavDataFactory::getAvailableSats
virtual NavSatelliteIDSet getAvailableSats(const CommonTime &fromTime, const CommonTime &toTime) const =0
gnsstk::NavDataFactory::navValidity
NavValidityType navValidity
Definition: NavDataFactory.hpp:390
gnsstk::NavValidityType::ValidOnly
@ ValidOnly
Only load/find nav messages that pass validity checks.
NavData.hpp
FactoryControl.hpp
gnsstk::NavDataFactory::~NavDataFactory
virtual ~NavDataFactory()
Clean up.
Definition: NavDataFactory.hpp:71
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::FactoryControl
Definition: FactoryControl.hpp:52
NavValidityType.hpp
gnsstk::TimeSystem
TimeSystem
Definition of various time systems.
Definition: TimeSystem.hpp:51
gnsstk::NavDataFactory::NavDataFactory
NavDataFactory()
Definition: NavDataFactory.hpp:65
gnsstk::NavDataFactory::addTypeFilter
virtual void addTypeFilter(NavMessageType nmt)
Definition: NavDataFactory.hpp:163
example6.valid
valid
Definition: example6.py:20
gnsstk::NavDataFactory::setValidityFilter
virtual void setValidityFilter(NavValidityType nvt)
Definition: NavDataFactory.hpp:124
gnsstk::NavSignalID
Class used to identify navigation data signal types.
Definition: NavSignalID.hpp:54
gnsstk::DumpDetail
DumpDetail
Specify level of detail for dump output.
Definition: DumpDetail.hpp:51
gnsstk::NavDataFactory::find
virtual bool find(const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navOut, SVHealth xmitHealth, NavValidityType valid, NavSearchOrder order)=0
CommonTime.hpp
gnsstk::NavMessageType
NavMessageType
Identify different types of navigation message data.
Definition: NavMessageType.hpp:59
gnsstk::NavDataFactory::dump
virtual void dump(std::ostream &s, DumpDetail dl) const
Definition: NavDataFactory.hpp:181
NavSearchOrder.hpp
gnsstk::NavDataFactory
Definition: NavDataFactory.hpp:60
gnsstk::NavDataFactory::clearTypeFilter
virtual void clearTypeFilter()
Definition: NavDataFactory.hpp:155
gnsstk::NavDataFactory::supportedSignals
NavSignalSet supportedSignals
Definition: NavDataFactory.hpp:379
gnsstk::NavSignalSet
std::set< NavSignalID > NavSignalSet
Set of nav data signal identifiers.
Definition: NavSignalID.hpp:107
gnsstk::NavDataFactory::getInitialTime
virtual CommonTime getInitialTime() const
Definition: NavDataFactory.hpp:223
gnsstk::NavDataFactory::isPresent
virtual bool isPresent(const NavMessageID &nmid, const CommonTime &fromTime, const CommonTime &toTime)
Definition: NavDataFactory.cpp:49
gnsstk::NavDataFactory::procNavTypes
NavMessageTypeSet procNavTypes
Definition: NavDataFactory.hpp:394
gnsstk::NavDataFactory::getTypeFilter
NavMessageTypeSet getTypeFilter() const
Definition: NavDataFactory.hpp:148
gnsstk::NavMessageIDSet
std::set< NavMessageID > NavMessageIDSet
Definition: NavMessageID.hpp:101
NavSignalID.hpp
gnsstk::NavDataFactory::setTypeFilter
virtual void setTypeFilter(const NavMessageTypeSet &nmts)
Definition: NavDataFactory.hpp:139
gnsstk::NavDataFactory::addDataSource
virtual bool addDataSource(const std::string &source)=0
gnsstk::NavDataFactory::getFactoryFormats
virtual std::string getFactoryFormats() const =0
Return a comma-separated list of formats supported by this factory.


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:40