forked from 51Degrees/common-cxx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
EntityMetaDataBuilder.hpp
88 lines (79 loc) · 2.6 KB
/
EntityMetaDataBuilder.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/* *********************************************************************
* This Original Work is copyright of 51 Degrees Mobile Experts Limited.
* Copyright 2019 51 Degrees Mobile Experts Limited, 5 Charlotte Close,
* Caversham, Reading, Berkshire, United Kingdom RG4 7BY.
*
* This Original Work is licensed under the European Union Public Licence (EUPL)
* v.1.2 and is subject to its terms as set out below.
*
* If a copy of the EUPL was not distributed with this file, You can obtain
* one at https://opensource.org/licenses/EUPL-1.2.
*
* The 'Compatible Licences' set out in the Appendix to the EUPL (as may be
* amended by the European Commission) shall be deemed incompatible for
* the purposes of the Work and the provisions of the compatibility
* clause in Article 5 of the EUPL shall not apply.
*
* If using the Work as, or as part of, a network application, by
* including the attribution notice(s) required under Article 5 of the EUPL
* in the end user terms of the application under an appropriate heading,
* such notice(s) shall fulfill the requirements of that article.
* ********************************************************************* */
#ifndef FIFTYONE_DEGREES_ENTITY_META_DATA_BUILDER_HPP
#define FIFTYONE_DEGREES_ENTITY_META_DATA_BUILDER_HPP
#include <string>
#include "Exceptions.hpp"
#include "collection.h"
#include "string.h"
using namespace std;
using namespace FiftyoneDegrees;
namespace FiftyoneDegrees {
namespace Common {
/**
* Meta data builder class contains static helper methods used when
* building meta data instances.
*/
class EntityMetaDataBuilder {
protected:
/**
* @name Static Helpers
* @{
*/
/**
* Get a copy of a string from the strings collection at the offset
* provided.
* @param stringsCollection pointer to the collection to copy the
* string from
* @param offset offset in the strings collection of the string to
* copy
* @return string copy of the string at the offset provided
*/
static string getString(
fiftyoneDegreesCollection *stringsCollection,
uint32_t offset) {
FIFTYONE_DEGREES_EXCEPTION_CREATE;
string result;
fiftyoneDegreesCollectionItem item;
fiftyoneDegreesString *str;
fiftyoneDegreesDataReset(&item.data);
str = fiftyoneDegreesStringGet(
stringsCollection,
offset,
&item,
exception);
FIFTYONE_DEGREES_EXCEPTION_THROW;
if (str != nullptr) {
result.append(&str->value);
}
FIFTYONE_DEGREES_COLLECTION_RELEASE(
stringsCollection,
&item);
return result;
}
/**
* @}
*/
};
}
}
#endif