\r\n

51Degrees Device Detection C/C++  4.4

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  public:
77  shared_ptr<fiftyoneDegreesResourceManager> manager);
78 
83  virtual ~ResultsHash();
84 
99  string getDeviceId(uint32_t resultIndex) const;
100 
107  int getIterations() const;
108 
116  int getDrift() const;
117 
126  int getDrift(uint32_t resultIndex) const;
127 
133  int getMatchedNodes() const;
134 
142  int getDifference() const;
143 
151  int getDifference(uint32_t resultIndex) const;
152 
158  int getMethod() const;
159 
167  int getMethod(uint32_t resultIndex) const;
168 
174  string getTrace() const;
175 
183  string getTrace(uint32_t resultIndex) const;
184 
191  string getDeviceId() const;
192 
193  int getUserAgents() const;
194 
195  string getUserAgent(int resultIndex) const;
196 
201  protected:
202  void getValuesInternal(
203  int requiredPropertyIndex,
204  vector<string> &values);
205 
206  bool hasValuesInternal(int requiredPropertyIndex);
207 
208  const char* getNoValueMessageInternal(
210 
212  int requiredPropertyIndex);
213 
214  private:
216 
221  int _jsHardwareProfileRequiredIndex;
222  };
223  }
224  }
225 }
226 
227 #endif
bool hasValuesInternal(int requiredPropertyIndex)
Get whether or not there are valid values available for the property identified by its index in the r...
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.
51Degrees base namespace.
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:365
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.