Files
qt5-legatus-legacy/Lts/Services/CentralEffectSimulation/Plugins/GeoPairing/GeoPairingImpl/GeoPairingImplAirTargetCache.hpp
T
2026-08-13 18:33:10 +02:00

100 lines
1.9 KiB
C++
Executable File

// **************************************************************************
//
// (C) Copyright 2009 Swiss SIMTEC AG
//
// **************************************************************************
//
// $HeadURL$
// $LastChangedBy$
// $LastChangedDate$
// $LastChangedRevision$
//
// **************************************************************************
#pragma once
#include <GBL_Global/Types.hpp>
#include "../logger.h"
#include <map>
// forward declarations from stereotyped includes
namespace N_GeoPairingImpl
{
struct GeoPairingImplAirTargetCacheData;
}
// manual class imports
namespace N_GeoPairingImpl
{
using CacheDataType = std::map<SInt32, GeoPairingImplAirTargetCacheData *>;
using CacheType = std::map<SInt32, CacheDataType *>;
/**
* 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;
};
}