51Degrees Device Detection C/C++  4.1

A device detection library that is used natively or by 51Degrees products

EngineDeviceDetection.hpp

1 /* *********************************************************************
2  * This Original Work is copyright of 51 Degrees Mobile Experts Limited.
3  * Copyright 2019 51 Degrees Mobile Experts Limited, 5 Charlotte Close,
4  * Caversham, Reading, Berkshire, United Kingdom RG4 7BY.
5  *
6  * This Original Work is licensed under the European Union Public Licence (EUPL)
7  * v.1.2 and is subject to its terms as set out below.
8  *
9  * If a copy of the EUPL was not distributed with this file, You can obtain
10  * one at https://opensource.org/licenses/EUPL-1.2.
11  *
12  * The 'Compatible Licences' set out in the Appendix to the EUPL (as may be
13  * amended by the European Commission) shall be deemed incompatible for
14  * the purposes of the Work and the provisions of the compatibility
15  * clause in Article 5 of the EUPL shall not apply.
16  *
17  * If using the Work as, or as part of, a network application, by
18  * including the attribution notice(s) required under Article 5 of the EUPL
19  * in the end user terms of the application under an appropriate heading,
20  * such notice(s) shall fulfill the requirements of that article.
21  * ********************************************************************* */
22 
23 #ifndef FIFTYONE_DEGREES_ENGINE_DEVICE_DETECTION_HPP
24 #define FIFTYONE_DEGREES_ENGINE_DEVICE_DETECTION_HPP
25 
26 #include <string>
27 #include <vector>
28 #include <map>
29 #include <stdexcept>
30 #include <stdlib.h>
31 #include <sstream>
32 #include <algorithm>
33 #include "common-cxx/EngineBase.hpp"
34 #include "common-cxx/RequiredPropertiesConfig.hpp"
35 #include "ConfigDeviceDetection.hpp"
36 #include "ResultsDeviceDetection.hpp"
37 #include "EvidenceDeviceDetection.hpp"
38 
39 using namespace FiftyoneDegrees::Common;
40 
41 namespace FiftyoneDegrees {
42  namespace DeviceDetection {
85  public:
95  static string defaultElementDataKey;
96 
107  ConfigDeviceDetection *config,
108  RequiredPropertiesConfig *properties);
109 
119  virtual ResultsDeviceDetection* processDeviceDetection(
120  EvidenceDeviceDetection *evidence) = 0;
121 
129  virtual ResultsDeviceDetection* processDeviceDetection(
130  const char *userAgent) = 0;
131 
139  virtual ResultsDeviceDetection* processDeviceDetection(
140  string &userAgent);
141 
145  protected:
151  virtual void init(fiftyoneDegreesDataSetDeviceDetection *dataSet);
152  };
153  }
154 }
155 
156 #endif
Device detection data set structure which contains the 'must have's for all device detection data set...
Definition: dataset-dd.h:51
Encapsulates the engine class to be extended by engine implementations.
Definition: EngineBase.hpp:78
C++ class wrapper for the fiftyoneDegreesConfigDeviceDetection configuration structure.
Definition: ConfigDeviceDetection.hpp:66
51Degrees base namespace.
Definition: ComponentMetaDataBuilderHash.hpp:34
Device detection specific evidence class containing evidence to be processed by a device detection en...
Definition: EvidenceDeviceDetection.hpp:64
C++ class wrapper for the fiftyoneDegreesPropertiesRequired structure.
Definition: RequiredPropertiesConfig.hpp:57
Encapsulates the results of a device detection engine's processing.
Definition: ResultsDeviceDetection.hpp:76
Shared classes.
Definition: Collection.hpp:32
static string defaultElementDataKey
The data key which will be used to store the results of processing.
Definition: EngineDeviceDetection.hpp:95
Encapsulates the device detection engine class to be extended by device detection engine implementati...
Definition: EngineDeviceDetection.hpp:84