![]()  | 
  
    Qore ConnectionProvider Module Reference 1.9.2
    
   | 
 
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={}) | |
| 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< 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 | |
| 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 = 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< 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 | |
| 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 | |
| internal | 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
      
  | 
  inline | 
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 = {}  | 
        ||
| ) | 
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 | 
enabled (bool), default True monitor (bool), default True locked (bool), default False tags (hash), no default value| CONNECTION-OPTION-ERROR | missing or invalid connection option | 
      
  | 
  inlineprivate: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>)
      
  | 
  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, and ConnectionProvider::HttpConnection.
| 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 | 
      
  | 
  static | 
optional code for default post-processing of objects created by getImpl()
must take the connection object and the object created as arguments