Loading...
Searching...
No Matches
ConnectionSchemeCache.qc.dox.h
// -*- mode: c++; indent-tabs-mode: nil -*-
namespace ConnectionProvider {
public struct ConnectionOptionInfo {
string display_name;
string short_desc;
string desc;
string type;
bool sensitive = False;
bool multiselect;
*softlist<hash<Util::AllowedValueInfo>> allowed_values;
*bool allowed_values_creatable;
*softlist<hash<Util::AllowedValueInfo>> element_allowed_values;
*bool element_allowed_values_creatable;
auto default_value;
bool subst_env_vars = False;
bool freeform = False;
auto example_value;
};
public struct ConnectionSchemeInfo {
string display_name;
string short_desc;
string desc;
hash<string, bool> schemes;
hash<string, string> base_scheme_map;
Class cls;
*hash<string, hash<ConnectionOptionInfo>> options;
*hash<string, bool> sensitive_options;
bool auto_url = False;
*string required_options;
};
class ConnectionSchemeCache {
public:
const SchemeMap = ...;
protected:
static hash<string, hash<ConnectionSchemeInfo>> cache = {
"ftp": FtpConnection::ConnectionScheme,
"ftps": FtpConnection::ConnectionScheme,
"dir": FilesystemConnection::ConnectionScheme,
"file": FilesystemConnection::ConnectionScheme,
"http": HttpConnection::ConnectionScheme,
"https": HttpConnection::ConnectionScheme,
};
static hash<string, code> initmap;
static Mutex lck();
static bool load_all;
public:
static registerPendingScheme(string scheme, code init);
static bool registerScheme(string scheme, hash<ConnectionSchemeInfo> entry);
static *hash<ConnectionSchemeInfo> deregisterScheme(string scheme);
static hash<string, hash<ConnectionSchemeInfo>> getLoadAll();
static hash<string, hash<ConnectionSchemeInfo>> get();
static int size();
static bool empty();
static *list<string> listSchemes();
static *hash<ConnectionSchemeInfo> getScheme(string scheme);
static hash<ConnectionSchemeInfo> getSchemeEx(string scheme);
static *hash<ConnectionSchemeInfo> getSchemeImpl(string scheme, bool throw_exception, *code scheme_loader);
static *hash<auto> getDefaultOptionValues(string scheme);
static *hash<auto> getDefaultOptionValues(hash<ConnectionSchemeInfo> scheme_info);
static hash<auto> validateConnectionOptions(string conn_name, string scheme, hash<auto> options, bool check_required = True);
static hash<auto> validateConnectionOptions(string conn_name, hash<ConnectionSchemeInfo> scheme_info, hash<auto> options, bool check_required = True);
protected:
static bool tryLoadModule(string mod, bool throw_exception);
public:
private:
static deregisterSchemeIntern(string scheme);
public:
};
};
ConnectionProvider::ConnectionSchemeCache
Connection provider type cache class.
Definition ConnectionSchemeCache.qc.dox.h:114
ConnectionProvider::ConnectionSchemeCache::listSchemes
static *list< string > listSchemes()
Returns a list of all cached schemes.
ConnectionProvider::ConnectionSchemeCache::getScheme
static *hash< ConnectionSchemeInfo > getScheme(string scheme)
Returns info for the given connection scheme or nothing if not present.
ConnectionProvider::ConnectionSchemeCache::validateConnectionOptions
static hash< auto > validateConnectionOptions(string conn_name, hash< ConnectionSchemeInfo > scheme_info, hash< auto > options, bool check_required=True)
Checks and returns options.
ConnectionProvider::ConnectionSchemeCache::tryLoadModule
static bool tryLoadModule(string mod, bool throw_exception)
Try to load the given module.
ConnectionProvider::ConnectionSchemeCache::deregisterScheme
static *hash< ConnectionSchemeInfo > deregisterScheme(string scheme)
Removes a scheme.
ConnectionProvider::ConnectionSchemeCache::registerPendingScheme
static registerPendingScheme(string scheme, code init)
Registers a scheme for deferred initialization / initialization on demand.
ConnectionProvider::ConnectionSchemeCache::getSchemeImpl
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...
ConnectionProvider::ConnectionSchemeCache::getDefaultOptionValues
static *hash< auto > getDefaultOptionValues(string scheme)
Returns default option values for the given connection scheme.
ConnectionProvider::ConnectionSchemeCache::validateConnectionOptions
static hash< auto > validateConnectionOptions(string conn_name, string scheme, hash< auto > options, bool check_required=True)
Checks and returns options.
ConnectionProvider::ConnectionSchemeCache::getSchemeEx
static hash< ConnectionSchemeInfo > getSchemeEx(string scheme)
Returns info for the given connection scheme or throws an exception if not present.
ConnectionProvider::ConnectionSchemeCache::SchemeMap
const SchemeMap
Map of known connection schemes to modules.
Definition ConnectionSchemeCache.qc.dox.h:118
ConnectionProvider::ConnectionSchemeCache::deregisterSchemeIntern
static deregisterSchemeIntern(string scheme)
Deregisters a scheme in case module intiialization fails for the module that registered it.
ConnectionProvider::ConnectionSchemeCache::get
static hash< string, hash< ConnectionSchemeInfo > > get()
Returns the entire cache.
ConnectionProvider::ConnectionSchemeCache::cache
static hash< string, hash< ConnectionSchemeInfo > > cache
Connection provider cache.
Definition ConnectionSchemeCache.qc.dox.h:123
ConnectionProvider::ConnectionSchemeCache::initmap
static hash< string, code > initmap
Pending connection provider init handler map: scheme -> init handler.
Definition ConnectionSchemeCache.qc.dox.h:135
ConnectionProvider::ConnectionSchemeCache::registerScheme
static bool registerScheme(string scheme, hash< ConnectionSchemeInfo > entry)
Register a new connection provider in the cache.
ConnectionProvider::ConnectionSchemeCache::load_all
static bool load_all
Load all flag.
Definition ConnectionSchemeCache.qc.dox.h:141
ConnectionProvider::ConnectionSchemeCache::size
static int size()
Returns the number of types in the cache.
ConnectionProvider::ConnectionSchemeCache::getLoadAll
static hash< string, hash< ConnectionSchemeInfo > > getLoadAll()
Loads all possible schemes and returns the entire cache.
ConnectionProvider::ConnectionSchemeCache::empty
static bool empty()
Returns True if the cache is empty, False if not.
ConnectionProvider::ConnectionSchemeCache::lck
static Mutex lck()
Connection provider cache lock.
ConnectionProvider::ConnectionSchemeCache::getDefaultOptionValues
static *hash< auto > getDefaultOptionValues(hash< ConnectionSchemeInfo > scheme_info)
Returns default option values for the given connection scheme.
ConnectionProvider::FilesystemConnection::ConnectionScheme
const ConnectionScheme
Connection entry info.
Definition FilesystemConnection.qc.dox.h:40
ConnectionProvider::FtpConnection::ConnectionScheme
const ConnectionScheme
Connection entry info.
Definition FtpConnection.qc.dox.h:37
ConnectionProvider::HttpConnection::ConnectionScheme
const ConnectionScheme
Connection entry info.
Definition HttpConnection.qc.dox.h:63
ConnectionProvider
The ConnectionProvider namespace.
Definition AbstractConnection.qc.dox.h:28
ConnectionProvider::ConnectionOptionInfo
Connection option information.
Definition ConnectionSchemeCache.qc.dox.h:29
ConnectionProvider::ConnectionOptionInfo::allowed_values_creatable
*bool allowed_values_creatable
Does the option accept values not defined in allowed_values too?
Definition ConnectionSchemeCache.qc.dox.h:52
ConnectionProvider::ConnectionOptionInfo::short_desc
string short_desc
Option short description in plain text.
Definition ConnectionSchemeCache.qc.dox.h:34
ConnectionProvider::ConnectionOptionInfo::subst_env_vars
bool subst_env_vars
Do environment variable substitution on the value?
Definition ConnectionSchemeCache.qc.dox.h:64
ConnectionProvider::ConnectionOptionInfo::default_value
auto default_value
Any default value.
Definition ConnectionSchemeCache.qc.dox.h:61
ConnectionProvider::ConnectionOptionInfo::element_allowed_values
*softlist< hash< Util::AllowedValueInfo > > element_allowed_values
List of allowed values for elements of list types (enum)
Definition ConnectionSchemeCache.qc.dox.h:55
ConnectionProvider::ConnectionOptionInfo::type
string type
Option value type.
Definition ConnectionSchemeCache.qc.dox.h:40
ConnectionProvider::ConnectionOptionInfo::desc
string desc
Description with markdown formatting.
Definition ConnectionSchemeCache.qc.dox.h:37
ConnectionProvider::ConnectionOptionInfo::freeform
bool freeform
Modifier for the "file-as-string" type; can a freeform location option be returned?
Definition ConnectionSchemeCache.qc.dox.h:67
ConnectionProvider::ConnectionOptionInfo::multiselect
bool multiselect
Are allowed values elements of the list's element type that indicate what values the list can have?
Definition ConnectionSchemeCache.qc.dox.h:46
ConnectionProvider::ConnectionOptionInfo::element_allowed_values_creatable
*bool element_allowed_values_creatable
Does the option accept element values not defined in element_allowed_values too?
Definition ConnectionSchemeCache.qc.dox.h:58
ConnectionProvider::ConnectionOptionInfo::example_value
auto example_value
Optional example option value.
Definition ConnectionSchemeCache.qc.dox.h:70
ConnectionProvider::ConnectionOptionInfo::display_name
string display_name
Option display name.
Definition ConnectionSchemeCache.qc.dox.h:31
ConnectionProvider::ConnectionOptionInfo::sensitive
bool sensitive
Is the value sensitive? (password or other authentication info)
Definition ConnectionSchemeCache.qc.dox.h:43
ConnectionProvider::ConnectionOptionInfo::allowed_values
*softlist< hash< Util::AllowedValueInfo > > allowed_values
List of allowed values (enum)
Definition ConnectionSchemeCache.qc.dox.h:49
ConnectionProvider::ConnectionSchemeInfo
Connection provider information.
Definition ConnectionSchemeCache.qc.dox.h:74
ConnectionProvider::ConnectionSchemeInfo::desc
string desc
Connection type / scheme description with markdown formatting.
Definition ConnectionSchemeCache.qc.dox.h:82
ConnectionProvider::ConnectionSchemeInfo::required_options
*string required_options
Required option string.
Definition ConnectionSchemeCache.qc.dox.h:110
ConnectionProvider::ConnectionSchemeInfo::options
*hash< string, hash< ConnectionOptionInfo > > options
Connection options: name -> option info.
Definition ConnectionSchemeCache.qc.dox.h:96
ConnectionProvider::ConnectionSchemeInfo::base_scheme_map
hash< string, string > base_scheme_map
Base URL scheme map; base scheme -> connection scheme.
Definition ConnectionSchemeCache.qc.dox.h:90
ConnectionProvider::ConnectionSchemeInfo::auto_url
bool auto_url
URL provided automatically?
Definition ConnectionSchemeCache.qc.dox.h:102
ConnectionProvider::ConnectionSchemeInfo::schemes
hash< string, bool > schemes
Connection scheme set; scheme -> True.
Definition ConnectionSchemeCache.qc.dox.h:87
ConnectionProvider::ConnectionSchemeInfo::sensitive_options
*hash< string, bool > sensitive_options
Set of sensitive options: name -> True.
Definition ConnectionSchemeCache.qc.dox.h:99
ConnectionProvider::ConnectionSchemeInfo::display_name
string display_name
Connection type / scheme display name.
Definition ConnectionSchemeCache.qc.dox.h:76
ConnectionProvider::ConnectionSchemeInfo::short_desc
string short_desc
Connection type / scheme short description in plain text.
Definition ConnectionSchemeCache.qc.dox.h:79
ConnectionProvider::ConnectionSchemeInfo::cls
Class cls
The connection class.
Definition ConnectionSchemeCache.qc.dox.h:93