\r\n

51Degrees Device Detection C/C++  4.5

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

collectionKey.h

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_COLLECTION_KEY_H_INCLUDED
24 #define FIFTYONE_DEGREES_COLLECTION_KEY_H_INCLUDED
25 
35 #include <stdint.h>
36 #include "propertyValueType.h"
37 #include "exceptions.h"
38 
46  const void *initial,
47  fiftyoneDegreesException *exception);
48 
52 typedef union fiftyone_degrees_collection_index_or_offset_t {
53  uint32_t index;
54  uint32_t offset;
56 
58  fiftyoneDegreesCollectionIndexOrOffset_Zero = { 0 };
59 
63 typedef struct fiftyone_degrees_collection_key_type_t {
64  const fiftyoneDegreesPropertyValueType valueType;
65  uint32_t initialBytesCount;
68 
72 typedef struct fiftyone_degrees_collection_key_t {
76 
81 #endif
const fiftyoneDegreesCollectionGetVariableSizeMethod getFinalSizeMethod
Size of unknown-length "tail" of the item.
Definition: collectionKey.h:66
Explains to a collection how to properly extract the requested value.
Definition: collectionKey.h:63
const fiftyoneDegreesPropertyValueType valueType
Size of known-length "head" of the item.
Definition: collectionKey.h:64
uint32_t(* fiftyoneDegreesCollectionGetVariableSizeMethod)(const void *initial, fiftyoneDegreesException *exception)
Passed a pointer to the first part of a variable size item and returns the size of the entire item.
Definition: collectionKey.h:45
fiftyoneDegreesCollectionIndexOrOffset indexOrOffset
Where to look for the item.
Definition: collectionKey.h:73
uint32_t index
index of the item in the collection.
Definition: collectionKey.h:53
uint32_t offset
byte offset of the item from the start of collection.
Definition: collectionKey.h:54
Location of the item within the Collection.
Definition: collectionKey.h:52
Structure used to represent a 51Degrees exception and passed into methods that might generate excepti...
Definition: exceptions.h:111
const fiftyoneDegreesCollectionKeyType * keyType
Not used if collection is fixed width.
Definition: collectionKey.h:74
Explains to a collection (or cache) what the consumer is looking for.
Definition: collectionKey.h:72
uint32_t initialBytesCount
Size of known-length "head" of the item.
Definition: collectionKey.h:65