// ************************************************************************** // // (C) Copyright 2009 Swiss SIMTEC AG // // ************************************************************************** // // $HeadURL$ // $LastChangedBy$ // $LastChangedDate$ // $LastChangedRevision$ // // ************************************************************************** #pragma once #include #include "../logger.h" #include // forward declarations from stereotyped includes namespace N_GeoPairingImpl { struct GeoPairingImplAirTargetCacheData; } // manual class imports namespace N_GeoPairingImpl { using CacheDataType = std::map; using CacheType = std::map; /** * Cache accessor class * * @author Daniel.Schmid * @version 1.0 * @created 30-Aug-2012 14:29:16 */ class GeoPairingImplAirTargetCache { public: virtual ~GeoPairingImplAirTargetCache() = default; /** * Constructor * * @param a_player * @param a_cacheData */ GeoPairingImplAirTargetCache(SInt32 a_player, CacheType *a_cacheData); /** * retrieves the last cached tracking state * * @param a_targetID */ bool getLatestTrackState(SInt32 a_targetID) const; /** * retrieves the last cached tracking time * * @param a_targetID */ UInt32 getLatestTrackTime(SInt32 a_targetID) const; /** * store latest state * * @param a_targetID * @param a_trackingTime * @param a_trackingState */ bool storeLatestTrackState(SInt32 a_targetID, UInt32 a_trackingTime, bool a_trackingState); /** * get cache timeout */ UInt32 getCacheTimeout() const; private: CacheType *m_CacheData; SInt32 m_PlayerID; UInt32 m_Timeout; NGL::INGLLogger &m_logger; /** * * @param a_targetID */ GeoPairingImplAirTargetCacheData *getLatestCacheData(SInt32 a_targetID) const; }; }