Qore ConnectionProvider Module Reference 1.11
|
abstract base class for connections More...
#include <AbstractConnection.qc.dox.h>
Public Member Methods | |
deprecated | constructor (string name, string desc, string url, bool monitor, *hash opts, hash urlh, *string safe_url, *bool enabled) |
creates the AbstractConnection object More... | |
constructor (string name, string description, string url, hash< auto > attributes={}, hash< auto > options={}, *LoggerInterface logger) | |
creates the AbstractConnection object More... | |
object | get (bool connect=True, *hash< auto > rtopts) |
returns the underlying connection object More... | |
hash< ConfigInfo > | getConfigHash () |
returns a ConfigInfo hash of static configuration information about the connection More... | |
hash< ConnectionSchemeInfo > | getConnectionSchemeInfo () |
Returns a default ConnectionSchemeInfo hash. | |
hash< ConnectionSchemeInfo > | getConnectionSchemeInfoImpl () |
Override in subclasses to return a native ConnectionSchemeInfo hash. | |
AbstractDataProvider | getDataProvider () |
returns a data provider object for this connection, if supported More... | |
*hash< auto > | getDefaultOptions () |
returns default options | |
string | getDescription () |
Returns the connection description. More... | |
hash< auto > | getExtendedInfo (*hash< auto > opts) |
Returns connection info plus any extended information returned by the connection. More... | |
*hash< string, bool > | getFeatures () |
Returns a list of connection-defined features. More... | |
hash< ConnectionInfo > | getInfo (*hash< auto > opts) |
returns a ConnectionInfo hash of information about the connection More... | |
hash< ConnectionInfo > | getInfo (bool with_password=False) |
returns a ConnectionInfo hash of information about the connection More... | |
string | getName () |
Returns the connection name. More... | |
*hash< auto > | getOptions () |
returns static / initialization options | |
object | getPollImpl () |
Returns an unconnected object for a non-blocking poll operation. More... | |
*hash< auto > | getRealOptions () |
returns options for saving the connection's configuration information | |
*hash< auto > | getRuntimeOptions () |
returns runtime options | |
string | getSafeUrl () |
Returns the connection safe URL (without password info) More... | |
auto | getTag (string tag) |
returns the value of the given tag or NOTHING if not present | |
auto | getTagEx (string tag) |
returns the value of the given tag or throws an exception if the tag is not set with a value More... | |
hash< auto > | getTags () |
returns all tags associated with the connection | |
abstract string | getType () |
returns the string type name for the connection object | |
string | getUrl () |
Returns the connection URL. More... | |
handlePingFailed (date delta, hash< ExceptionInfo > ex) | |
Handles a failed ping operation on the connection. | |
handlePingFailed (date delta, string err) | |
Handles a failed ping operation on the connection. | |
handlePingSuccess (date delta) | |
Handles a successful ping operation on the connection. | |
bool | hasDataProvider () |
returns True if the connection returns a data provider with the getDataProvider() method More... | |
parseTextOptions () | |
this method is called when parsing connection file definitions from text files when loading into the database More... | |
hash< PingInfo > | ping (bool throw_exception=False) |
returns a hash with the results of the ping operation More... | |
Qore::AbstractPollOperation | startPollConnect () |
Called to start the connection polling operation. More... | |
bool | supportsPollingApi () |
returns True if the connection supports the Qore Socket-based polling API More... | |
Public Attributes | |
const | CF_LOGGER = "logger" |
Connection feature: Logger support. More... | |
const | CF_UPDATE_OPTIONS = "update-options" |
Connection feature: Update Options support. More... | |
bool | children_can_support_apis = False |
if the data provider or any of its children support requests (APIs) | |
bool | children_can_support_messages = False |
if the data provider or any of its children support messages | |
bool | children_can_support_observers = False |
if the data provider or any of its children support events | |
bool | children_can_support_records = False |
if the data provider or any of its children support records | |
bool | children_can_support_transactions = False |
if the data provider or any of its children support transaction management | |
bool | debug_data = False |
debug data flag; to be used an an indication for a higher-level implementation | |
string | desc |
connection description | |
bool | enabled = True |
enabled/disabled indicator flag | |
hash< auto > | internal_info |
internal tags (serializable) | |
date | last_check |
date/time of last check/ping | |
bool | locked = False |
locked/unlocked flag | |
bool | loopback = False |
set to True for loopback connections | |
bool | monitor |
monitoring flag | |
string | name |
connection name | |
*hash< auto > | opts |
connection options | |
*hash< auto > | orig_opts |
original connection options | |
string | safe_url |
"safe" URL (password information removed) | |
string | status = "not checked" |
status string; in case of a connection error this string will be the error string | |
hash< auto > | tags = {} |
connection tags; user-defined key-value pairs | |
transient hash< auto > | transient_info |
internal transient tags (non-serializable) | |
bool | up = True |
connection status flag; set by monitoring or explicit pings/connections | |
date | updated |
date/time of last update | |
string | url |
connection URL (potentially with password info) | |
hash< auto > | urlh |
broken down URL hash (as returned by Qore::parse_url()) | |
Static Public Attributes | |
static *code | post_processing |
optional code for default post-processing of objects created by getImpl() More... | |
Private Member Methods | |
*hash< string, bool > | getFeaturesImpl () |
Returns a hash of connection-defined features. More... | |
abstract object | getImpl (bool connect=True, *hash< auto > rtopts) |
this method must return the connection object corresponding to the object's configuration More... | |
string | getSafeUrl (hash< auto > urlh) |
creates a "safe" URL string with password information removed More... | |
hash< UrlInfo > | parseUrl (string url) |
Parse the URL to a hash. More... | |
pingImpl () | |
performs the internal ping More... | |
hash< PingInfo > | pingIntern (hash< PingInfo > rv) |
performs the ping by executing get(); returns a PingInfo hash | |
setChildCapabilities () | |
Override to set child data provider capabilities once per child class. | |
hash< auto > | validateOptions (hash< auto > options) |
performs options validation in the constructor More... | |
Private:Internal Member Methods | |
constructorInit (string name, string description, string url, hash< auto > attributes, hash< auto > options) | |
Common construtor implementation. More... | |
abstract base class for connections
this class can be specialized to provide for user-defined connection types
deprecated ConnectionProvider::AbstractConnection::constructor | ( | string | name, |
string | desc, | ||
string | url, | ||
bool | monitor, | ||
*hash | opts, | ||
hash | urlh, | ||
*string | safe_url, | ||
*bool | enabled | ||
) |
creates the AbstractConnection object
name | the name of the connection |
desc | connection description |
url | connection URL (potentially with password info) |
monitor | monitoring flag |
opts | connection options |
urlh | broken down URL hash (as returned by Qore::parse_url()) |
safe_url | "safe" URL (password information removed); if not set this will be set automatically by calling getSafeUrl() |
enabled | enabled/disabled flag |
ConnectionProvider::AbstractConnection::constructor | ( | string | name, |
string | description, | ||
string | url, | ||
hash< auto > | attributes = {} , |
||
hash< auto > | options = {} , |
||
*LoggerInterface | logger | ||
) |
creates the AbstractConnection object
name | the name of the connection |
description | connection description |
url | connection URL (potentially with password info) |
attributes | various attributes; see below |
options | connection options |
logger | any logger interface to use for the connection |
enabled
(bool), default True
monitor
(bool), default True
locked
(bool), default False
tags
(hash), no default valueCONNECTION-OPTION-ERROR | missing or invalid connection option |
|
private:internal |
Common construtor implementation.
CONNECTION-OPTION-ERROR | missing or invalid connection option |
object ConnectionProvider::AbstractConnection::get | ( | bool | connect = True , |
*hash< auto > | rtopts | ||
) |
returns the underlying connection object
calls getImpl() to actually acquire the connection object
hash< ConfigInfo > ConnectionProvider::AbstractConnection::getConfigHash | ( | ) |
returns a ConfigInfo hash of static configuration information about the connection
AbstractDataProvider ConnectionProvider::AbstractConnection::getDataProvider | ( | ) |
returns a data provider object for this connection, if supported
DATA-PROVIDER-ERROR | this object does not support the data provider API |
This base class method throws a DATA-PROVIDER-ERROR
exception by default; to support the data provider API, override this method in child classes
string ConnectionProvider::AbstractConnection::getDescription | ( | ) |
Returns the connection description.
hash< auto > ConnectionProvider::AbstractConnection::getExtendedInfo | ( | *hash< auto > | opts | ) |
Returns connection info plus any extended information returned by the connection.
The default implementation in the base class returns the same value as getInfo(*hash<auto>)
*hash< string, bool > ConnectionProvider::AbstractConnection::getFeatures | ( | ) |
Returns a list of connection-defined features.
|
private |
Returns a hash of connection-defined features.
This method returns no value; override in child classes to return features
|
privatepure virtual |
this method must return the connection object corresponding to the object's configuration
connect | if True then the connection should be returned connected (and if possible a round-trip "ping" of the server should be made) |
rtopts | if the object acquisition requires any runtime options, then these are passed here |
Implemented in ConnectionProvider::FtpConnection, ConnectionProvider::HttpConnection, and ConnectionProvider::InvalidConnection.
hash< ConnectionInfo > ConnectionProvider::AbstractConnection::getInfo | ( | *hash< auto > | opts | ) |
returns a ConnectionInfo hash of information about the connection
opts | connection information options; options are connection-specific; the only universal option is with_passwords: if True, then passwords are returned in the info hash |
hash< ConnectionInfo > ConnectionProvider::AbstractConnection::getInfo | ( | bool | with_password = False | ) |
returns a ConnectionInfo hash of information about the connection
with_password | determines if the password is returned or not |
string ConnectionProvider::AbstractConnection::getName | ( | ) |
Returns the connection name.
object ConnectionProvider::AbstractConnection::getPollImpl | ( | ) |
Returns an unconnected object for a non-blocking poll operation.
string ConnectionProvider::AbstractConnection::getSafeUrl | ( | ) |
Returns the connection safe URL (without password info)
|
private |
creates a "safe" URL string with password information removed
urlh | a parsed hash (as returned from parseUrl() |
This base/default implementation expects the urlh
as returned by Qore::parse_url())
The public attribute safe_url
is created from the url
calling AbstractConnection::getSafeUrl(). Reimplement this method if your connection does not follow the standard URL format like:
auto ConnectionProvider::AbstractConnection::getTagEx | ( | string | tag | ) |
returns the value of the given tag or throws an exception if the tag is not set with a value
TAG-ERROR | the given tag is not set on the connection |
string ConnectionProvider::AbstractConnection::getUrl | ( | ) |
Returns the connection URL.
bool ConnectionProvider::AbstractConnection::hasDataProvider | ( | ) |
returns True if the connection returns a data provider with the getDataProvider() method
This base class method returns False; to support the data provider API, override this method in child classes
ConnectionProvider::AbstractConnection::parseTextOptions | ( | ) |
this method is called when parsing connection file definitions from text files when loading into the database
reimplement this method in subclasses to parse the option hash as set from a text file if needed (for special option formats, etc)
|
private |
Parse the URL to a hash.
url | a string with url |
The base implementation calls Qore::parse_url().
Reimplement parseUrl()
if your connection uses different URL scheme. Like eg. Qore::Datasource connection string.
hash< PingInfo > ConnectionProvider::AbstractConnection::ping | ( | bool | throw_exception = False | ) |
returns a hash with the results of the ping operation
throw_exception | throw an exception if a connection error occurs |
|
private |
performs the internal ping
By default this creates a new connection only; override in child classes to implement additional ping logic
Qore::AbstractPollOperation ConnectionProvider::AbstractConnection::startPollConnect | ( | ) |
Called to start the connection polling operation.
Only called if the connection supports the polling API
bool ConnectionProvider::AbstractConnection::supportsPollingApi | ( | ) |
returns True if the connection supports the Qore Socket-based polling API
This base class method returns False; to support the new polling API, override this method in child classes
|
private |
performs options validation in the constructor
options | a hash with options from the constructor |
This method can be overloaded in connections where are options created dynamically for example
CONNECTION-OPTION-ERROR | missing or invalid connection option |
const ConnectionProvider::AbstractConnection::CF_LOGGER = "logger" |
Connection feature: Logger support.
Indicates that connection objects support setting / updating a logger interface object in the connection
const ConnectionProvider::AbstractConnection::CF_UPDATE_OPTIONS = "update-options" |
Connection feature: Update Options support.
Returned as a connection feature indicating that the connection object inherits UpdateOptionsInterface and therefore supports setting a closure to update connection options in external systems (in blocking I/O calls)
|
static |
optional code for default post-processing of objects created by getImpl()
must take the connection object and the object created as arguments