#ifndef FIFTYONE_DEGREES_ENGINE_DEVICE_DETECTION_HPP
#define FIFTYONE_DEGREES_ENGINE_DEVICE_DETECTION_HPP
#include <string>
#include <vector>
#include <map>
#include <stdexcept>
#include <stdlib.h>
#include <sstream>
#include <algorithm>
#include "common-cxx/EngineBase.hpp"
#include "common-cxx/RequiredPropertiesConfig.hpp"
#include "ConfigDeviceDetection.hpp"
#include "ResultsDeviceDetection.hpp"
#include "EvidenceDeviceDetection.hpp"
using namespace FiftyoneDegrees::Common;
namespace FiftyoneDegrees {
namespace DeviceDetection {
class EngineDeviceDetection : public EngineBase {
public:
static string defaultElementDataKey;
EngineDeviceDetection(
ConfigDeviceDetection *config,
RequiredPropertiesConfig *properties);
virtual ResultsDeviceDetection* processDeviceDetection(
EvidenceDeviceDetection *evidence) const = 0;
virtual ResultsDeviceDetection* processDeviceDetection(
const char *userAgent) const = 0;
virtual ResultsDeviceDetection* processDeviceDetection(
string &userAgent) const;
protected:
virtual void init(fiftyoneDegreesDataSetDeviceDetection *dataSet);
};
}
}
#endif