-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathbrokers.h
122 lines (89 loc) · 3.75 KB
/
brokers.h
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*
* MIT License
* Copyright (c) 2019 Brian T. Park
*/
#ifndef ACE_TIME_BROKERS_H
#define ACE_TIME_BROKERS_H
#include "infos.h"
#include "BrokersLow.h"
#include "BrokersMid.h"
#include "BrokersHigh.h"
/**
* @file brokers.h
*
* The brokers in the basic:: and extended:: namespaces are identical in code.
* The purpose for having separate class hierarchies is to provide compile-time
* assurance that the BasicZoneProcessor and ExtendedZoneProcessor are given the
* correct zoneinfo files from the appropriate zonedb database.
*/
namespace ace_time {
namespace basic {
/** Data broker for accessing ZoneContext. */
using ZoneContextBroker = zoneinfolow::ZoneContextBroker<ZoneContext>;
/** Data broker for accessing ZoneRule. */
using ZoneRuleBroker = zoneinfolow::ZoneRuleBroker<ZoneContext, ZoneRule>;
/** Data broker for accessing ZonePolicy. */
using ZonePolicyBroker = zoneinfolow::ZonePolicyBroker<
ZoneContext, ZonePolicy, ZoneRule>;
/** Data broker for accessing ZoneEra. */
using ZoneEraBroker = zoneinfolow::ZoneEraBroker<
ZoneContext, ZoneEra, ZonePolicy, ZoneRule>;
/** Data broker for accessing ZoneInfo. */
using ZoneInfoBroker = zoneinfolow::ZoneInfoBroker<
ZoneContext, ZoneInfo, ZoneEra, ZonePolicy, ZoneRule>;
/**
* Data broker for accessing the ZoneRegistry. The ZoneRegistry is an
* array of (const ZoneInfo*) in the zone_registry.cpp file.
*/
using ZoneRegistryBroker = zoneinfolow::ZoneRegistryBroker<ZoneInfo>;
/** Storage object that returns a ZoneInfoBroker from a ZoneInfo pointer. */
using ZoneInfoStore = zoneinfolow::ZoneInfoStore<
ZoneContext, ZoneInfo, ZoneEra, ZonePolicy, ZoneRule>;
} // basic
namespace extended {
/** Data broker for accessing ZoneContext. */
using ZoneContextBroker = zoneinfolow::ZoneContextBroker<ZoneContext>;
/** Data broker for accessing ZoneRule. */
using ZoneRuleBroker = zoneinfolow::ZoneRuleBroker<ZoneContext, ZoneRule>;
/** Data broker for accessing ZonePolicy. */
using ZonePolicyBroker = zoneinfolow::ZonePolicyBroker<
ZoneContext, ZonePolicy, ZoneRule>;
/** Data broker for accessing ZoneEra. */
using ZoneEraBroker = zoneinfolow::ZoneEraBroker<
ZoneContext, ZoneEra, ZonePolicy, ZoneRule>;
/** Data broker for accessing ZoneInfo. */
using ZoneInfoBroker = zoneinfolow::ZoneInfoBroker<
ZoneContext, ZoneInfo, ZoneEra, ZonePolicy, ZoneRule>;
/**
* Data broker for accessing the ZoneRegistry. The ZoneRegistry is an
* array of (const ZoneInfo*) in the zone_registry.cpp file.
*/
using ZoneRegistryBroker = zoneinfolow::ZoneRegistryBroker<ZoneInfo>;
/** Storage object that returns a ZoneInfoBroker from a ZoneInfo pointer. */
using ZoneInfoStore = zoneinfolow::ZoneInfoStore<
ZoneContext, ZoneInfo, ZoneEra, ZonePolicy, ZoneRule>;
} // extended
namespace complete {
/** Data broker for accessing ZoneContext. */
using ZoneContextBroker = zoneinfohigh::ZoneContextBroker<ZoneContext>;
/** Data broker for accessing ZoneRule. */
using ZoneRuleBroker = zoneinfohigh::ZoneRuleBroker<ZoneContext, ZoneRule>;
/** Data broker for accessing ZonePolicy. */
using ZonePolicyBroker = zoneinfohigh::ZonePolicyBroker<
ZoneContext, ZonePolicy, ZoneRule>;
/** Data broker for accessing ZoneEra. */
using ZoneEraBroker = zoneinfohigh::ZoneEraBroker<
ZoneContext, ZoneEra, ZonePolicy, ZoneRule>;
/** Data broker for accessing ZoneInfo. */
using ZoneInfoBroker = zoneinfohigh::ZoneInfoBroker<
ZoneContext, ZoneInfo, ZoneEra, ZonePolicy, ZoneRule>;
/**
* Data broker for accessing the ZoneRegistry. The ZoneRegistry is an
* array of (const ZoneInfo*) in the zone_registry.cpp file.
*/
using ZoneRegistryBroker = zoneinfohigh::ZoneRegistryBroker<ZoneInfo>;
using ZoneInfoStore = zoneinfohigh::ZoneInfoStore<
ZoneContext, ZoneInfo, ZoneEra, ZonePolicy, ZoneRule>;
} // complete
} // ace_time
#endif