88 void GetPositionHistory(std::vector<double>& latitudes, std::vector<double>& longitudes)
const;
94 return m_maxHistorySize;
104 static constexpr const char* ISS_API_URL =
"https://api.wheretheiss.at/v1/satellites/25544";
107 static constexpr size_t m_maxHistorySize = 100;
111 std::deque<ISSPosition> m_positionHistory;
112 mutable std::mutex m_dataMutex;
115 std::atomic<bool> m_tracking;
116 std::jthread m_trackingThread;
117 mutable std::mutex m_threadMutex;
120 std::function<void(
const ISSPosition&)> m_callback;
121 mutable std::mutex m_callbackMutex;
124 void TrackingLoop(
const std::stop_token& stopToken);
126 std::string FetchJSON(
const std::string& url);
127 ISSPosition ParseJSON(
const std::string& jsonResponse);