\r\n

51Degrees Device Detection C/C++  4.5

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

ResultsHash.hpp

1 /* *********************************************************************
2  * This Original Work is copyright of 51 Degrees Mobile Experts Limited.
3  * Copyright 2023 51 Degrees Mobile Experts Limited, Davidson House,
4  * Forbury Square, Reading, Berkshire, United Kingdom RG1 3EU.
5  *
6  * This Original Work is licensed under the European Union Public Licence
7  * (EUPL) 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_RESULTS_HASH_HPP
24 #define FIFTYONE_DEGREES_RESULTS_HASH_HPP
25 
26 #include <sstream>
27 #include "../ResultsDeviceDetection.hpp"
28 #include "hash.h"
29 
30 
31 class EngineHashTests;
32 
33 namespace FiftyoneDegrees {
34  namespace DeviceDetection {
35  namespace Hash {
65  friend class ::EngineHashTests;
66  friend class ResultsHashSerializer;
67  public:
78  shared_ptr<fiftyoneDegreesResourceManager> manager);
79 
84  virtual ~ResultsHash();
85 
100  string getDeviceId(uint32_t resultIndex) const;
101 
108  int getIterations() const;
109 
117  int getDrift() const;
118 
127  int getDrift(uint32_t resultIndex) const;
128 
134  int getMatchedNodes() const;
135 
143  int getDifference() const;
144 
152  int getDifference(uint32_t resultIndex) const;
153 
159  int getMethod() const;
160 
168  int getMethod(uint32_t resultIndex) const;
169 
175  string getTrace() const;
176 
184  string getTrace(uint32_t resultIndex) const;
185 
192  string getDeviceId() const;
193 
194  int getUserAgents() const;
195 
196  string getUserAgent(int resultIndex) const;
197 
202  protected:
203  void getValuesInternal(
204  int requiredPropertyIndex,
205  vector<string> &values);
206 
207  bool hasValuesInternal(int requiredPropertyIndex);
208 
209  const char* getNoValueMessageInternal(
211 
213  int requiredPropertyIndex);
214 
215  private:
217 
222  int _jsHardwareProfileRequiredIndex;
223  };
224  }
225  }
226 }
227 
228 #endif
bool hasValuesInternal(int requiredPropertyIndex)
Get whether or not there are valid values available for the property identified by its index in the r...
A service object to serialize ResultsHash into a JSON string.
Definition: ResultsHashSerializer.hpp:38
string getDeviceId() const
Returns the unique device id if the Id property was included in the required list of properties when ...
virtual ~ResultsHash()
Release the reference to the underlying results and and associated data set.
Encapsulates the results of a Hash device detection engine's processing.
Definition: ResultsHash.hpp:64
const char * getNoValueMessageInternal(fiftyoneDegreesResultsNoValueReason reason)
Get the message explaining the reason for missing values.
A C++ wrapper class for transform.h conversion routines.
Definition: ComponentMetaDataBuilderHash.hpp:33
void getValuesInternal(int requiredPropertyIndex, vector< string > &values)
Get the values for the index in required properties and add them to the values vector supplied.
int getDrift() const
Returns the maximum drift for a matched substring from the character position where it was expected t...
Array of items of type fiftyoneDegreesResultHash used to easily access and track the size of the arra...
Definition: hash.h:311
string getTrace() const
Get the trace route in a readable format showing the hash nodes which were visited during processing.
int getMatchedNodes() const
Returns the number of hash nodes matched within the evidence.
string getUserAgent(int resultIndex) const
Returns relevant parts of the User-Agent which most closely matched the target User-Agent if the Conf...
fiftyoneDegreesResultsNoValueReason
Enum containing reasons which cause a value to not be present or valid.
Definition: results.h:56
fiftyoneDegreesResultsNoValueReason getNoValueReasonInternal(int requiredPropertyIndex)
Get the reason for values not being available.
Encapsulates the results of a device detection engine's processing.
Definition: ResultsDeviceDetection.hpp:76
ResultsHash(fiftyoneDegreesResultsHash *results, shared_ptr< fiftyoneDegreesResourceManager > manager)
Create a new instance of Results from the results structure provided.
int getMethod() const
Returns the method used to determine the match result.
int getDifference() const
Returns the total difference between the results returned and the target User-Agents.
int getUserAgents() const
Returns the number of different User-Agents that were used in the results.
int getIterations() const
Get the number of iterations carried out in order to find a match.