libebml_ng
basictypes.h
Go to the documentation of this file.
1 #ifndef EBML_NG_BASICTYPES_H
2 #define EBML_NG_BASICTYPES_H
3 
4 #include <string>
5 
6 #include "ebmlElementType.h"
7 #include "ebmlElement.h"
8 #include "ebmlDataElement.h"
9 #include "struct/datetime.h"
10 #include "masterelement/ebmlMap.h"
11 
12 // DECL_DATA_CLS(unsigned long long)
13 // DECL_DATA_CLS(long long)
14 // DECL_DATA_CLS(double)
15 // DECL_DATA_CLS(std::string)
16 // DECL_DATA_CLS(std::wstring)
17 // DECL_DATA_CLS(ebml::timepoint_t)
18 
19 // EXTERN_MAP_TYPE(double)
20 // EXTERN_MAP_TYPE(long long)
21 // EXTERN_MAP_TYPE(unsigned long long)
22 // EXTERN_MAP_TYPE(std::string)
23 // EXTERN_MAP_TYPE(std::wstring)
24 
25 EXTERN_DATAMAP_TYPE(unsigned long long, unsigned long long);
26 EXTERN_DATAMAP_TYPE(std::string, unsigned long long);
27 EXTERN_DATAMAP_TYPE(std::string, long long);
28 EXTERN_DATAMAP_TYPE(std::wstring, unsigned long long);
29 EXTERN_DATAMAP_TYPE(std::wstring, long long);
30 EXTERN_DATAMAP_TYPE(unsigned long long, std::string);
31 EXTERN_DATAMAP_TYPE(unsigned long long, std::wstring);
32 EXTERN_DATAMAP_TYPE(double, double);
33 
34 
35 #define DECL_EBML_ALIAS(T, alias) \
36  typedef ::ebml::ebmlDataType<T> alias##Type; \
37  typedef ::ebml::ebmlDataElement<T> alias;
38 
39 
40 namespace ebml {
41  DECL_EBML_ALIAS(unsigned long long, ebmlUnsignedInteger)
47 }
48 
49 #endif
#define DECL_EBML_ALIAS(T, alias)
Definition: basictypes.h:35
Definition: basictypes.h:40
Declaration of the EBML element type base class and CRTP templates.
std::chrono::time_point< std::chrono::system_clock, std::chrono::nanoseconds > timepoint_t
Definition: datetime.h:10
Definition: ebmlDataElement.h:18
#define EXTERN_DATAMAP_TYPE(KEYTYPE, VALTYPE)
Definition: ebmlMap.h:182
Declaration of the EBML element instance base class and CRTP templates.