100 lines
1.9 KiB
C++
Executable File
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;
|
|
|
|
};
|
|
|
|
}
|