Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
gnsstk::MultiFormatNavDataFactory Class Reference

Detailed Description

Define a class that allows you to use a single factory object that can read data from a variety of formats. The supported formats depend on what libraries you link against, as the libraries themselves add factories to the supported list at run-time. This class shares a lot of similarities with NavLibrary, but NavLibrary implements high-level routines such as getXvt(), while this class is set up to automatically include support for available factory types.

Note
This class is intended to support all known factory types implemented in libraries linked by the application, which is why factories and addFactory() are declared static. You still must instantiate this class in order to use it. Other methods, such as setValidityFilter() and setTypeFilter() are not declared static as they need to be implemented using polymorphism so that this class behaves correctly when used in conjunction with NavLibrary.
Warning
Overridden methods affect every instance of this class due to the static data.
Instantiating more than one of this class at any time will likely have unexpected results due to the shared (static) data stored internally. DON'T DO IT.

Definition at line 74 of file MultiFormatNavDataFactory.hpp.

#include <MultiFormatNavDataFactory.hpp>

Inheritance diagram for gnsstk::MultiFormatNavDataFactory:
Inheritance graph
[legend]

Public Member Functions

bool addDataSource (const std::string &source) override
 
void addTypeFilter (NavMessageType nmt) override
 
void clear () override
 Remove all data from the internal store. More...
 
void clearTypeFilter () override
 
size_t count (const NavMessageID &nmid) const override
 
size_t count (const SatID &satID, NavMessageType nmt=NavMessageType::Unknown) const override
 
size_t count (NavMessageType nmt) const override
 
size_t count (SatelliteSystem sys, NavMessageType nmt=NavMessageType::Unknown) const override
 
void dump (std::ostream &s, DumpDetail dl) const
 
void edit (const CommonTime &fromTime, const CommonTime &toTime) override
 
void edit (const CommonTime &fromTime, const CommonTime &toTime, const NavSatelliteID &satID) override
 
void edit (const CommonTime &fromTime, const CommonTime &toTime, const NavSignalID &signal) override
 
bool find (const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navOut, SVHealth xmitHealth, NavValidityType valid, NavSearchOrder order) override
 
NavMessageIDSet getAvailableMsgs (const CommonTime &fromTime, const CommonTime &toTime) const override
 
NavSatelliteIDSet getAvailableSats (const CommonTime &fromTime, const CommonTime &toTime) const override
 
NavSatelliteIDSet getAvailableSats (NavMessageType nmt, const CommonTime &fromTime, const CommonTime &toTime) const override
 
template<class Fact >
std::shared_ptr< Fact > getFactory ()
 
std::string getFactoryFormats () const override
 Return a comma-separated list of formats supported by the factories. More...
 
CommonTime getFinalTime () const override
 
CommonTime getInitialTime () const override
 
bool getOffset (TimeSystem fromSys, TimeSystem toSys, const CommonTime &when, NavDataPtr &offset, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly) override
 
bool isPresent (const NavMessageID &nmid, const CommonTime &fromTime, const CommonTime &toTime) override
 
 MultiFormatNavDataFactory ()
 Initialize supportedSignals from factories. More...
 
size_t numSatellites () const override
 Return the number of distinct signals including PRN, in factories. More...
 
size_t numSignals () const override
 Return the number of distinct signals (ignoring PRN) in factories. More...
 
bool process (const std::string &filename, NavDataFactoryCallback &cb) override
 
void setControl (const FactoryControl &ctrl) override
 
void setTypeFilter (const NavMessageTypeSet &nmts) override
 
void setValidityFilter (NavValidityType nvt) override
 
size_t size () const override
 Return the number of nav messages in all factories. More...
 
virtual ~MultiFormatNavDataFactory ()
 
- Public Member Functions inherited from gnsstk::NavDataFactoryWithStoreFile
bool addDataSource (const std::string &source) override
 
 NavDataFactoryWithStoreFile ()
 
virtual ~NavDataFactoryWithStoreFile ()
 Clean up. More...
 
- Public Member Functions inherited from gnsstk::NavDataFactoryWithStore
bool addNavData (const NavDataPtr &nd)
 
bool addNavData (const NavDataPtr &nd, NavMessageMap &navMap, NavNearMessageMap &navNearMap, OffsetCvtMap &ofsMap)
 
void clear () override
 Remove all data from the internal store. More...
 
void dump (std::ostream &s, DumpDetail dl) const override
 
void edit (const CommonTime &fromTime, const CommonTime &toTime) override
 
void edit (const CommonTime &fromTime, const CommonTime &toTime, const NavSatelliteID &satID) override
 
void edit (const CommonTime &fromTime, const CommonTime &toTime, const NavSignalID &signal) override
 
bool find (const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navOut, SVHealth xmitHealth, NavValidityType valid, NavSearchOrder order) override
 
NavMessageIDSet getAvailableMsgs (const CommonTime &fromTime, const CommonTime &toTime) const override
 
NavSatelliteIDSet getAvailableSats (const CommonTime &fromTime, const CommonTime &toTime) const override
 
NavSatelliteIDSet getAvailableSats (NavMessageType nmt, const CommonTime &fromTime, const CommonTime &toTime) const override
 
CommonTime getFinalTime () const override
 
CommonTime getFirstTime (const SatID &sat) const
 
std::set< SatIDgetIndexSet (const CommonTime &fromTime, const CommonTime &toTime) const
 
std::set< SatIDgetIndexSet (NavMessageType nmt, const CommonTime &fromTime, const CommonTime &toTime) const
 
CommonTime getInitialTime () const override
 
CommonTime getLastTime (const SatID &sat) const
 
const NavMapgetNavMap (const NavMessageID &nmid) const
 
const NavMessageMapgetNavMessageMap () const
 Get read-only access to the nav data map (User priority). More...
 
const NavNearMessageMapgetNavNearMessageMap () const
 Get read-only access to the nav data map (Nearest priority). More...
 
bool getOffset (TimeSystem fromSys, TimeSystem toSys, const CommonTime &when, NavDataPtr &offset, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly) override
 
const OffsetCvtMapgetTimeOffsetMap () const
 Get read-only access to the time offset map. More...
 
 NavDataFactoryWithStore ()
 Initialize internal data. More...
 
virtual ~NavDataFactoryWithStore ()
 Clean up. More...
 
- Public Member Functions inherited from gnsstk::NavDataFactory
virtual std::string getClassName () const
 Returns the fully-qualified class name. Used for debugging. More...
 
std::set< SatIDgetIndexSet (const CommonTime &fromTime, const CommonTime &toTime) const
 
std::set< SatIDgetIndexSet (NavMessageType nmt, const CommonTime &fromTime, const CommonTime &toTime) const
 
NavMessageTypeSet getTypeFilter () const
 
virtual bool isTypePresent (NavMessageType nmt, const NavSatelliteID &satID, const CommonTime &fromTime, const CommonTime &toTime)
 
 NavDataFactory ()
 
virtual ~NavDataFactory ()
 Clean up. More...
 

Static Public Member Functions

static bool addFactory (NavDataFactoryPtr &fact)
 

Static Protected Member Functions

static std::shared_ptr< NavDataFactoryMapfactories ()
 

Protected Attributes

std::shared_ptr< NavDataFactoryMapmyFactories
 
- Protected Attributes inherited from gnsstk::NavDataFactoryWithStore
NavMessageMap data
 Internal storage of navigation data for User searches. More...
 
CommonTime finalTime
 Store the latest applicable orbit time here, by addNavData. More...
 
std::map< SatID, std::pair< CommonTime, CommonTime > > firstLastMap
 Map subject satellite ID to time stamp pair (oldest,newest). More...
 
CommonTime initialTime
 Store the earliest applicable orbit time here, by addNavData. More...
 
NavNearMessageMap nearestData
 Internal storage of navigation data for Nearest searches. More...
 
OffsetCvtMap offsetData
 
- Protected Attributes inherited from gnsstk::NavDataFactory
FactoryControl factControl
 Configuration for the behavior of this factory. More...
 
NavValidityType navValidity
 
NavMessageTypeSet procNavTypes
 

Private Member Functions

bool loadIntoMap (const std::string &filename, NavMessageMap &navMap, NavNearMessageMap &navNearMap, OffsetCvtMap &ofsMap) override
 

Additional Inherited Members

- Public Types inherited from gnsstk::NavDataFactoryWithStore
typedef std::map< TimeCvtKey, OffsetEpochMapOffsetCvtMap
 Map from the time system conversion pair to the conversion objects. More...
 
typedef std::map< CommonTime, OffsetMapOffsetEpochMap
 
typedef std::map< NavSatelliteID, NavDataPtrOffsetMap
 
- Public Attributes inherited from gnsstk::NavDataFactory
NavSignalSet supportedSignals
 
- Protected Member Functions inherited from gnsstk::NavDataFactoryWithStore
virtual bool findNearest (const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navData, SVHealth xmitHealth, NavValidityType valid)
 
virtual bool findUser (const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navData, SVHealth xmitHealth, NavValidityType valid)
 
bool matchHealth (NavData *ndp, SVHealth xmitHealth)
 
bool updateInitialFinal (const CommonTime &begin, const CommonTime &end)
 
bool validityCheck (const NavDataPtr &ndp, NavValidityType valid, SVHealth xmitHealth, const CommonTime &when)
 
bool validityCheck (const NavMap::iterator &ti, NavMap &nm, NavValidityType valid, SVHealth xmitHealth, const CommonTime &when)
 

Constructor & Destructor Documentation

◆ MultiFormatNavDataFactory()

gnsstk::MultiFormatNavDataFactory::MultiFormatNavDataFactory ( )

Initialize supportedSignals from factories.

Definition at line 46 of file MultiFormatNavDataFactory.cpp.

◆ ~MultiFormatNavDataFactory()

gnsstk::MultiFormatNavDataFactory::~MultiFormatNavDataFactory ( )
virtual

Clear all associated factories so as to avoid surprises if you ever instantiate more than one MultiFormatNavDataFactory in a session.

Definition at line 59 of file MultiFormatNavDataFactory.cpp.

Member Function Documentation

◆ addDataSource()

bool gnsstk::MultiFormatNavDataFactory::addDataSource ( const std::string &  source)
overridevirtual

Method for loading data. This will iterate over the available factories, calling their load method until one succeeds, since failure typically indicates an invalid input.

Parameters
[in]sourceThe path of the file to load.
Returns
true on success, false if none of the available factories succeeded.

Implements gnsstk::NavDataFactory.

Definition at line 441 of file MultiFormatNavDataFactory.cpp.

◆ addFactory()

bool gnsstk::MultiFormatNavDataFactory::addFactory ( NavDataFactoryPtr fact)
static

Add a new factory to the library. The factory must be derived from NavDataFactoryWithStoreFile but not a MultiFormatNavDataFactory.

Parameters
[in]factThe NavDataFactory object to add to the library.
Returns
false if fact is not a valid factory class.

Definition at line 417 of file MultiFormatNavDataFactory.cpp.

◆ addTypeFilter()

void gnsstk::MultiFormatNavDataFactory::addTypeFilter ( NavMessageType  nmt)
overridevirtual

Add a NavMessageType to be processed to each of the factories. This should be used prior to loading data and as an alternate approach to setTypeFilter().

Parameters
[in]nmtThe NavMessageType to be processed on the next load.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 406 of file MultiFormatNavDataFactory.cpp.

◆ clear()

void gnsstk::MultiFormatNavDataFactory::clear ( )
overridevirtual

Remove all data from the internal store.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 142 of file MultiFormatNavDataFactory.cpp.

◆ clearTypeFilter()

void gnsstk::MultiFormatNavDataFactory::clearTypeFilter ( )
overridevirtual

Clear the type filters of each of the factories. This should be used prior to loading data, and prior to using addTypeFilter(), if that API is going to be used instead of setTypeFilter().

Reimplemented from gnsstk::NavDataFactory.

Definition at line 395 of file MultiFormatNavDataFactory.cpp.

◆ count() [1/4]

size_t gnsstk::MultiFormatNavDataFactory::count ( const NavMessageID nmid) const
overridevirtual

Return a count of messages matching the given NavMessageID.

Parameters
[in]nmidThe NavMessageID to match. Wildcards may be used. In addition to the standard wildcard support in SatID, ObsID and NavID, the signal field may be set to "Unknown" to be treated as a wildcard, as may the messageType field. The following code snippet represents a NavMessageID with all wildcards (which will match the results from the size() method).
NavMessageID key1(
NavSatelliteID(SatID(SatelliteSystem::Unknown),
NavID(NavType::Any)),
key1.sat.makeWild();
key1.xmitSat.makeWild();

The system field is initialized in the above constructor from the SatID system, which is why we're initializing it to "Unknown" (to make system a wildcard). But setting the SatID::system to Unknown doesn't make SatID a wildcard, that requires the SatID::makeWild() method calls.

Note
This method has a bit of overhead, though no more than find().

Reimplemented from gnsstk::NavDataFactoryWithStore.

Definition at line 298 of file MultiFormatNavDataFactory.cpp.

◆ count() [2/4]

size_t gnsstk::MultiFormatNavDataFactory::count ( const SatID satID,
NavMessageType  nmt = NavMessageType::Unknown 
) const
inlineoverridevirtual

Return a count of messages where the SUBJECT satellite ID matches the given SatID and message type.

Parameters
[in]satIDThe subject satellite ID to match.
[in]nmtThe NavMessageType to match (default Unknown=all).
Note
This method has a bit of overhead, though no more than find().

Reimplemented from gnsstk::NavDataFactoryWithStore.

Definition at line 242 of file MultiFormatNavDataFactory.hpp.

◆ count() [3/4]

size_t gnsstk::MultiFormatNavDataFactory::count ( NavMessageType  nmt) const
inlineoverridevirtual

Return a count of messages matching the given NavMessageType.

Note
This method has a bit of overhead, though no more than find().

Reimplemented from gnsstk::NavDataFactoryWithStore.

Definition at line 247 of file MultiFormatNavDataFactory.hpp.

◆ count() [4/4]

size_t gnsstk::MultiFormatNavDataFactory::count ( SatelliteSystem  sys,
NavMessageType  nmt = NavMessageType::Unknown 
) const
inlineoverridevirtual

Return a count of messages matching the given SatelliteSystem and NavMessageType.

Parameters
[in]sysThe SatelliteSystem to match when counting.
[in]nmtThe NavMessageType to match (default Unknown=all).
Note
This method has a bit of overhead, though no more than find().
Only NavSignalID::system is checked, if you need to explicitly check NavSatelliteID::SatID::system, use the count(constNavMessageID&).

Reimplemented from gnsstk::NavDataFactoryWithStore.

Definition at line 237 of file MultiFormatNavDataFactory.hpp.

◆ dump()

void gnsstk::MultiFormatNavDataFactory::dump ( std::ostream &  s,
DumpDetail  dl 
) const
virtual

Print the contents of all factories in a human-readable format.

Parameters
[in,out]sThe stream to write the data to.
[in]dlThe level of detail the output should contain.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 484 of file MultiFormatNavDataFactory.cpp.

◆ edit() [1/3]

void gnsstk::MultiFormatNavDataFactory::edit ( const CommonTime fromTime,
const CommonTime toTime 
)
overridevirtual

Remove all data from the internal storage in the time span [fromTime,toTime).

Parameters
[in]fromTimeThe earliest time to be removed.
[in]toTimeThe earliest time that will NOT be removed.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 110 of file MultiFormatNavDataFactory.cpp.

◆ edit() [2/3]

void gnsstk::MultiFormatNavDataFactory::edit ( const CommonTime fromTime,
const CommonTime toTime,
const NavSatelliteID satID 
)
overridevirtual

Remove data for a specific satellite signal from the internal storage in the time span [fromTime,toTime).

Parameters
[in]fromTimeThe earliest time to be removed.
[in]toTimeThe earliest time that will NOT be removed.
[in]satIDThe complete signal specification for the data to be removed (subject satellite, transmit satellite, system, carrier, code, nav).

Reimplemented from gnsstk::NavDataFactory.

Definition at line 120 of file MultiFormatNavDataFactory.cpp.

◆ edit() [3/3]

void gnsstk::MultiFormatNavDataFactory::edit ( const CommonTime fromTime,
const CommonTime toTime,
const NavSignalID signal 
)
overridevirtual

Remove data for all satellites matching a specific signal from the internal storage in the time span [fromTime,toTime).

Parameters
[in]fromTimeThe earliest time to be removed.
[in]toTimeThe earliest time that will NOT be removed.
[in]signalThe signal for the data to be removed (system, carrier, code, nav).

Reimplemented from gnsstk::NavDataFactory.

Definition at line 131 of file MultiFormatNavDataFactory.cpp.

◆ factories()

std::shared_ptr< NavDataFactoryMap > gnsstk::MultiFormatNavDataFactory::factories ( )
staticprotected

Known nav data factories, organized by signal to make searches simpler and/or quicker. Declared static so that other libraries can transparently add factories.

Definition at line 525 of file MultiFormatNavDataFactory.cpp.

◆ find()

bool gnsstk::MultiFormatNavDataFactory::find ( const NavMessageID nmid,
const CommonTime when,
NavDataPtr navOut,
SVHealth  xmitHealth,
NavValidityType  valid,
NavSearchOrder  order 
)
overridevirtual

Search the store of each factory in factories to find the navigation message that meets the specified criteria. The first successful match is returned.

Parameters
[in]nmidSpecify the message type, satellite and codes to match.
[in]whenThe time of interest to search for data.
[in]xmitHealthThe desired health status of the transmitting satellite.
[out]navOutThe resulting navigation message.
[in]validSpecify whether to search only for valid or invalid messages, or both.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
Returns
true if successful. If false, navData will be untouched.

Implements gnsstk::NavDataFactory.

Definition at line 66 of file MultiFormatNavDataFactory.cpp.

◆ getAvailableMsgs()

NavMessageIDSet gnsstk::MultiFormatNavDataFactory::getAvailableMsgs ( const CommonTime fromTime,
const CommonTime toTime 
) const
overridevirtual

Obtain a set of satellites+message types for which we have data in the given time span.

Parameters
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of NavMessageID objects for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Implements gnsstk::NavDataFactory.

Definition at line 246 of file MultiFormatNavDataFactory.cpp.

◆ getAvailableSats() [1/2]

NavSatelliteIDSet gnsstk::MultiFormatNavDataFactory::getAvailableSats ( const CommonTime fromTime,
const CommonTime toTime 
) const
overridevirtual

Obtain a set of satellites for which we have data in the given time span.

Parameters
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of satellites for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Implements gnsstk::NavDataFactory.

Definition at line 210 of file MultiFormatNavDataFactory.cpp.

◆ getAvailableSats() [2/2]

NavSatelliteIDSet gnsstk::MultiFormatNavDataFactory::getAvailableSats ( NavMessageType  nmt,
const CommonTime fromTime,
const CommonTime toTime 
) const
overridevirtual

Obtain a set of satellites for which we have data of a specific message type in the given time span.

Parameters
[in]nmtThe navigation message type you're looking for.
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of satellites for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Implements gnsstk::NavDataFactory.

Definition at line 227 of file MultiFormatNavDataFactory.cpp.

◆ getFactory()

template<class Fact >
std::shared_ptr< Fact > gnsstk::MultiFormatNavDataFactory::getFactory

Get the instance of a given factory type, specified by the template argument. This allows you to get a specific factory if for some reason you need to tweak its settings.

Definition at line 352 of file MultiFormatNavDataFactory.hpp.

◆ getFactoryFormats()

std::string gnsstk::MultiFormatNavDataFactory::getFactoryFormats ( ) const
overridevirtual

Return a comma-separated list of formats supported by the factories.

Implements gnsstk::NavDataFactory.

Definition at line 506 of file MultiFormatNavDataFactory.cpp.

◆ getFinalTime()

CommonTime gnsstk::MultiFormatNavDataFactory::getFinalTime ( ) const
overridevirtual

Determine the latest time for which this object can successfully determine the Xvt for any object.

Note
In the case that data from multiple systems is stored, the result may be in the UTC time system.
Returns
The initial time, or CommonTime::BEGINNING_OF_TIME if no data is available.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 181 of file MultiFormatNavDataFactory.cpp.

◆ getInitialTime()

CommonTime gnsstk::MultiFormatNavDataFactory::getInitialTime ( ) const
overridevirtual

Determine the earliest time for which this object can successfully determine the Xvt for any object.

Note
In the case that data from multiple systems is stored, the result may be in the UTC time system.
Returns
The initial time, or CommonTime::END_OF_TIME if no data is available.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 152 of file MultiFormatNavDataFactory.cpp.

◆ getOffset()

bool gnsstk::MultiFormatNavDataFactory::getOffset ( TimeSystem  fromSys,
TimeSystem  toSys,
const CommonTime when,
NavDataPtr offset,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly 
)
overridevirtual

Get the offset, in seconds, to apply to times when converting them from fromSys to toSys.

Precondition
If xmithHealth is set to anything other than "Any", ephemeris data must be loaded in order to obtain satellite health to match.
Parameters
[in]fromSysThe time system to convert from.
[in]toSysThe time system to convert to.
[in]whenThe time being converted, usually in the time system appropriate for a given nav message source. The details of what time system this should be in and any other restrictions will be documented in each leaf class, e.g. GPSLNavTimeOffset.
[out]offsetThe offset when converting fromSys->toSys where when(toSys)=when(fromSys)-offset.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
Returns
true if an offset is available, false if not.

Implements gnsstk::NavDataFactory.

Definition at line 93 of file MultiFormatNavDataFactory.cpp.

◆ isPresent()

bool gnsstk::MultiFormatNavDataFactory::isPresent ( const NavMessageID nmid,
const CommonTime fromTime,
const CommonTime toTime 
)
overridevirtual

Determine if a given message/satellite/signal is available in the factory.

Parameters
[in]nmidThe message/satellite/signal to search for.
[in]fromTimeThe earliest time for which a matching message should be available.
[in]toTimeThe latest time for which a matching message should be available.
Returns
true if the given satellite/signal is has data in the given time span.
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years).
This method iterates over the given time span until it finds a match. As such, it is strongly recommended that you not use BEGINNING_OF_TIME or END_OF_TIME, as it takes several minutes to iterate over that time span.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 264 of file MultiFormatNavDataFactory.cpp.

◆ loadIntoMap()

bool gnsstk::MultiFormatNavDataFactory::loadIntoMap ( const std::string &  filename,
NavMessageMap navMap,
NavNearMessageMap navNearMap,
OffsetCvtMap ofsMap 
)
inlineoverrideprivatevirtual

This method makes no sense in this context, because we don't want to load, e.g. RINEX and SP3 into the same NavMessageMap, because SP3's find method performs interpolation.

Implements gnsstk::NavDataFactoryWithStoreFile.

Definition at line 342 of file MultiFormatNavDataFactory.hpp.

◆ numSatellites()

size_t gnsstk::MultiFormatNavDataFactory::numSatellites ( ) const
overridevirtual

Return the number of distinct signals including PRN, in factories.

Reimplemented from gnsstk::NavDataFactoryWithStore.

Definition at line 342 of file MultiFormatNavDataFactory.cpp.

◆ numSignals()

size_t gnsstk::MultiFormatNavDataFactory::numSignals ( ) const
overridevirtual

Return the number of distinct signals (ignoring PRN) in factories.

Reimplemented from gnsstk::NavDataFactoryWithStore.

Definition at line 318 of file MultiFormatNavDataFactory.cpp.

◆ process()

bool gnsstk::MultiFormatNavDataFactory::process ( const std::string &  filename,
NavDataFactoryCallback cb 
)
overridevirtual

Process the data in the specified file using a custom callback. Each message decoded by the factory class will be run through NavDataFactoryCallback::process(). It is expected that the user will derive a class from NavDataFactoryCallback, implement the details of the process method to suit their use case, and apply it here.

Parameters
[in]filenameThe path of the file to process.
[in]cbThe call back to use to process the data in the file.
Returns
true on success, false on failure.

Implements gnsstk::NavDataFactoryWithStoreFile.

Definition at line 462 of file MultiFormatNavDataFactory.cpp.

◆ setControl()

void gnsstk::MultiFormatNavDataFactory::setControl ( const FactoryControl ctrl)
overridevirtual

Set the configuration parameters for this and any child NavDataFactory or PNBNavDataFactory objects.

Parameters
[in]ctrlThe configuration for the factory/factories.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 495 of file MultiFormatNavDataFactory.cpp.

◆ setTypeFilter()

void gnsstk::MultiFormatNavDataFactory::setTypeFilter ( const NavMessageTypeSet nmts)
overridevirtual

Indicate what nav message types the factories should be loading. This should be called before the factories acquire any data.

Warning
affects all factories in the static data.
You MUST include Health data in the type filter if you intend to look up data by health status other than "Any" (exceptions: if you're ONLY looking up orbit data that has self-contained health status).
Parameters
[in]nmtsThe set of nav message types to be processed by the factories.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 380 of file MultiFormatNavDataFactory.cpp.

◆ setValidityFilter()

void gnsstk::MultiFormatNavDataFactory::setValidityFilter ( NavValidityType  nvt)
overridevirtual

Set all the contained factories' handling of valid and invalid navigation data. This should be called before any find() calls.

Warning
affects all factories in the static data.
Parameters
[in]nvtThe new nav data loading filter method.

Reimplemented from gnsstk::NavDataFactory.

Definition at line 366 of file MultiFormatNavDataFactory.cpp.

◆ size()

size_t gnsstk::MultiFormatNavDataFactory::size ( ) const
overridevirtual

Return the number of nav messages in all factories.

Reimplemented from gnsstk::NavDataFactoryWithStore.

Definition at line 278 of file MultiFormatNavDataFactory.cpp.

Member Data Documentation

◆ myFactories

std::shared_ptr<NavDataFactoryMap> gnsstk::MultiFormatNavDataFactory::myFactories
protected

Keep a cached copy of the shared_ptr to the static NavDataFactoryMap so that windows doesn't destroy it before destroying this.

Definition at line 335 of file MultiFormatNavDataFactory.hpp.


The documentation for this class was generated from the following files:
gnsstk::CarrierBand::Any
@ Any
Used to match any carrier band.
gnsstk::NavType::Any
@ Any
Used to match any nav code.
gnsstk::ObservationType::Any
@ Any
Used to match any observation type.
gnsstk::NavMessageType::Unknown
@ Unknown
Message type is not known or is uninitialized.
gnsstk::SatelliteSystem::Unknown
@ Unknown
gnsstk::XmitAnt::Any
@ Any
When making comparisons in ObsID, matches any enumeration.
gnsstk::TrackingCode::Any
@ Any
Used to match any tracking code.


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