Qore ConnectionProvider Module Reference 2.0
Loading...
Searching...
No Matches
ConnectionSchemeCache.qc.dox.h
1// -*- mode: c++; indent-tabs-mode: nil -*-
3
27namespace ConnectionProvider {
29public hashdecl ConnectionOptionInfo {
32
34 string short_desc;
35
37 string desc;
38
40 string type;
41
43 bool sensitive = False;
44
46 *softlist<hash<Util::AllowedValueInfo>> allowed_values;
47
50
52 bool subst_env_vars = False;
53
55 bool freeform = False;
56
59};
60
62public hashdecl ConnectionSchemeInfo {
65
67 string short_desc;
68
70 string desc;
71
73
75 hash<string, bool> schemes;
76
78 hash<string, string> base_scheme_map;
79
81 Class cls;
82
84 *hash<string, hash<ConnectionOptionInfo>> options;
85
87 bool auto_url = False;
88
90
96};
97
100
101public:
103 const SchemeMap = ...;
104
105
106protected:
108 static hash<string, hash<ConnectionSchemeInfo>> cache = {
111
114
117 };
118
120 static Mutex lck();
121
123 static bool load_all;
124
125public:
126
128
134 static bool registerScheme(string scheme, hash<ConnectionSchemeInfo> entry);
135
137 static hash<string, hash<ConnectionSchemeInfo>> getLoadAll();
138
140 static hash<string, hash<ConnectionSchemeInfo>> get();
141
143 static int size();
144
146 static bool empty();
147
149
151 static *list<string> listSchemes();
152
154
159 static *hash<ConnectionSchemeInfo> getScheme(string scheme);
160
162
168 static hash<ConnectionSchemeInfo> getSchemeEx(string scheme);
169
171
182 static *hash<ConnectionSchemeInfo> getSchemeImpl(string scheme, bool throw_exception, *code scheme_loader);
183
185
193 static *hash<auto> getDefaultOptionValues(string scheme);
194
196
202 static *hash<auto> getDefaultOptionValues(hash<ConnectionSchemeInfo> scheme_info);
203
205
216 static hash<auto> validateConnectionOptions(string conn_name, string scheme, hash<auto> options, bool check_required = True);
217
219
230 static hash<auto> validateConnectionOptions(string conn_name, hash<ConnectionSchemeInfo> scheme_info, hash<auto> options, bool check_required = True);
231
233protected:
234 static bool tryLoadModule(string mod, bool throw_exception);
235public:
236
237
239
241protected:
242 static deregisterScheme(string scheme);
243public:
244
245};
246};
Connection provider type cache class.
Definition ConnectionSchemeCache.qc.dox.h:99
static *list< string > listSchemes()
Returns a list of all cached schemes.
static *hash< ConnectionSchemeInfo > getScheme(string scheme)
Returns info for the given connection scheme or NOTHING if not present.
static hash< auto > validateConnectionOptions(string conn_name, hash< ConnectionSchemeInfo > scheme_info, hash< auto > options, bool check_required=True)
Checks and returns options.
static bool tryLoadModule(string mod, bool throw_exception)
Try to load the given module.
static *hash< ConnectionSchemeInfo > getSchemeImpl(string scheme, bool throw_exception, *code scheme_loader)
Returns info for the given connection scheme; either throws an exception if not present or returns NO...
static *hash< auto > getDefaultOptionValues(string scheme)
Returns default option values for the given connection scheme.
static hash< auto > validateConnectionOptions(string conn_name, string scheme, hash< auto > options, bool check_required=True)
Checks and returns options.
static hash< ConnectionSchemeInfo > getSchemeEx(string scheme)
Returns info for the given connection scheme or throws an exception if not present.
const SchemeMap
Map of known connection schemes to modules.
Definition ConnectionSchemeCache.qc.dox.h:103
static hash< string, hash< ConnectionSchemeInfo > > get()
Returns the entire cache.
static hash< string, hash< ConnectionSchemeInfo > > cache
Connection provider cache.
Definition ConnectionSchemeCache.qc.dox.h:108
static deregisterScheme(string scheme)
Deregisters a scheme in case module intiialization fails for the module that registered it.
static bool registerScheme(string scheme, hash< ConnectionSchemeInfo > entry)
Register a new connection provider in the cache.
static bool load_all
Load all flag.
Definition ConnectionSchemeCache.qc.dox.h:123
static int size()
Returns the number of types in the cache.
static hash< string, hash< ConnectionSchemeInfo > > getLoadAll()
Loads all possible schemes and returns the entire cache.
static bool empty()
Returns True if the cache is empty, False if not.
static Mutex lck()
Connection provider cache lock.
static *hash< auto > getDefaultOptionValues(hash< ConnectionSchemeInfo > scheme_info)
Returns default option values for the given connection scheme.
const ConnectionScheme
Connection entry info.
Definition FilesystemConnection.qc.dox.h:40
const ConnectionScheme
Connection entry info.
Definition FtpConnection.qc.dox.h:37
const ConnectionScheme
Connection entry info.
Definition HttpConnection.qc.dox.h:63
The ConnectionProvider namespace.
Definition AbstractConnection.qc.dox.h:28
Connection option information.
Definition ConnectionSchemeCache.qc.dox.h:29
string short_desc
Option short description in plain text.
Definition ConnectionSchemeCache.qc.dox.h:34
bool subst_env_vars
Do environment variable substitution on the value?
Definition ConnectionSchemeCache.qc.dox.h:52
auto default_value
Any default value.
Definition ConnectionSchemeCache.qc.dox.h:49
string type
Option value type.
Definition ConnectionSchemeCache.qc.dox.h:40
string desc
Description with markdown formatting.
Definition ConnectionSchemeCache.qc.dox.h:37
bool freeform
Modifier for the "file-as-string" type; can a freeform location option be returned?
Definition ConnectionSchemeCache.qc.dox.h:55
auto example_value
Optional example option value.
Definition ConnectionSchemeCache.qc.dox.h:58
string display_name
Option display name.
Definition ConnectionSchemeCache.qc.dox.h:31
bool sensitive
Is the value sensitive? (password or other authentication info)
Definition ConnectionSchemeCache.qc.dox.h:43
*softlist< hash< Util::AllowedValueInfo > > allowed_values
List of allowed values (enum)
Definition ConnectionSchemeCache.qc.dox.h:46
Connection provider information.
Definition ConnectionSchemeCache.qc.dox.h:62
string desc
Connection type / scheme description with markdown formatting.
Definition ConnectionSchemeCache.qc.dox.h:70
*string required_options
Required option string.
Definition ConnectionSchemeCache.qc.dox.h:95
*hash< string, hash< ConnectionOptionInfo > > options
Connection options: name -> option info.
Definition ConnectionSchemeCache.qc.dox.h:84
hash< string, string > base_scheme_map
Base URL scheme map; base scheme -> connection scheme.
Definition ConnectionSchemeCache.qc.dox.h:78
bool auto_url
URL provided automatically?
Definition ConnectionSchemeCache.qc.dox.h:87
hash< string, bool > schemes
Connection scheme set; scheme -> True.
Definition ConnectionSchemeCache.qc.dox.h:75
string display_name
Connection type / scheme display name.
Definition ConnectionSchemeCache.qc.dox.h:64
string short_desc
Connection type / scheme short description in plain text.
Definition ConnectionSchemeCache.qc.dox.h:67
Class cls
The connection class.
Definition ConnectionSchemeCache.qc.dox.h:81