hash.h
uint32_t predictiveNodeOffset
Offset in the nodes collection of the root node for the predictive graph.
Definition: hash.h:282
const fiftyoneDegreesCollectionHeader nodes
Size and location of the nodes collection.
Definition: hash.h:229
int32_t drift
The maximum drift to allow when matching hashes.
Definition: hash.h:262
Device detection data set structure which contains the 'must have's for all device detection data set...
Definition: dataset-dd.h:51
fiftyoneDegreesCollectionConfig components
Components collection config.
Definition: hash.h:246
EXTERNAL_VAR fiftyoneDegreesConfigHash fiftyoneDegreesHashBalancedConfig
Uses caching to balance memory usage and performance.
Definition: hash.h:421
fiftyoneDegreesCollection * rootNodes
Collection of all root nodes.
Definition: hash.h:310
uint32_t performanceNodeOffset
Offset in the nodes collection of the root node for the performance graph.
Definition: hash.h:280
Data structure containing the root nodes for the combination of an evidence item and a component.
Definition: hash.h:279
Singular User-Agent result returned by a Hash process method.
Definition: hash.h:326
Collection header structure which defines the size and location of the collection data.
Definition: collection.h:276
fiftyoneDegreesStatusCode
Status returned from the initialisation of a resource.
Definition: status.h:77
fiftyoneDegreesCollectionConfig properties
Properties collection config.
Definition: hash.h:249
const int32_t versionMinor
Minor version of the data file loaded.
Definition: hash.h:195
fiftyoneDegreesCollection * maps
Collection data file maps.
Definition: hash.h:306
fiftyoneDegreesStatusCode fiftyoneDegreesHashInitManagerFromFile(fiftyoneDegreesResourceManager *manager, fiftyoneDegreesConfigHash *config, fiftyoneDegreesPropertiesRequired *properties, const char *fileName, fiftyoneDegreesException *exception)
Initialises the resource manager with a Hash data set resource populated from the Hash data file refe...
fiftyoneDegreesStatusCode fiftyoneDegreesHashReloadManagerFromMemory(fiftyoneDegreesResourceManager *manager, void *source, long length, fiftyoneDegreesException *exception)
Reload the data set being used by the resource manager using a data file loaded into contiguous memor...
const char * fiftyoneDegreesResultsHashGetNoValueReasonMessage(fiftyoneDegreesResultsNoValueReason reason)
Gets a fuller description of the reason why a value is missing.
EXTERNAL_VAR fiftyoneDegreesConfigHash fiftyoneDegreesHashInMemoryConfig
DETECTION CONFIGURATIONS.
Definition: hash.h:384
char * fiftyoneDegreesHashGetDeviceIdFromResult(fiftyoneDegreesDataSetHash *dataSet, fiftyoneDegreesResultHash *result, char *destination, size_t size, fiftyoneDegreesException *exception)
Get the device id string from the single result provided.
fiftyoneDegreesResultUserAgent b
Base User-Agent result.
Definition: hash.h:327
uint32_t * profileOffsets
Array of profile offsets where the index is the component index.
Definition: hash.h:328
void fiftyoneDegreesResultsHashFree(fiftyoneDegreesResultsHash *results)
Frees the results structure created by the fiftyoneDegreesResultsHashCreate method.
fiftyoneDegreesCollectionConfig nodes
Nodes collection config.
Definition: hash.h:255
fiftyoneDegreesResultsNoValueReason fiftyoneDegreesResultsHashGetNoValueReason(fiftyoneDegreesResultsHash *results, int requiredPropertyIndex, fiftyoneDegreesException *exception)
Gets the reason why a results does not contain valid values for a given property.
uint32_t fiftyoneDegreesHashIterateProfilesForPropertyAndValue(fiftyoneDegreesResourceManager *manager, const char *propertyName, const char *valueName, void *state, fiftyoneDegreesProfileIterateMethod callback, fiftyoneDegreesException *exception)
Iterates over the profiles in the data set calling the callback method for any profiles that contain ...
size_t fiftyoneDegreesHashSizeManagerFromMemory(fiftyoneDegreesConfigHash *config, fiftyoneDegreesPropertiesRequired *properties, void *memory, long size, fiftyoneDegreesException *exception)
Gets the total size in bytes which will be allocated when intialising a Hash resource and associated ...
Used to store a handle to the underlying item that could be used to release the item when it's finish...
Definition: collection.h:308
size_t fiftyoneDegreesHashSizeManagerFromFile(fiftyoneDegreesConfigHash *config, fiftyoneDegreesPropertiesRequired *properties, const char *fileName, fiftyoneDegreesException *exception)
EXTERNAL METHODS.
fiftyoneDegreesCollectionItem * fiftyoneDegreesResultsHashGetValues(fiftyoneDegreesResultsHash *results, int requiredPropertyIndex, fiftyoneDegreesException *exception)
Populates the list of values in the results instance with value structure instances associated with t...
const fiftyoneDegreesDataSetHashHeader header
Dataset header.
Definition: hash.h:297
fiftyoneDegreesCollection * strings
Collection of all strings.
Definition: hash.h:299
void fiftyoneDegreesResultsHashFromEvidence(fiftyoneDegreesResultsHash *results, fiftyoneDegreesEvidenceKeyValuePairArray *evidence, fiftyoneDegreesException *exception)
Processes the evidence value pairs in the evidence collection and populates the result in the results...
bool usePerformanceGraph
True if the performance optimized graph should be used for processing.
Definition: hash.h:265
bool * profileIsOverriden
Array of boolean flags indicating whether the result profile offset at the same index is one which ha...
Definition: hash.h:330
const int32_t versionMajor
Major version of the data file loaded.
Definition: hash.h:194
Used to store the date when the dataset was produced and next date 51Degrees expect to provide a new ...
Definition: date.h:58
const fiftyoneDegreesDate nextUpdate
Date when the next data file will be available.
Definition: hash.h:212
EXTERNAL_VAR fiftyoneDegreesConfigHash fiftyoneDegreesHashHighPerformanceConfig
Highest performance configuration.
Definition: hash.h:394
size_t fiftyoneDegreesResultsHashGetValuesString(fiftyoneDegreesResultsHash *results, const char *propertyName, char *buffer, size_t bufferLength, const char *separator, fiftyoneDegreesException *exception)
Sets the buffer the values associated in the results for the property name.
bool usePredictiveGraph
True if the predictive optimized graph should be used for processing.
Definition: hash.h:267
const fiftyoneDegreesCollectionHeader rootNodes
Root nodes which point to the start of each graph used in detection.
Definition: hash.h:226
const int32_t versionBuild
Build version of the data file loaded.
Definition: hash.h:196
fiftyoneDegreesCollection * components
Collection of all components.
Definition: hash.h:300
Array of items of type fiftyoneDegreesResultHash used to easily access and track the size of the arra...
Definition: hash.h:365
bool fiftyoneDegreesResultsHashGetHasValues(fiftyoneDegreesResultsHash *results, int requiredPropertyIndex, fiftyoneDegreesException *exception)
Gets whether or not the results provided contain valid values for the property index provided.
fiftyoneDegreesCollection * values
Collection of all values.
Definition: hash.h:308
const int16_t age
Age of the data set format.
Definition: hash.h:203
const fiftyoneDegreesConfigHash config
Copy of the configuration.
Definition: hash.h:298
const fiftyoneDegreesCollectionHeader profiles
Size and location of the profiles collection.
Definition: hash.h:224
fiftyoneDegreesCollectionConfig profiles
Profiles collection config.
Definition: hash.h:252
int32_t matchedNodes
The number of hashes matched in the User-Agent.
Definition: hash.h:341
fiftyoneDegreesCollection * nodes
Collection of all hash nodes.
Definition: hash.h:311
EXTERNAL_VAR fiftyoneDegreesConfigHash fiftyoneDegreesHashDefaultConfig
Default detection configuration.
Definition: hash.h:442
Data set structure containing all the components used for detections.
Definition: hash.h:295
char * fiftyoneDegreesHashGetDeviceIdFromResults(fiftyoneDegreesResultsHash *results, char *destination, size_t size, fiftyoneDegreesException *exception)
Get the device id string from the results provided.
void fiftyoneDegreesResultsHashFromDeviceId(fiftyoneDegreesResultsHash *results, const char *deviceId, size_t deviceIdLength, fiftyoneDegreesException *exception)
Process a single Device Id and populate the device offsets in the results structure.
EXTERNAL_VAR fiftyoneDegreesConfigHash fiftyoneDegreesHashBalancedTempConfig
Balanced configuration modified to create a temporary file copy of the source data file to avoid lock...
Definition: hash.h:431
const fiftyoneDegreesCollectionHeader properties
Size and location of the properties collection.
Definition: hash.h:220
const fiftyoneDegreesCollectionHeader components
Size and location of the components collection.
Definition: hash.h:216
fiftyoneDegreesDataSetDeviceDetection b
Base data set.
Definition: hash.h:296
fiftyoneDegreesCollectionConfig values
Values collection config.
Definition: hash.h:251
const fiftyoneDegreesCollectionHeader profileOffsets
Size and location of the profile offsets collection.
Definition: hash.h:231
void fiftyoneDegreesDataSetHashRelease(fiftyoneDegreesDataSetHash *dataSet)
Release the reference to a data set returned by the fiftyoneDegreesDataSetHashGet method.
fiftyoneDegreesStatusCode fiftyoneDegreesHashInitManagerFromMemory(fiftyoneDegreesResourceManager *manager, fiftyoneDegreesConfigHash *config, fiftyoneDegreesPropertiesRequired *properties, void *memory, long size, fiftyoneDegreesException *exception)
Initialises the resource manager with a Hash data set resource populated from the Hash data set point...
fiftyoneDegreesResultsNoValueReason
Enum containing reasons which cause a value to not be present or valid.
Definition: results.h:56
fiftyoneDegreesStatusCode fiftyoneDegreesHashReloadManagerFromFile(fiftyoneDegreesResourceManager *manager, const char *fileName, fiftyoneDegreesException *exception)
Reload the data set being used by the resource manager using the data file location specified.
fiftyoneDegreesCollection * profiles
Collection of all profiles.
Definition: hash.h:309
const fiftyoneDegreesDate published
Date when the data file was published.
Definition: hash.h:210
const fiftyoneDegreesCollectionHeader maps
Size and location of the maps collection.
Definition: hash.h:218
Singular User-Agent result returned by a device detection process method.
Definition: results-dd.h:49
fiftyoneDegreesCollectionConfig maps
Maps collection config.
Definition: hash.h:248
EXTERNAL_VAR fiftyoneDegreesConfigHash fiftyoneDegreesHashLowMemoryConfig
Low memory configuration.
Definition: hash.h:407
fiftyoneDegreesCollectionConfig strings
Strings collection config.
Definition: hash.h:245
Defines a set of properties which are required by a caller.
Definition: properties.h:175
fiftyoneDegreesDataSetHash * fiftyoneDegreesDataSetHashGet(fiftyoneDegreesResourceManager *manager)
Gets a safe reference to the Hash data set from the resource manager.
Array of items of type fiftyoneDegreesEvidenceKeyValuePair used to easily access and track the size o...
Definition: evidence.h:172
const int32_t formatOffset
Offset of the data file format in the strings collection.
Definition: hash.h:208
Manager structure used to provide access to a shared and changing resource.
Definition: resource.h:173
Collection configuration structure which defines how the collection should be created by the create m...
Definition: collection.h:287
int32_t iterations
Number of iterations required to get the device offset.
Definition: hash.h:335
const fiftyoneDegreesCollectionHeader strings
Size and location of the strings collection.
Definition: hash.h:214
int32_t difference
The maximum difference to allow when matching hashes.
Definition: hash.h:258
void fiftyoneDegreesResultsHashFromUserAgent(fiftyoneDegreesResultsHash *results, const char *userAgent, size_t userAgentLength, fiftyoneDegreesException *exception)
Process a single User-Agent and populate the device offsets in the results structure.
fiftyoneDegreesCollection * profileOffsets
Collection of all offsets to profiles in the profiles collection.
Definition: hash.h:312
Dataset header containing information about the dataset.
Definition: hash.h:193
Structure used to represent a 51Degrees exception and passed into methods that might generate excepti...
Definition: exceptions.h:111
Definition: GettingStarted.c:63
fiftyoneDegreesConfigDeviceDetection b
Base configuration.
Definition: hash.h:244
fiftyoneDegreesCollectionConfig rootNodes
Root nodes collection config.
Definition: hash.h:253
EXTERNAL_VAR fiftyoneDegreesConfigHash fiftyoneDegreesHashSingleLoadedConfig
Configuration designed only for testing.
Definition: hash.h:450
const int32_t copyrightOffset
Offset of the copyright string in the strings collection.
Definition: hash.h:201
const int32_t minUserAgentCount
Minimum count for a User-Agent to be included in the data file export.
Definition: hash.h:204
fiftyoneDegreesHashMatchMethod method
The method used to provide the match result.
Definition: hash.h:333
const fiftyoneDegreesCollectionHeader values
Size and location of the values collection.
Definition: hash.h:222
Trace node structure used to trace the route taken when evaluating a graph.
Definition: graph.h:144
fiftyoneDegreesList componentsList
List of component items from the components collection.
Definition: hash.h:301
fiftyoneDegreesCollectionConfig profileOffsets
Profile offsets collection config.
Definition: hash.h:256
Device detection configuration structure containing device detection specific configuration options,...
Definition: config-dd.h:52
bool traceRoute
True if the route through each graph should be traced during processing.
Definition: hash.h:269
int32_t drift
The maximum drift for a matched substring from the character position where it was expected to be fou...
Definition: hash.h:339
bool * componentsAvailable
Array of flags indicating if there are any properties available for the component with the matching i...
Definition: hash.h:303
bool(* fiftyoneDegreesProfileIterateMethod)(void *state, fiftyoneDegreesCollectionItem *item)
Definition of a callback function which is passed an item of a type determined by the iteration metho...
Definition: profile.h:116
fiftyoneDegreesStatusCode fiftyoneDegreesHashReloadManagerFromOriginalFile(fiftyoneDegreesResourceManager *manager, fiftyoneDegreesException *exception)
Reload the data set being used by the resource manager using the data file location which was used wh...
const int32_t versionRevision
Revision version of the data file loaded.
Definition: hash.h:197
const int32_t nameOffset
Offset of the data file name in the strings collection.
Definition: hash.h:206
size_t fiftyoneDegreesResultsHashGetValuesStringByRequiredPropertyIndex(fiftyoneDegreesResultsHash *results, const int requiredPropertyIndex, char *buffer, size_t bufferLength, const char *separator, fiftyoneDegreesException *exception)
Sets the buffer the values associated in the results for the property name.
All the shared methods and fields required by file, memory and cached collections.
Definition: collection.h:408
fiftyoneDegreesResultsHash * fiftyoneDegreesResultsHashCreate(fiftyoneDegreesResourceManager *manager, uint32_t userAgentCapacity, uint32_t overridesCapacity)
Allocates a results structure containing a reference to the Hash data set managed by the resource man...
fiftyoneDegreesGraphTraceNode * trace
The graph trace constructed during processing if the option was enabled (and the executable was compi...
Definition: hash.h:342
int32_t difference
The total difference in hash code values between the matched substring and the actual substring.
Definition: hash.h:337
#define FIFTYONE_DEGREES_RESULTS_HASH_MEMBERS
Macro defining the common members of a Hash result.
Definition: hash.h:353
fiftyoneDegreesCollection * properties
Collection of all properties.
Definition: hash.h:307