Qore DataProvider Module Reference  1.0.4
DataProvider.qc.dox.h
1 // -*- mode: c++; indent-tabs-mode: nil -*-
3 
26 namespace DataProvider {
29 class DataProvider {
30 
31 public:
33  const FactoryMap = ...;
34 
35 
37  const TypeMap = ...;
38 
39 
41  const FactoryModuleList = keys (map {$1: True}, FactoryMap.iterator());
42  // "map" is used above to ensure that the values only appear once in the final list
43 
44 protected:
46  static hash<string, AbstractDataProviderFactory> factory_cache;
47 
49  static hash<string, string> factory_module_map;
50 
52  static Mutex factory_cache_lock();
53 
55  static DataProviderTypeCache type_cache();
56 
58  static hash<string, string> type_module_map;
59 
61 
63  static bool allow_env_config = False;
64 
66  static bool env_config_locked = False;
67 
68 public:
69 
71 
75  static registerFactory(AbstractDataProviderFactory factory);
76 
78  static *AbstractDataProviderFactory getFactory(string name);
79 
81 
87  static AbstractDataProviderFactory getFactoryEx(string name);
88 
90 
95  static AbstractDataProvider getFactoryObject(string path, *hash<auto> options);
96 
98 
105  static AbstractDataProvider getFactoryObjectFromString(string name);
106 
108  static *list<string> listFactories();
109 
111  static DataProviderTypeCache getTypeCache();
112 
114 
122  static registerType(string path, AbstractDataProviderType type);
123 
125 
132  static *AbstractDataProviderType getType(string path);
133 
135 
144  static AbstractDataProviderType getTypeEx(string path);
145 
147  static DataProviderTypeEntry getTypeRoot();
148 
150  static lockAllTypes();
151 
153 
157  static *list<string> listTypes();
158 
160  static registerKnownFactories();
161 
163  static loadProvidersFromEnvironment();
164 
166  static registerKnownTypes();
167 
169  static loadTypesFromEnvironment();
170 
172  static hash<auto> getInfoAsData(hash<auto> info0);
173 
175 
179  static setAutoConfig();
180 
182  static bool getAutoConfig();
183 
185  static list<string> getPathList(string path);
186 
188 protected:
189  static checkRequest();
190 public:
191 
192 
194 protected:
195  static *string tryGetFactoryModuleName(string name);
196 public:
197 
198 
200 protected:
201  static *string tryGetTypeModuleName(string name);
202 public:
203 
204 
206 protected:
207  static *string tryGetModuleName(string name, string func, string type);
208 public:
209 
210 
212 protected:
213  static *DataProviderTypeEntry tryLoadTypeFromPath(list<string> type_path);
214 public:
215 
216 
218 protected:
219  static bool tryLoad(string module_str, *bool verbose);
220 public:
221 
222 
224 protected:
225  static loadFromEnvironment(string func, string type);
226 public:
227 
228 
230 protected:
231  static bool checkInjection(object obj, hash<string, string> module_map);
232 public:
233 
234 };
235 };
the DataProviderTypeEntry class
Definition: DataProviderTypeEntry.qc.dox.h:55
The AbstractDataProvider class.
Definition: AbstractDataProvider.qc.dox.h:194
static hash< string, string > factory_module_map
data provider factory module map
Definition: DataProvider.qc.dox.h:49
const True
const False
Data provider factory class.
Definition: AbstractDataProviderFactory.qc.dox.h:28
describes a data type
Definition: AbstractDataProviderType.qc.dox.h:93
static hash< string, AbstractDataProviderFactory > factory_cache
data provider factory cache
Definition: DataProvider.qc.dox.h:46
string type(auto arg)
static hash< string, string > type_module_map
data provider type module map
Definition: DataProvider.qc.dox.h:58
Qore AbstractDataField class definition.
Definition: AbstractDataField.qc.dox.h:32
Data provider type cache class.
Definition: DataProviderTypeCache.qc.dox.h:29