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

class for FTP connections; returns Qore::FtpClient objects More...

#include <FtpConnection.qc.dox.h>

Inheritance diagram for ConnectionProvider::FtpConnection:
[legend]

Public Member Methods

 constructor (hash< auto > config, *hash< auto > attr)
 creates the FtpConnection object
 
 constructor (string name, string description, string url, hash< auto > attributes={}, hash< auto > options={}, *Logger logger)
 creates the FtpConnection object
 
DataProvider::AbstractDataProvider getDataProvider (*hash< auto > constructor_options)
 returns an FtpClientDataProvider object for this connection
 
*hash< auto > getRuntimeOptions ()
 returns runtime options
 
string getType ()
 returns "ftp"
 
bool hasDataProvider ()
 returns True, as the connection returns a data provider with the getDataProvider() method
 
- Public Member Methods inherited from ConnectionProvider::AbstractConnectionWithInfo
 constructor (hash< auto > config, *hash< auto > attr)
 creates the AbstractConnectionWithInfo object
 
 constructor (string name, string description, string url, hash< auto > attributes={}, hash< auto > options={}, *Logger logger)
 creates the AbstractConnectionWithInfo object
 
hash< ConnectionSchemeInfogetConnectionSchemeInfo ()
 Returns the ConnectionSchemeInfo hash for this object.
 
*hash< auto > getDefaultOptions ()
 returns default options
 
*hash< auto > getOptions ()
 returns static / initialization options
 
- Public Member Methods inherited from ConnectionProvider::AbstractConnection
 constructor (hash< auto > config, *hash< auto > attr)
 creates the AbstractConnection object
 
deprecated constructor (string name, string desc, string url, bool monitor, *hash opts, hash urlh, *string safe_url, *bool enabled)
 creates the AbstractConnection object
 
deprecated constructor (string name, string description, string url, hash< auto > attributes={}, hash< auto > options={}, *LoggerInterface logger)
 creates the AbstractConnection object
 
object get (bool connect=True, *hash< auto > rtopts)
 returns the underlying connection object
 
hash< ConfigInfogetConfigHash ()
 returns a ConfigInfo hash of static configuration information about the connection
 
*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
 
AbstractDataProvider getDataProvider (string subtype, *hash< auto > constructor_options)
 Returns a data provider object for the connection and subtype passed as an argument.
 
*hash< string, hash< DataProviderOptionInfo > > getDataProviderConstructorOptions ()
 Returns a hash of data provider constructor option info, if applicable.
 
*hash< string, *hash< string, hash< DataProviderOptionInfo > > > getDataProviderSubtypes ()
 Returns a hash of supported data provider subtypes and constructor option info.
 
*hash< auto > getDefaultOptions ()
 returns default options
 
string getDescription ()
 Returns the connection description.
 
string getDisplayName ()
 Returns the connection display name.
 
hash< auto > getExtendedInfo (*hash< auto > opts)
 Returns connection info plus any extended information returned by the connection.
 
hash< auto > getExtendedInfoAsData (*hash< auto > opts)
 Returns connection info plus any extended information returned by the connection.
 
*hash< string, bool > getFeatures ()
 Returns a list of connection-defined features.
 
hash< ConnectionInfogetInfo (*hash< auto > opts)
 returns a ConnectionInfo hash of information about the connection
 
hash< ConnectionInfogetInfo (bool with_password=False)
 returns a ConnectionInfo hash of information about the connection
 
hash< ConnectionDataInfogetInfoAsData (*hash< auto > opts)
 Returns a ConnectionDataInfo hash of information about the connection.
 
string getName ()
 Returns the connection name.
 
*hash< auto > getOptions ()
 returns static / initialization options
 
object getPollImpl ()
 Returns an unconnected object for a non-blocking poll operation.
 
*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)
 
string getShortDescription ()
 Returns the connection short description.
 
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
 
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.
 
 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
 
bool needsAuth ()
 Returns True if the connection requires OAuth2 authorization before it can be used.
 
 parseTextOptions ()
 this method is called when parsing connection file definitions from text files when loading into the database
 
hash< PingInfoping (bool throw_exception)
 returns a hash with the results of the ping operation
 
hash< PingInfoping (int ping_flags=0)
 returns a hash with the results of the ping operation
 
Qore::AbstractPollOperation startPollConnect ()
 Called to start the connection polling operation.
 
bool supportsPollingApi ()
 returns True if the connection supports the Qore Socket-based polling API
 

Public Attributes

const ConnectionScheme = ...
 Connection entry info.
 
const DataProviderSubtypeMap = ...
 Data provider subtypes supported.
 
- Public Attributes inherited from ConnectionProvider::AbstractConnection
const CF_LOGGER = "logger"
 Connection feature: Logger support.
 
const CF_UPDATE_OPTIONS = "update-options"
 Connection feature: Update Options support.
 
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())
 

Private Member Methods

 checkSubtypeInfo ()
 Verifies that subtype info has been loaded from external modules.
 
hash< ConnectionSchemeInfogetConnectionSchemeInfoImpl ()
 Returns the ConnectionSchemeInfo hash for this object.
 
AbstractDataProvider getDataProviderImpl (string subtype, *hash< auto > constructor_options)
 returns a data provider object for the connection and subtype passed as an argument
 
*hash< string, *hash< string, hash< DataProviderOptionInfo > > > getDataProviderSubtypesImpl ()
 Returns a hash of supported data provider subtypes.
 
FtpClient getImpl (bool connect=True, *hash< auto > rtopts)
 Returns an FtpClient object.
 
 loadSubtypeInfo ()
 Loads subtype info from external modules.
 
 setChildCapabilities ()
 Sets child data provider capabilities.
 
- Private Member Methods inherited from ConnectionProvider::AbstractConnectionWithInfo
abstract hash< ConnectionSchemeInfogetConnectionSchemeInfoImpl ()
 Returns the ConnectionSchemeInfo hash for this object.
 
- Private Member Methods inherited from ConnectionProvider::AbstractConnection
*hash< string, hash< DataProviderOptionInfo > > getDataProviderConstructorOptionsImpl ()
 Returns a hash of data provider constructor option info, if applicable.
 
AbstractDataProvider getDataProviderImpl (string subtype, *hash< auto > constructor_options)
 returns a data provider object for the connection and subtype passed as an argument
 
*hash< string, *hash< string, hash< DataProviderOptionInfo > > > getDataProviderSubtypesImpl ()
 Returns a hash of supported data provider subtypes.
 
*hash< string, bool > getFeaturesImpl ()
 Returns a hash of connection-defined features.
 
abstract object getImpl (bool connect=True, *hash< auto > rtopts)
 this method must return the connection object corresponding to the object's configuration
 
string getSafeUrl (hash< auto > urlh)
 creates a "safe" URL string with password information removed
 
*hash< auto > getSubtypeOptions (*hash< string, hash< DataProviderOptionInfo > > subtype_options, *hash< auto > constructor_options)
 Returns options for each data provider subtype.
 
hash< UrlInfo > parseUrl (string url)
 Parse the URL to a hash.
 
 pingImpl ()
 performs the internal ping
 
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
 

Static Private Member Methods

static Mutex subtype_lck ()
 Data provider subtype lock.
 

Static Private Attributes

static hash< string, *hash< string, hash< DataProviderOptionInfo > > > subtype_info
 Data provider subtype info.
 

Additional Inherited Members

- Static Public Member Methods inherited from ConnectionProvider::AbstractConnection
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 string getRealUrl (string url, hash< ConnectionSchemeInfo > info, string type)
 Returns the real URL for a connection URL.
 
- 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.
 
- Static Public Attributes inherited from ConnectionProvider::AbstractConnection
static *code post_processing
 optional code for default post-processing of objects created by getImpl()
 

Detailed Description

class for FTP connections; returns Qore::FtpClient objects

supports the following runtime options in getImpl():

  • "path": overrides the path component in the URL at runtime
  • "path_add": appends the given string to the path component of the URL at runtime

Member Function Documentation

◆ checkSubtypeInfo()

ConnectionProvider::FtpConnection::checkSubtypeInfo ( )
private

Verifies that subtype info has been loaded from external modules.

Since
ConnectionProvider 2.0

◆ constructor() [1/2]

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

creates the FtpConnection 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

◆ constructor() [2/2]

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

creates the FtpConnection object

Parameters
namethe name of the connection
descriptionconnection description
urlconnection URL (potentially with password info)
attributesvarious attributes. See below
optionsconnection options

See AbstractConnection::constructor() for attributes and options reference.

Exceptions
CONNECTION-OPTION-ERRORmissing or invalid connection option

◆ getDataProvider()

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

returns an FtpClientDataProvider object for this connection

Parameters
constructor_optionsany additional constructor options for the data provider
Returns
an FtpClientDataProvider object for this connection
See also
hasDataProvider()

◆ getDataProviderImpl()

AbstractDataProvider ConnectionProvider::FtpConnection::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
See also
Since
ConnectionProvider 2.0

◆ getDataProviderSubtypesImpl()

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

Returns a hash of supported data provider subtypes.

Returns
a hash of supported data provider subtypes
Since
ConnectionProvider 2.0

◆ getImpl()

FtpClient ConnectionProvider::FtpConnection::getImpl ( bool  connect = True,
*hash< auto >  rtopts 
)
private

Returns an FtpClient object.

Parameters
connectif True then a connection is made any if there is any path in the URL a CWD operation is performed to change to the target directory
rtoptsthis connection type does not accept any runtime option, so this parameter is ignored

◆ getRuntimeOptions()

*hash< auto > ConnectionProvider::FtpConnection::getRuntimeOptions ( )

returns runtime options

return a hash with the following keys reflecting support for the corresponding runtime options in getImpl():

  • "path": overrides the path component in the URL at runtime
  • "path_add": appends the given string to the path component of the URL at runtime

◆ hasDataProvider()

bool ConnectionProvider::FtpConnection::hasDataProvider ( )

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

Returns
True, as the connection returns a data provider with the getDataProvider() method
See also
getDataProvider()