![]() |
Qore FtpPoller Module Reference 2.0
|
FtpPoller client class implementation. More...
#include <FtpPoller.qm.dox.h>
Public Member Methods | |
| constructor (hash< auto > nconf) | |
| creates the FtpPoller object from the configuration hash argument passed More... | |
| constructor (Qore::FtpClient n_ftp, hash< auto > nconf) | |
| creates the FtpPoller object from the FtpClient argument and configuration hash argument passed More... | |
| destructor () | |
| stops the polling operation if in progress and destroys the object | |
| *bool | fileEvent (list< hash< FtpPollerFileEventInfo > > l) |
| called for each poll with a list of all files matched before transfer More... | |
| binary | getFile (string path) |
| retrieves a binary file and returns the file's contents | |
| list< hash< FtpPollerFileEventInfo > > | getFiles (string subdir, int sort=FtpPoller::SortNone, int order=FtpPoller::OrderAsc) |
| returns a list of regular file hashes matching any file name mask set for the object More... | |
| int | getPollCount () |
| returns the current poll count | |
| hash< FtpPollerFileEventInfo > | getRemoteFileData (hash< FtpPollerFileEventInfo > event) |
| Retrieves remote file data and adds it to the event data. | |
| getStoreFile (string remote_path, string local_path) | |
| retrieves a remote file and stores it to a local path More... | |
| string | getTextFile (string path) |
| retrieves a text file and returns the file's contents | |
| abstract | postSingleFileEvent (hash< FtpPollerFileEventInfo > event) |
| called after singleFileEvent() for each matching file individually More... | |
| removeFile (string fn) | |
| deletes a file on the server | |
| rename (string old, string nnew) | |
| renames a file on the server | |
| bool | runOnce () |
| runs a single poll (useful for checking for errors inline before starting a background thread) | |
| abstract | singleFileEvent (hash< FtpPollerFileEventInfo > event) |
| called for each matching file individually whenever matching files are polled More... | |
| int | start () |
| starts polling in the background; returns the thread ID of the polling thread More... | |
| startInline () | |
| starts the polling operation inline (not in a background thread) More... | |
| stop () | |
| stops the polling operation, returns when the polling operation has been stopped More... | |
| stopNoWait () | |
| stops the polling operation, returns immediately More... | |
| waitStop () | |
| waits indefinitely for the polling operation to stop More... | |
Static Public Member Methods | |
| static | checkPath (string path, string type, bool write=False) |
| checks a path on the local file system More... | |
Public Attributes | |
| const | AllKeys = RequiredKeysWithHost + keys Defaults + OptionalKeys |
| all keys | |
| const | Defaults |
| default values for constructor hash argument | |
| const | ErrorDelay = 1m |
| pause when Ftp errors are detected | |
| const | OptionalKeys = ... |
| optional constructor hash keys | |
| const | OrderAsc = 0 |
| ascending sort order | |
| const | OrderDesc = 1 |
| descending sort order | |
| const | RequiredKeys = ... |
| minimum required keys for all constructors | |
| const | RequiredKeysWithHost = RequiredKeys + "host" |
| RequiredKeys for the constructor(hash) without an Qore::FtpClient argument. | |
| const | SortName = 1 |
| sort by name | |
| const | SortNone = 0 |
| no sorting | |
Private Member Methods | |
| ftpSleep (softint secs) | |
| sleeps for the specificed number of seconds | |
| logDebug (string fmt) | |
calls the "log_debug" closure or call reference with verbose debugging information | |
| logDetail (string fmt) | |
calls the "log_detail" closure or call reference with detail information | |
| logInfo (string fmt) | |
calls the "log_info" closure or call reference with important information | |
| Mutex | m () |
| start mutex | |
| hash< FtpPollerFileEventInfo > | retrieveFile (hash< FtpPollerFileEventInfo > event) |
| Retrieves the remote file to local_dir directly. | |
| hash< FtpPollerFileEventInfo > | retrieveTempFile (hash< FtpPollerFileEventInfo > event) |
| Retrieves the remote file to local_dir using a temporary file. | |
| run () | |
| starts the polling operation | |
| Counter | sc () |
| stop counter | |
| setMask () | |
| converts a glob mask into a regex | |
Private Attributes | |
| bool | atomic_transfer |
Atomic transfer flag for use with local_dir. | |
| bool | fatal = False |
| internal fatal error flag | |
| Qore::FtpClient | ftp |
| FtpClient object. | |
| bool | get_files |
| internal "get files" flag | |
| string | host |
| host or address name | |
| string | local_dir |
| Local directory to transfer file. | |
| *code | log_debug |
| optional debug log closure | |
| *code | log_detail |
| optional detail log closure | |
| *code | log_info |
| optional info log closure | |
| *string | mask |
file glob name mask (ignored if "regex_mask" also set) | |
| *softint | minage |
| minimum file age | |
| *string | pass |
| password | |
| softlist< string > | path = "." |
| path(s) to poll | |
| int | poll_interval |
| poll interval in seconds | |
| int | pollcnt = 0 |
| internal poll counter | |
| int | port |
| port | |
| string | protocol |
| Protocol ("ftp" or "ftps") | |
| int | reopts = 0 |
| file matching regex options | |
| string | rootFtpPath |
| path after connecting to Ftp server | |
| bool | runflag = False |
| run flag | |
| *code | sleep |
| optional sleep closure | |
| *code | start_thread |
| optional start thread closure | |
| string | tempfile_template |
The temporary filename template when local_dir is set. | |
| int | tid |
| polling tid | |
| timeout | timeout |
| timeout in ms | |
| string | url |
| url | |
| hash< UrlInfo > | urlh |
| url hash | |
| string | user |
| user | |
FtpPoller client class implementation.
|
static |
checks a path on the local file system
| DIR-ERROR | this exception is thrown if the local path does not exist, is not readable, is not a directory, or should be writable and is not |
| FtpPoller::FtpPoller::constructor | ( | hash< auto > | nconf | ) |
creates the FtpPoller object from the configuration hash argument passed
| nconf | a hash with the following keys:
|
| FTPPOLLER-CONSTRUCTOR-ERROR | missing required key, invalid port, poll_interval, or protocol given |
| FTPCLIENT-PARAMETER-ERROR | empty hostname passed |
| SOCKET-CONNECT-ERROR | error establishing socket connection (no listener, port blocked, etc) |
| SSH2CLIENT-CONNECT-ERROR | no user name set; ssh2 or libssh2 error |
| SSH2-ERROR | error initializing or establishing ssh2 session |
| SSH2CLIENT-AUTH-ERROR | no proper authentication method found |
| FTPCLIENT-CONNECT-ERROR | error initializing ftp session or getting remote path |
| FtpPoller::FtpPoller::constructor | ( | Qore::FtpClient | n_ftp, |
| hash< auto > | nconf | ||
| ) |
creates the FtpPoller object from the FtpClient argument and configuration hash argument passed
| n_ftp | the new FtpClient object |
| nconf | a hash with the following optional keys:
|
| FTPPOLLER-CONSTRUCTOR-ERROR | missing required key, invalid port or poll_interval given |
| FTPCLIENT-PARAMETER-ERROR | empty hostname passed |
| SOCKET-CONNECT-ERROR | error establishing socket connection (no listener, port blocked, etc); timeout establishing socket connection |
| SSH2CLIENT-CONNECT-ERROR | no user name set; ssh2 or libssh2 error |
| SSH2-ERROR | error initializing or establishing ssh2 session |
| SSH2CLIENT-AUTH-ERROR | no proper authentication method found |
| FTPCLIENT-CONNECT-ERROR | error initializing ftp session or getting remote path |
| *bool FtpPoller::FtpPoller::fileEvent | ( | list< hash< FtpPollerFileEventInfo > > | l | ) |
called for each poll with a list of all files matched before transfer
if this method returns False or NOTHING, then the singleFileEvent method is not called
| list< hash< FtpPollerFileEventInfo > > FtpPoller::FtpPoller::getFiles | ( | string | subdir, |
| int | sort = FtpPoller::SortNone, |
||
| int | order = FtpPoller::OrderAsc |
||
| ) |
returns a list of regular file hashes matching any file name mask set for the object
| subdir | the directory to check |
| sort | the sort option for the list returned |
| order | the ordering of sorted data returned |
name: the name of the file, link, or directorysize: the size of the file in bytesmtime: the last modified date/time of the file | FtpPoller::FtpPoller::getStoreFile | ( | string | remote_path, |
| string | local_path | ||
| ) |
retrieves a remote file and stores it to a local path
| remote_path | the remote file path |
| local_path | the local file path |
|
pure virtual |
called after singleFileEvent() for each matching file individually
If any error occurs here, the polling operation stops
This method would normally delete / rename / move files processed by singleFileEvent() so that they would not be polled a second time. If an error occurs in this operation, then the polling event will stop since continuing after failing to delete, rename, or move a file already processed would cause the file to be processed more than once.
| event | a hash of file data |
|
pure virtual |
called for each matching file individually whenever matching files are polled
If any error occurs here, the error is logged and the polling operation is retried
| event | a hash of file data |
| int FtpPoller::FtpPoller::start | ( | ) |
starts polling in the background; returns the thread ID of the polling thread
if polling had already been started, then the thread ID of the polling thread is returned immediately
| FtpPoller::FtpPoller::startInline | ( | ) |
starts the polling operation inline (not in a background thread)
| FTPPOLLER-ERROR | this exception is thrown if polling is already in progress |
| FtpPoller::FtpPoller::stop | ( | ) |
stops the polling operation, returns when the polling operation has been stopped
if polling was not in progress then this method returns immediately
| THREAD-ERROR | this exception is thrown if this method is called from the event thread since it would result in a deadlock |
| FtpPoller::FtpPoller::stopNoWait | ( | ) |
stops the polling operation, returns immediately
| FtpPoller::FtpPoller::waitStop | ( | ) |
waits indefinitely for the polling operation to stop
If polling was not in progress then this method returns immediately
| THREAD-ERROR | this exception is thrown if this method is called from the event thread since it would result in a deadlock |