// ************************************************************************** // // (C) Copyright 2009 Swiss SIMTEC AG // // ************************************************************************** // // $HeadURL$ // $LastChangedBy$ // $LastChangedDate$ // $LastChangedRevision$ // // ************************************************************************** #pragma once // from stereotyped includes #include "GeoPairingImplAirTargetCache.hpp" #include "GeoPairingImplMeteoData.hpp" #include "GeoPairingImplAirTargetTracker.hpp" #include "GeoPairingImplFiredBullet.hpp" #include "GeoPairingImplAirTarget.hpp" #include "GeoPairingImplSensorData.hpp" #include "GeoPairingImplAirTargetUpdater.hpp" #include #include namespace N_GeoPairingImpl { /** * This class is the base implementation of the GeoPairing component. A real * Implemtation must be derived from it. * * @author Daniel.Schmid * @version 1.0 * @created 29-Sep-2009 15:16:19 */ class GeoPairingImpl { public: GeoPairingImpl(const char *loggerName); virtual ~GeoPairingImpl() = default; /** * creates a new air target tracker */ GeoPairingImplAirTargetTracker *createAirTargetTracker(); /** * creates a new air target updater */ GeoPairingImplAirTargetUpdater *createAirTargetUpdater(); /** * creates a new air target cache * * @param a_playerID */ GeoPairingImplAirTargetCache *createAirTargetCache(UInt32 a_playerID); /** * Creates a new fired bulled according to the given SensorData * * @param a_sensorData */ virtual GeoPairingImplFiredBullet *createFiredBullet(GeoPairingImplSensorData &a_sensorData) = 0; /** * Pupulates a SensorData instance according to the given transparent datastream * * @param a_sensorData * @param a_transparendData * @param a_sizeOfTransparentData */ virtual SInt32 createSensorData(GeoPairingImplSensorData *a_sensorData, const QByteArray& a_transparendData, int &isDefault); /** * Initialize the GeoPairing implementation * * @param a_config */ virtual bool initialize(const QString &a_config) = 0; /** * Sets global meteo conditions * * @param a_meteoData */ void setMeteoData(const GeoPairingImplMeteoData &a_meteoData); protected: bool m_Initialized; std::vector m_ListAirTargets; GeoPairingImplMeteoData m_MeteoData; CacheType m_CacheData; NGL::INGLLogger &m_logger; }; }