#ifndef GERMANAIRLINESVA_FILE_RECORDINGENTRY_H #define GERMANAIRLINESVA_FILE_RECORDINGENTRY_H #include #include #include #include "geodata.hpp" #include "helpers.hpp" namespace germanairlinesva { namespace file { namespace recording { /* * Path Segment (24) * UINT32 | UINT16 | UINT16 | POINT * -------+----------+-------------+------------ * TIME | ALTITUDE | GROUNDSPEED | COORDINATES */ class RecordingEntry { private: std::uint32_t time; std::uint16_t altitude = 0; std::uint16_t groundSpeed = 0; struct geodata::point coordinates { NAN, NAN }; public: RecordingEntry() = default; RecordingEntry(std::uint32_t time, std::uint16_t altitude, std::uint16_t groundSpeed, struct geodata::point coordinates); void toFile(std::ofstream &out) const; friend inline bool operator==(const RecordingEntry &lhs, const RecordingEntry &rhs) { return lhs.altitude == rhs.altitude && lhs.groundSpeed == rhs.groundSpeed && lhs.coordinates.latitude == rhs.coordinates.latitude && lhs.coordinates.longitude == rhs.coordinates.longitude; } friend inline bool operator!=(const RecordingEntry &lhs, const RecordingEntry &rhs) { return !(lhs == rhs); } }; } // namespace recording } // namespace file } // namespace germanairlinesva #endif