Qore ConnectionProvider Module Reference 2.0
Loading...
Searching...
No Matches
ConnectionProvider::AbstractConnection Class Referenceabstract

Abstract base class for connections. More...

#include <AbstractConnection.qc.dox.h>

Inheritance diagram for ConnectionProvider::AbstractConnection:
[legend]

Public Member Methods

 constructor (hash< auto > config, *hash< auto > attr)
 creates the AbstractConnection object More...
 
deprecated constructor (string name, string desc, string url, bool monitor, *hash opts, hash urlh, *string safe_url, *bool enabled)
 creates the AbstractConnection object More...
 
deprecated 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< ConfigInfogetConfigHash ()
 returns a ConfigInfo hash of static configuration information about the connection More...
 
*hash< auto > getConnectionOptions (*hash< auto > rtopts)
 returns options for creating a new connection
 
hash< ConnectionSchemeInfogetConnectionSchemeInfo ()
 Returns a default ConnectionSchemeInfo hash.
 
hash< ConnectionSchemeInfogetConnectionSchemeInfoImpl ()
 Override in subclasses to return a native ConnectionSchemeInfo hash.
 
AbstractDataProvider getDataProvider (*hash< auto > constructor_options)
 returns a data provider object for this connection, if supported More...
 
AbstractDataProvider getDataProvider (string subtype, *hash< auto > constructor_options)
 Returns a data provider object for the connection and subtype passed as an argument. More...
 
*hash< string, hash< DataProviderOptionInfo > > getDataProviderConstructorOptions ()
 Returns a hash of data provider constructor option info, if applicable. More...
 
*hash< string, *hash< string, hash< DataProviderOptionInfo > > > getDataProviderSubtypes ()
 Returns a hash of supported data provider subtypes and constructor option info. More...
 
*hash< auto > getDefaultOptions ()
 returns default options
 
string getDescription ()
 Returns the connection description. More...
 
string getDisplayName ()
 Returns the connection display name. More...
 
hash< auto > getExtendedInfo (*hash< auto > opts)
 Returns connection info plus any extended information returned by the connection. More...
 
hash< auto > getExtendedInfoAsData (*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< ConnectionInfogetInfo (*hash< auto > opts)
 returns a ConnectionInfo hash of information about the connection More...
 
hash< ConnectionInfogetInfo (bool with_password=False)
 returns a ConnectionInfo hash of information about the connection More...
 
hash< ConnectionDataInfogetInfoAsData (*hash< auto > opts)
 Returns a ConnectionDataInfo 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...
 
string getShortDescription ()
 Returns the connection short description. 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...
 
bool needsAuth ()
 Returns True if the connection requires OAuth2 authorization before it can be used. More...
 
 parseTextOptions ()
 this method is called when parsing connection file definitions from text files when loading into the database More...
 
hash< PingInfoping (bool throw_exception)
 returns a hash with the results of the ping operation More...
 
hash< PingInfoping (int ping_flags=0)
 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...
 

Static Public Member Methods

static hash< ConnectionOptionInfogetConnectionOptionInfo (hash< DataProviderOptionInfo > dinfo)
 Returns a ConnectionOptionInfo hash from a DataProviderOptionInfo hash.
 
static hash< string, hash< ConnectionOptionInfo > > getConnectionOptionInfo (hash< string, hash< DataProviderOptionInfo > > dinfo)
 Returns a hash of ConnectionOptionInfo hashes from a hash of DataProviderOptionInfo hashes.
 
- Static Public Member Methods inherited from ConnectionProvider::OptionHelper
static *bool getBool (*hash< auto > opts, string key, *bool required, *bool default_value)
 Returns a boolean value from a hash.
 
static *hash< auto > getHash (*hash< auto > opts, string key, *bool required, *hash< auto > default_value)
 Returns a hash value from a hash.
 
static *int getInt (*hash< auto > opts, string key, *bool required, *int default_value)
 Gets an integer option.
 
static auto getOptionType (*hash< auto > opts, string key, int type_code, string type_name, *bool required, auto default_value)
 gets an option value of the given type
 
static *string getString (*hash< auto > opts, string key, *bool required, *string default_value)
 Returns a string value from a hash.
 

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
 
const CommonConnectionKeys = ...
 Connection info keys mapped 1:1 to DataProviderOptionInfo keys.
 
bool debug_data = False
 debug data flag; to be used an an indication for a higher-level implementation
 
const DefaultDescription = "n/a; update connection to use the `AbstractConnectionWithInfo` class instead"
 Default option description.
 
string desc
 Connection description with markdown formatting.
 
bool disable_automatic_pings
 If automatic pings are disabled.
 
string display_name
 Display name.
 
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 short_desc
 Connection short description in plain text.
 
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, hash< DataProviderOptionInfo > > getDataProviderConstructorOptionsImpl ()
 Returns a hash of data provider constructor option info, if applicable. More...
 
AbstractDataProvider getDataProviderImpl (string subtype, *hash< auto > constructor_options)
 returns a data provider object for the connection and subtype passed as an argument More...
 
*hash< string, *hash< string, hash< DataProviderOptionInfo > > > getDataProviderSubtypesImpl ()
 Returns a hash of supported data provider subtypes. More...
 
*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< auto > getSubtypeOptions (*hash< string, hash< DataProviderOptionInfo > > subtype_options, *hash< auto > constructor_options)
 Returns options for each data provider subtype. More...
 
hash< UrlInfo > parseUrl (string url)
 Parse the URL to a hash. More...
 
 pingImpl ()
 performs the internal ping More...
 
hash< PingInfopingIntern (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, bool check_required=True)
 performs options validation in the constructor More...
 

Private:Internal Member Methods

 constructorInit (hash< auto > config, *hash< auto > attr)
 Common construtor implementation. More...
 

Detailed Description

Abstract base class for connections.

this class can be specialized to provide for user-defined connection types

Deprecated:
use AbstractConnectionWithInfo instead

Member Function Documentation

◆ constructor() [1/3]

ConnectionProvider::AbstractConnection::constructor ( hash< auto >  config,
*hash< auto >  attr 
)

creates the AbstractConnection object

Parameters
configwith the following keys:
  • name (required string): the connection name
  • display_name (optional string): the display name
  • short_desc (optional string): a short description in plain text
  • desc (optional string): a long description with markdown formatting
  • url (required string): the connection URL
  • opts (optional hash): connection options
  • logger (optional LoggerInterface object): logger for the connection
attroptional connection attributes
  • monitor (optional bool): should the connection be monitored? Default: True
  • enabled (optional bool): is the connection enabled? Default: True
  • locked (optional bool): is the connection locked? Default: False
  • debug_data (optional bool): debug data? Default: False
  • tags (optional hash): tags for the connection; no default value
Exceptions
CONNECTION-OPTION-ERRORmissing or invalid connection option or attribute
CONNECTION-URL-ERRORURL is invalid, because it contains control characters

◆ constructor() [2/3]

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

Parameters
namethe name of the connection
descconnection description
urlconnection URL (potentially with password info)
monitormonitoring flag
optsconnection options
urlhbroken 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()
enabledenabled/disabled flag
Note
use constructor(hash<auto> config, *hash<auto> attr instead
Exceptions
CONNECTION-OPTION-ERRORmissing or invalid connection option or attribute
CONNECTION-URL-ERRORURL is invalid, because it contains control characters

◆ constructor() [3/3]

deprecated ConnectionProvider::AbstractConnection::constructor ( string  name,
string  description,
string  url,
hash< auto >  attributes = {},
hash< auto >  options = {},
*LoggerInterface  logger 
)

creates the AbstractConnection object

Parameters
namethe name of the connection
descriptionconnection description
urlconnection URL (potentially with password info)
attributesvarious attributes; see below
optionsconnection options
loggerany logger interface to use for the connection
Attributes
Attributes are special flags for given connection - stored as public attributes of the object instance. For now there are:
  • enabled (bool), default True
  • monitor (bool), default True
  • locked (bool), default False
  • tags (hash), no default value
Exceptions
CONNECTION-OPTION-ERRORmissing or invalid connection option or attribute
CONNECTION-URL-ERRORURL is invalid, because it contains control characters
Note
use constructor(hash<auto> config, *hash<auto> attr instead

◆ constructorInit()

ConnectionProvider::AbstractConnection::constructorInit ( hash< auto >  config,
*hash< auto >  attr 
)
private:internal

Common construtor implementation.

Parameters
configwith the following keys:
  • name (required string): the connection name
  • display_name (optional string): the display name
  • short_desc (optional string): a short description in plain text
  • desc (optional string): a long description with markdown formatting
  • url (required string): the connection URL
  • opts (optional hash): connection options
  • logger (optional LoggerInterface object): logger for the connection
attroptional connection attributes
  • monitor (optional bool): should the connection be monitored?
  • enabled (optional bool): is the connection enabled?
  • locked (optional bool): is the connection locked?
  • debug_data (optional bool): debug data?
  • tags (optional hash): tags for the connection
Exceptions
CONNECTION-OPTION-ERRORmissing or invalid connection option
CONNECTION-URL-ERRORURL is invalid, because it contains control characters

◆ get()

object ConnectionProvider::AbstractConnection::get ( bool  connect = True,
*hash< auto >  rtopts 
)

returns the underlying connection object

calls getImpl() to actually acquire the connection object

◆ getConfigHash()

hash< ConfigInfo > ConnectionProvider::AbstractConnection::getConfigHash ( )

returns a ConfigInfo hash of static configuration information about the connection

Returns
a ConfigInfo hash of static configuration information about the connection

◆ getDataProvider() [1/2]

AbstractDataProvider ConnectionProvider::AbstractConnection::getDataProvider ( *hash< auto >  constructor_options)

returns a data provider object for this connection, if supported

Parameters
constructor_optionsany additional constructor options for the data provider
Returns
a data provider object for this connection, if supported
Exceptions
DATA-PROVIDER-ERRORthis 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

See also
hasDataProvider()
Since

◆ getDataProvider() [2/2]

AbstractDataProvider ConnectionProvider::AbstractConnection::getDataProvider ( string  subtype,
*hash< auto >  constructor_options 
)

Returns a data provider object for the connection and subtype passed as an argument.

Parameters
subtypethe subtype of data provider supported, in case the connection can return multiple data providers
constructor_optionsany additional constructor options required by the data provider
Returns
a data provider object for the connection and subtype passed as an argument
Exceptions
DATA-PROVIDER-ERRORthis object does not support the data provider API or the given subtype is not valid
See also
Since
ConnectionProvider 2.0

◆ getDataProviderConstructorOptions()

*hash< string, hash< DataProviderOptionInfo > > ConnectionProvider::AbstractConnection::getDataProviderConstructorOptions ( )

Returns a hash of data provider constructor option info, if applicable.

Returns
a hash of data provider constructor option info for the primary data provider, if applicable
Since
ConnectionProvider 2.0

◆ getDataProviderConstructorOptionsImpl()

*hash< string, hash< DataProviderOptionInfo > > ConnectionProvider::AbstractConnection::getDataProviderConstructorOptionsImpl ( )
private

Returns a hash of data provider constructor option info, if applicable.

Returns
a hash of data provider constructor option info for the primary data provider, if applicable
Since
ConnectionProvider 2.0

◆ getDataProviderImpl()

AbstractDataProvider ConnectionProvider::AbstractConnection::getDataProviderImpl ( string  subtype,
*hash< auto >  constructor_options 
)
private

returns a data provider object for the connection and subtype passed as an argument

Parameters
subtypethe subtype of data provider supported, in case the connection can return multiple data providers
constructor_optionsany additional constructor options required by the data provider
Returns
a data provider object for the connection and subtype passed as an argument
Exceptions
DATA-PROVIDER-ERRORthis object does not support the data provider API or the given subtype is not valid

This base class method throws a DATA-PROVIDER-ERROR exception by default; to support the data provider API, override this method in child classes

See also
Since
ConnectionProvider 2.0

◆ getDataProviderSubtypes()

*hash< string, *hash< string, hash< DataProviderOptionInfo > > > ConnectionProvider::AbstractConnection::getDataProviderSubtypes ( )

Returns a hash of supported data provider subtypes and constructor option info.

Returns
a hash of supported data provider subtypes and constructor option info; top-level keys are data provider subtypes supported by this connection, values are hashes of data provider constructor option information
Since
ConnectionProvider 2.0

◆ getDataProviderSubtypesImpl()

*hash< string, *hash< string, hash< DataProviderOptionInfo > > > ConnectionProvider::AbstractConnection::getDataProviderSubtypesImpl ( )
private

Returns a hash of supported data provider subtypes.

Returns
a hash of supported data provider subtypes
Since
ConnectionProvider 2.0

◆ getDescription()

string ConnectionProvider::AbstractConnection::getDescription ( )

Returns the connection description.

Returns
the connection description
Since
ConnectionProvider 1.7

◆ getDisplayName()

string ConnectionProvider::AbstractConnection::getDisplayName ( )

Returns the connection display name.

Returns
the connection display name
Since
ConnectionProvider 2.0

◆ getExtendedInfo()

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>)

Parameters
optsconnection information options; options are connection-specific; the only universal option is with_passwords: if True, then passwords are returned in the info hash
Returns
Connection info plus any extended information returned by the connection
Note
Some of the information in this hash may be non-serializable objects, for a method that returns only serializable information about the connection, see getExtendedInfoAsData()
Since
ConnectionProvider 1.5

◆ getExtendedInfoAsData()

hash< auto > ConnectionProvider::AbstractConnection::getExtendedInfoAsData ( *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 getInfoAsData(*hash<auto>)

Parameters
optsconnection information options; options are connection-specific; the only universal option is with_passwords: if True, then passwords are returned in the info hash
Returns
Connection info plus any extended information returned by the connection
Note
All the information in this hash is data; some info in the output of getExtendedInfo() may be objects
Since
ConnectionProvider 2.0

◆ getFeatures()

*hash< string, bool > ConnectionProvider::AbstractConnection::getFeatures ( )

Returns a list of connection-defined features.

Since
ConnectionProvider 1.10

◆ getFeaturesImpl()

*hash< string, bool > ConnectionProvider::AbstractConnection::getFeaturesImpl ( )
private

Returns a hash of connection-defined features.

This method returns no value; override in child classes to return features

Since
ConnectionProvider 1.10

◆ getImpl()

abstract object ConnectionProvider::AbstractConnection::getImpl ( bool  connect = True,
*hash< auto >  rtopts 
)
privatepure virtual

this method must return the connection object corresponding to the object's configuration

Parameters
connectif True then the connection should be returned connected (and if possible a round-trip "ping" of the server should be made)
rtoptsif the object acquisition requires any runtime options, then these are passed here
Returns
the connection object

Implemented in ConnectionProvider::FtpConnection, ConnectionProvider::HttpConnection, and ConnectionProvider::InvalidConnection.

◆ getInfo() [1/2]

hash< ConnectionInfo > ConnectionProvider::AbstractConnection::getInfo ( *hash< auto >  opts)

returns a ConnectionInfo hash of information about the connection

Parameters
optsconnection information options; options are connection-specific; the only universal option is with_passwords: if True, then passwords are returned in the info hash
Returns
a ConnectionInfo hash of information about the connection
Note
Some of the information in this hash may be non-serializable objects, for a method that returns only serializable information about the connection, see getInfoAsData()

◆ getInfo() [2/2]

hash< ConnectionInfo > ConnectionProvider::AbstractConnection::getInfo ( bool  with_password = False)

returns a ConnectionInfo hash of information about the connection

Parameters
with_passworddetermines if the password is returned or not
Returns
a ConnectionInfo hash of information about the connection
Deprecated:
use getInfo(*hash<auto> opts) instead

◆ getInfoAsData()

hash< ConnectionDataInfo > ConnectionProvider::AbstractConnection::getInfoAsData ( *hash< auto >  opts)

Returns a ConnectionDataInfo hash of information about the connection.

Parameters
optsconnection information options; options are connection-specific; the only universal option is with_passwords: if True, then passwords are returned in the info hash
Returns
a ConnectionDataInfo hash of information about the connection
Note
All the information in this hash is data; some info in the output of getInfo() may be objects
Since
ConnectionProvider 2.0

◆ getName()

string ConnectionProvider::AbstractConnection::getName ( )

Returns the connection name.

Returns
the connection name
Since
ConnectionProvider 1.7

◆ getPollImpl()

object ConnectionProvider::AbstractConnection::getPollImpl ( )

Returns an unconnected object for a non-blocking poll operation.

Returns
an unconnected object for a non-blocking poll operation
Since
ConnectionProvider 1.7.1

◆ getSafeUrl() [1/2]

string ConnectionProvider::AbstractConnection::getSafeUrl ( )

Returns the connection safe URL (without password info)

Returns
the connection safe URL (without password info)
Since
ConnectionProvider 1.7

◆ getSafeUrl() [2/2]

string ConnectionProvider::AbstractConnection::getSafeUrl ( hash< auto >  urlh)
private

creates a "safe" URL string with password information removed

Parameters
urlha parsed hash (as returned from parseUrl()
Returns
string with safe URL

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:

scheme://user:pass@hostname:port/path

◆ getShortDescription()

string ConnectionProvider::AbstractConnection::getShortDescription ( )

Returns the connection short description.

Returns
the connection short description
Since
ConnectionProvider 2.0

◆ getSubtypeOptions()

*hash< auto > ConnectionProvider::AbstractConnection::getSubtypeOptions ( *hash< string, hash< DataProviderOptionInfo > >  subtype_options,
*hash< auto >  constructor_options 
)
private

Returns options for each data provider subtype.

Parameters
constructor_optionsany additional constructor options required by the data provider

◆ getTagEx()

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

Exceptions
TAG-ERRORthe given tag is not set on the connection

◆ getUrl()

string ConnectionProvider::AbstractConnection::getUrl ( )

Returns the connection URL.

Returns
the connection URL
Since
ConnectionProvider 1.7

◆ hasDataProvider()

bool ConnectionProvider::AbstractConnection::hasDataProvider ( )

returns True if the connection returns a data provider with the getDataProvider() method

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

See also
getDataProvider()
Since
ConnectionProvider 1.3

◆ needsAuth()

bool ConnectionProvider::AbstractConnection::needsAuth ( )

Returns True if the connection requires OAuth2 authorization before it can be used.

Returns
True if the connection requires OAuth2 authorization, False if already authorized, or the connection does not support authorization

This base class method returns False by default

Since
ConnectionProvider 2.0

◆ parseTextOptions()

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)

◆ parseUrl()

hash< UrlInfo > ConnectionProvider::AbstractConnection::parseUrl ( string  url)
private

Parse the URL to a hash.

Parameters
urla string with url
Returns
hash untyped, depends on the parsing method

The base implementation calls Qore::parse_url().

Reimplement parseUrl() if your connection uses different URL scheme. Like eg. Qore::Datasource connection string.

◆ ping() [1/2]

hash< PingInfo > ConnectionProvider::AbstractConnection::ping ( bool  throw_exception)

returns a hash with the results of the ping operation

Parameters
throw_exceptionthrow an exception if a connection error occurs
Returns
a PingInfo hash

◆ ping() [2/2]

hash< PingInfo > ConnectionProvider::AbstractConnection::ping ( int  ping_flags = 0)

returns a hash with the results of the ping operation

Parameters
ping_flagssee Ping Flags for more information
Returns
a PingInfo hash
Since
ConnectionProvider 2.0

◆ pingImpl()

ConnectionProvider::AbstractConnection::pingImpl ( )
private

performs the internal ping

By default this creates a new connection only; override in child classes to implement additional ping logic

◆ startPollConnect()

Qore::AbstractPollOperation ConnectionProvider::AbstractConnection::startPollConnect ( )

Called to start the connection polling operation.

Only called if the connection supports the polling API

Returns
a socket poll operation object that will allow the connection goal to be reached with polling
See also
supportsPollingApi()
Since
ConnectionProvider 1.7

◆ supportsPollingApi()

bool ConnectionProvider::AbstractConnection::supportsPollingApi ( )

returns True if the connection supports the Qore Socket-based polling API

Returns
True if the connection supports the polling API where multiple connections can be polled from a single thread

This base class method returns False; to support the new polling API, override this method in child classes

See also
  • startConnectPoll()
Since
ConnectionProvider 1.7

◆ validateOptions()

hash< auto > ConnectionProvider::AbstractConnection::validateOptions ( hash< auto >  options,
bool  check_required = True 
)
private

performs options validation in the constructor

Parameters
optionsa hash with options from the constructor
check_requiredcheck that all required options are set
Returns
validated option hash

This method can be overloaded in connections where are options created dynamically for example

Exceptions
CONNECTION-OPTION-ERRORmissing or invalid connection option

Member Data Documentation

◆ CF_LOGGER

const ConnectionProvider::AbstractConnection::CF_LOGGER = "logger"

Connection feature: Logger support.

Indicates that connection objects support setting / updating a logger interface object in the connection

◆ CF_UPDATE_OPTIONS

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)

See also
UpdateOptionsInterface

◆ post_processing

*code ConnectionProvider::AbstractConnection::post_processing
static

optional code for default post-processing of objects created by getImpl()

must take the connection object and the object created as arguments