24#include "AstUtil/RunTime.hpp"
29#define AST_DEFAULT_FILE_LEAPSECOND "Time/Leap_Second.dat"
30#define AST_DEFAULT_FILE_JPLDE "SolarSystem/plneph.430"
31#define AST_DEFAULT_FILE_EOP "SolarSystem/Earth/EOP-All.txt"
32#define AST_DEFAULT_FILE_SPACEWEATHER "SolarSystem/Earth/SW-Last5Years.txt"
33#define AST_DEFAULT_FILE_IAUX "IERS-conventions/2010/tab5.2a.txt"
34#define AST_DEFAULT_FILE_IAUY "IERS-conventions/2010/tab5.2b.txt"
35#define AST_DEFAULT_FILE_IAUS "IERS-conventions/2010/tab5.2d.txt"
36#define AST_DEFAULT_FILE_IAUXYS_PRECOMPUTED "Test/ICRF/IAU2006_XYS.dat"
37#define AST_DEFAULT_DIR_SOLARSYSTEM "SolarSystem/"
51class IAUXYSPrecomputed;
54using StringVector = std::vector<std::string>;
59 std::string dataDir_{};
60 std::string leapSecondFile_{};
61 std::string jplDeFile_{};
62 std::string eopFile_{};
63 std::string spaceWeatherFile_{};
64 std::string iauxFile_{};
65 std::string iauyFile_{};
66 std::string iausFile_{};
67 std::string iauXYSPrecomputedFile_{};
68 std::string solarSystemDir_{};
69 StringVector spkFiles_{};
75AST_CORE_CAPI
void aGetInitalizeConfig(InitalizeConfig& config);
78AST_CORE_CAPI errc_t aInitialize();
81AST_CORE_CAPI errc_t aInitializeByConfig(StringView configfile);
84AST_CORE_CAPI errc_t aInitializeConfig(DataContext* context);
87AST_CORE_CAPI errc_t aUninitialize();
91AST_CORE_API std::string aGetDefaultSPKDir();
96AST_CORE_API std::string aDataDirGet();
101AST_CORE_CAPI errc_t aDataDirGet(std::string& datadir);
106AST_CORE_CAPI errc_t aDataDirSet(StringView dirpath);
112AST_CORE_CAPI GlobalContext* aGlobalContext_Get();
115AST_CORE_CAPI IAUXYS* aGlobalContext_GetIAUXYS();
124AST_CORE_CAPI DataContext* aDataContext_GetDefault();
130AST_CORE_CAPI DataContext* aDataContext_GetCurrent();
136AST_CORE_CAPI DataContext* aDataContext_EnsureCurrent();
139AST_CORE_CAPI
void aDataContext_SetCurrent(DataContext* context);
142AST_CORE_CAPI EOP* aDataContext_GetEOP();
145AST_CORE_CAPI SolarSystem* aDataContext_GetSolarSystem();
148AST_CORE_CAPI IAUXYSPrecomputed* aDataContext_GetIAUXYSPrecomputed();
153AST_CORE_CAPI StartupConfig* aDataContext_GetConfig();
156AST_CORE_CAPI DataContext* aDataContext_New();