Qore DataProvider Module Reference  2.0
DataProviderTypeCache.qc.dox.h
1 // -*- mode: c++; indent-tabs-mode: nil -*-
3 
27 namespace DataProvider {
29 class DataProviderTypeCache : public Serializable {
30 
31 public:
32 protected:
35 
37  transient RWLock rwlock();
38 
40  int size = 0;
41 
42 public:
43 
45 
54  registerType(string path, AbstractDataProviderType type, bool locked = False);
55 
56 
58 
69 
70 
72 
79 
80 
82  int size();
83 
84 
86  bool empty();
87 
88 
91 
92 
94  clear();
95 
96 
98 
102  *list<string> listTypes();
103 
104 
106 
111  *list<string> listParentTypes();
112 
113 
116 
117 
119 
127 
128 
130 
140 
141 
143 
151  *hash<DataProviderTypeEntryInfo> getTypeInfo(string path, *bool rec_children_only);
152 
153 
155 
165  hash<DataProviderTypeEntryInfo> getTypeInfoEx(string path, *bool rec_children_only);
166 
167 
169 
184  *AbstractDataProviderType getTypeImpl(string path, bool throw_exception, *code type_loader);
185 
186 
188 
202  *hash<DataProviderTypeEntryInfo> getTypeInfoImpl(string path, bool throw_exception, *bool rec_children_only);
203 
204 
206  RWLock getLock();
207 
208 
210 
225 protected:
226  static *AbstractDataProviderType getTypeFromFields(string path, AbstractDataProviderType type, list<string> type_path, bool throw_exception);
227 public:
228 
229 };
230 };
describes a data type
Definition: AbstractDataProviderType.qc.dox.h:105
Data provider type cache class.
Definition: DataProviderTypeCache.qc.dox.h:29
DataProviderTypeEntry getRoot()
Returns the root type entry.
hash< DataProviderTypeEntryInfo > getTypeInfoEx(string path, *bool rec_children_only)
Returns the given data provider type or throws an exception if not present.
*hash< DataProviderTypeEntryInfo > getTypeInfoImpl(string path, bool throw_exception, *bool rec_children_only)
Returns information for the given data provider type and either throws an exception if not present or...
int size
The size of the cache.
Definition: DataProviderTypeCache.qc.dox.h:40
clear()
Clears the type hierarchy of all non-locked types.
*list< string > listParentTypes()
Returns a list of registered data provider type paths where the types are "parent" types.
*AbstractDataProviderType getType(string path)
Returns the given data provider type or NOTHING if not present.
transient RWLock rwlock()
Data provider type cache lock.
bool empty()
Returns True if the cache is empty, False if not.
RWLock getLock()
Returns the RWLock to allow for external serialization.
int size()
Returns the number of types in the cache.
DataProviderTypeEntry root()
Data provider data type cache.
registerType(string path, AbstractDataProviderType type, bool locked=False)
Register a new data provider type in the cache.
static *AbstractDataProviderType getTypeFromFields(string path, AbstractDataProviderType type, list< string > type_path, bool throw_exception)
Returns the given data provider type and either throws an exception if not present or returns NOTHING...
*AbstractDataProviderType removeType(string path)
Removes a type from the type cache.
*list< string > listTypes()
Returns a list of registered data provider type paths.
AbstractDataProviderType getTypeEx(string path)
Returns the given data provider type or throws an exception if not present.
*AbstractDataProviderType getTypeImpl(string path, bool throw_exception, *code type_loader)
Returns the given data provider type and either throws an exception if not present or returns NOTHING...
*hash< DataProviderTypeEntryInfo > getTypeInfo(string path, *bool rec_children_only)
Returns the given data provider type or NOTHING if not present.
bool registerOrReplaceType(string path, AbstractDataProviderType type)
Register or replaces a data provider type in the cache.
the DataProviderTypeEntry class
Definition: DataProviderTypeEntry.qc.dox.h:55
const False
string type(auto arg)
Qore AbstractDataField class definition.
Definition: AbstractDataField.qc.dox.h:27