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

EvidenceBase.hpp

1/* *********************************************************************
2 * This Original Work is copyright of 51 Degrees Mobile Experts Limited.
3 * Copyright 2026 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_EVIDENCE_BASE_HPP
24#define FIFTYONE_DEGREES_EVIDENCE_BASE_HPP
25
26#include <string>
27#include <map>
28#include "Exceptions.hpp"
29#include "evidence.h"
30
31using std::map;
32using std::make_shared;
33using std::invalid_argument;
34using std::stringstream;
35
36namespace FiftyoneDegrees {
37 namespace Common {
38 FIFTYONE_DEGREES_COMMON_CXX_BEGIN
68 class EvidenceBase : public map<string, string> {
69 public:
74
79
83 virtual ~EvidenceBase();
84
90
98
104
108 void clear();
109
114 void erase(iterator position);
115
121 void erase(iterator first, iterator last);
122
126 protected:
135 private:
138 };
139 FIFTYONE_DEGREES_COMMON_CXX_END
140 }
141}
142
143#endif
void clear()
Clear all evidence items from the instance.
EvidenceBase()
Construct a new instance containing no evidence.
fiftyoneDegreesEvidenceKeyValuePairArray * get()
Get the underlying C structure containing the evidence.
virtual ~EvidenceBase()
Free all the underlying memory containing the evidence.
void erase(iterator first, iterator last)
Remove the evidence items between the two position indicated.
virtual bool isRelevant(fiftyoneDegreesEvidencePrefix prefix)
Get whether or not the evidence key prefix is relevant or not.
void erase(iterator position)
Remove the evidence item at the position indicated.
fiftyoneDegreesEvidencePrefix
@
Definition evidence.h:138
Shared classes.
Definition Collection.hpp:31
A C++ wrapper class for transform.h conversion routines.
Definition ComponentMetaDataBuilderHash.hpp:33
Array of evidence key value pairs and a pointer to the next array if present or NULL of not present.
Definition evidence.h:195