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

config.h

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_CONFIG_H_INCLUDED
24#define FIFTYONE_DEGREES_CONFIG_H_INCLUDED
25
26#ifdef FIFTYONE_DEGREES_IPI_SYMBOLS
27#include "ipiSymbols.h"
28#endif
29
48
53typedef struct fiftyone_degrees_config_base_t {
58 bool freeData;
67 const char **tempDirs;
73
75#define FIFTYONE_DEGREES_CONFIG_USE_TEMP_FILE_DEFAULT false
76
81#define FIFTYONE_DEGREES_CONFIG_USE_TEMP_FILE \
82FIFTYONE_DEGREES_CONFIG_USE_TEMP_FILE_DEFAULT
83
85#ifndef FIFTYONE_DEGREES_MEMORY_ONLY
86#define FIFTYONE_DEGREES_CONFIG_ALL_IN_MEMORY_DEFAULT false
87#else
88#define FIFTYONE_DEGREES_CONFIG_ALL_IN_MEMORY_DEFAULT true
89#endif
90
95#define FIFTYONE_DEGREES_CONFIG_ALL_IN_MEMORY \
96FIFTYONE_DEGREES_CONFIG_ALL_IN_MEMORY_DEFAULT
97
101#define FIFTYONE_DEGREES_CONFIG_DEFAULT_WITH_INDEX \
102 FIFTYONE_DEGREES_CONFIG_ALL_IN_MEMORY, /* allInMemory */ \
103 true, /* usesUpperPrefixedHeaders */ \
104 false, /* freeData */ \
105 FIFTYONE_DEGREES_CONFIG_USE_TEMP_FILE, /* useTempFile */ \
106 false, /* reuseTempFile */ \
107 NULL, /* tempDirs */ \
108 0, /* tempDirCount */ \
109 true /* propertyValueIndex */
110
114#define FIFTYONE_DEGREES_CONFIG_DEFAULT_NO_INDEX \
115 FIFTYONE_DEGREES_CONFIG_ALL_IN_MEMORY, /* allInMemory */ \
116 true, /* usesUpperPrefixedHeaders */ \
117 false, /* freeData */ \
118 FIFTYONE_DEGREES_CONFIG_USE_TEMP_FILE, /* useTempFile */ \
119 false, /* reuseTempFile */ \
120 NULL, /* tempDirs */ \
121 0, /* tempDirCount */ \
122 false /* propertyValueIndex */
123
127#endif
Base configuration structure containing common configuration options, and options that apply to struc...
Definition config.h:53
const char ** tempDirs
Array of temp directories which can be used in order of preference.
Definition config.h:67
bool freeData
True if the memory containing the data set should be freed after it is no longer needed.
Definition config.h:58
bool propertyValueIndex
Indicates if an index to values for property and profiles should be created.
Definition config.h:70
bool useTempFile
Indicates whether a temporary file should be created instead of using the original file.
Definition config.h:62
bool allInMemory
True if the data file should be loaded entirely into continuous memory.
Definition config.h:54
bool usesUpperPrefixedHeaders
True if the HTTP header field names MIGHT include the prefix HTTP_.
Definition config.h:56
bool reuseTempFile
Indicates that an existing temp file may be used.
Definition config.h:64
int tempDirCount
Number of directories in the tempDirs array.
Definition config.h:69