Qore ConnectionProvider Module Reference  1.0.1
ConnectionProvider::AbstractConnection Class Referenceabstract

abstract base class for connections More...

Inheritance diagram for ConnectionProvider::AbstractConnection:

Public Member Functions

 constructor (string n_name, string n_desc, string n_url, bool n_monitor, *hash n_opts, hash n_urlh, *string n_safe_url)
 creates the AbstractConnection object More...
 
object get (bool connect=True, *hash rtopts)
 returns the underlying connection object More...
 
hash< ConfigInfogetConfigHash ()
 returns a ConfigInfo hash of static configuration information about the connection More...
 
*hash getDefaultOptions ()
 returns default options
 
hash< ConnectionInfogetInfo (bool with_password=False)
 returns a ConnectionInfo hash of information about the connection More...
 
*hash getOptions ()
 returns static / initialization options
 
*hash getRealOptions ()
 returns options for saving the connection's configuration information
 
*hash getRuntimeOptions ()
 returns runtime options
 
abstract string getType ()
 returns the string type name for the connection object
 
 parseTextOptions ()
 this method is called when parsing connection file definitions from text files when loading into the database More...
 
hash< PingInfoping (bool throw_exception=False)
 returns a hash with the results of the ping operation More...
 

Public Attributes

string desc
 connection description
 
date last_check
 date/time of last check/ping
 
bool loopback = False
 set to True for loopback connections
 
bool monitor
 monitoring flag
 
string name
 connection name
 
*hash opts
 connection options
 
*hash 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
 
bool up = False
 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 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(); must take the object created and the connection name as arguments
 

Private Member Functions

abstract object getImpl (bool connect=True, *hash rtopts)
 this method must return the connection object corresponding to the object's configuration More...
 
hash< PingInfopingIntern (hash< PingInfo > rv)
 performs the ping by executing get(); returns a PingInfo hash
 

Static Private Member Functions

static string getSafeUrl (hash urlh)
 creates a "safe" URL string with password information removed More...
 

Detailed Description

abstract base class for connections

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

Member Function Documentation

◆ constructor()

ConnectionProvider::AbstractConnection::constructor ( string  n_name,
string  n_desc,
string  n_url,
bool  n_monitor,
*hash  n_opts,
hash  n_urlh,
*string  n_safe_url 
)

creates the AbstractConnection object

Parameters
n_namethe name of the connection
n_descconnection description
n_urlconnection URL (potentially with password info)
n_monitormonitoring flag
n_optsconnection options
n_urlhbroken down URL hash (as returned by Qore::parse_url())
n_safe_url"safe" URL (password information removed); if not set this will be set automatically by calling getSafeUrl()

◆ get()

object ConnectionProvider::AbstractConnection::get ( bool  connect = True,
*hash  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

◆ getImpl()

abstract object ConnectionProvider::AbstractConnection::getImpl ( bool  connect = True,
*hash  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::FilesystemConnection, ConnectionProvider::HttpConnection, ConnectionProvider::FtpConnection, and ConnectionProvider::InvalidConnection.

◆ getInfo()

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

◆ getSafeUrl()

static string ConnectionProvider::AbstractConnection::getSafeUrl ( hash  urlh)
staticprivate

creates a "safe" URL string with password information removed

Parameters
urlhbroken down URL hash (as returned by Qore::parse_url())
Returns
a "safe" URL string with password information removed

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

◆ ping()

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

returns a hash with the results of the ping operation

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