ConnectionProvider::AbstractConnection Class Referenceabstract

abstract base class for connections More...

Inheritance diagram for ConnectionProvider::AbstractConnection:
[legend]

## 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< ConfigInfo > | getConfigHash ()
| returns a ConfigInfo hash of static configuration information about the connection More...
*hash | getDefaultOptions ()
| returns default options
hash< ConnectionInfo > | getInfo (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< PingInfo > | ping (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< PingInfo > | pingIntern (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_name | the name of the connection
  n_desc | connection description
  n_url | connection URL (potentially with password info)
  n_monitor | monitoring flag
  n_opts | connection options
  n_urlh | broken 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
| ) |  |

private pure virtual

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

Parameters

  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

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_password | determines if the password is returned or not

Returns
  a ConnectionInfo hash of information about the connection

## getSafeUrl()

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

static private

creates a "safe" URL string with password information removed

Parameters

  urlh | broken 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_exception | throw an exception if a connection error occurs

Returns
  a PingInfo hash