169        const RequiredKeys = ...;
 
  180        int poll_interval = 10;
 
  183        bool runflag = False;
 
  192        int sort_type = SortName;
 
  195        int sort_order = OrderAsc;
 
  379      static checkPath(
string path, 
string type, 
bool write = False);
 
  414            "path": <DataProviderOptionInfo>{
 
  415                "type": AbstractDataProviderType::get(StringType),
 
  416                "desc": 
"A path giving the location of the directory to poll",
 
  420            "mask": <DataProviderOptionInfo>{
 
  421                "type": AbstractDataProviderType::get(StringType),
 
  422                "desc": 
"The glob mask to use; will be treated as a regex if `regex` is `true`",
 
  423                "default_value": 
"*",
 
  426            "poll_interval": <DataProviderOptionInfo>{
 
  427                "type": AbstractDataProviderType::get(IntType),
 
  428                "desc": 
"The interval in seconds between polling for files",
 
  432            "regex": <DataProviderOptionInfo>{
 
  433                "type": AbstractDataProviderType::get(BoolType),
 
  434                "desc": 
"If `true` then `mask` is treated as a regular expression instead of a glob pattern",
 
  437            "reopt": <DataProviderOptionInfo>{
 
  438                "type": AbstractDataProviderType::get(IntType),
 
  439                "desc": 
"A bitfield of regular expression options (`1` = ignore case, `2` = treat EOL as a regular " 
  440                    "character); ignored if `regex` is not `true`",
 
  443            "minage": <DataProviderOptionInfo>{
 
  444                "type": AbstractDataProviderType::get(IntType),
 
  445                "desc": 
"An integer giving the minimum file age in seconds before the file will be polled; this is " 
  446                    "meant to work around non-atomic file transfer operations",
 
  449            "sort_desc": <DataProviderOptionInfo>{
 
  450                "type": AbstractDataProviderType::get(BoolType),
 
  451                "desc": 
"Sort descending; if not given then an ascending sort is assumed if a `sort_type` is given",
 
  454            "sort_type": <DataProviderOptionInfo>{
 
  455                "type": AbstractDataProviderType::get(StringType),
 
  456                "desc": 
"Either `name` or `date` for the data to use for sorting",
 
  503            "type": 
"FilePollerDataProvider",
 
  504            "supports_observable": True,
 
  513     hash<DataProviderInfo> getStaticInfoImpl();
 
  530            "type": 
"FileDelayedPollerDataProvider",
 
  531            "supports_observable": True,
 
  546     hash<DataProviderInfo> getStaticInfoImpl();
 
  557            "dev": 
"The device inode number the file is on",
 
  558            "inode": 
"The inode of the file",
 
  559            "mode": 
"The file protection mode; a bitfield of file permissions",
 
  560            "nlink": 
"The number of hard links to this file",
 
  561            "uid": 
"The UID of the owner of the file",
 
  562            "gid": 
"The GID of the owner of the file",
 
  563            "rdev": 
"The device type number",
 
  564            "size": 
"the size of the file in bytes",
 
  565            "atime": 
"the last accessed date/time of the file",
 
  566            "mtime": 
"the last modified date/time of the file",
 
  567            "ctime": 
"the created date/time of the file",
 
  568            "blksize": 
"Block size; is zero if the file is zero length or if the platform's internal `stat()` (2) " 
  569                "function does not provide this info",
 
  570            "blocks": 
"Blocks allocated for the file; is zero if the file is zero length or if the platform's " 
  571                "internal `stat()` (2) function does not provide this info",
 
  572            "type": 
"the type of file; one of:\n- `REGULAR`\n- `DIRECTORY`\n- `SYMBOLIC-LINK`\n" 
  573                "- `BLOCK-DEVICE`\n- `CHARACTER-DEVICE`\n- `FIFO`\n- `SYMBOLIC-LINK`\n- `SOCKET`\n" 
  575            "perm": 
"a string giving UNIX-style permissions for the file (ex: `-rwxr-xr-x`)",
 
  576            "name": 
"the name of the file, link, or directory",
 
  577            "filepath": 
"the remote filepath relative to SFILE root directory",
 
  578            "link": 
"symbolic link target (if present)",
 
  592        static Class 
cls = 
new Class(
"FileDelayedPollerDataProvider");
 
  596            "name": 
"filepoller",
 
  597            "desc": 
"File poller data provider factory",
 
  598            "children_can_support_observers": True,
 
  634        Observable observable;
 
  638    constructor(FilePollerDataProviderBase provider, 
string path, 
string mask, *hash<auto> options)
 
  642    singleFileEvent(hash<auto> event);
 
Event-based data provider for file polling events.
Definition: FilePoller.qm.dox.h:525
 
constructor(*hash< auto > options)
Creates the object from constructor options.
 
observersReady()
Called when all observers have been added to the object.
 
const ProviderInfo
Provider info.
Definition: FilePoller.qm.dox.h:529
 
Event-based data provider for file events.
Definition: FilePoller.qm.dox.h:409
 
*string getDesc()
Returns the data provider description.
 
EmbeddedFilePoller poller
The file poller itself.
Definition: FilePoller.qm.dox.h:462
 
hash< string, hash< DataProviderMessageInfo > > getEventTypesImpl()
Returns a hash of all supported event types.
 
constructor(*hash< auto > options)
Creates the object from constructor options.
 
const ConstructorOptions
Constructor options.
Definition: FilePoller.qm.dox.h:413
 
The file poller data provider factory.
Definition: FilePoller.qm.dox.h:587
 
const FactoryInfo
Factory info.
Definition: FilePoller.qm.dox.h:595
 
hash< DataProviderFactoryInfo > getInfoImpl()
Returns static factory information without provider_info.
 
Class getClassImpl()
Returns the class for the data provider object.
 
static Class cls
Data provider type info.
Definition: FilePoller.qm.dox.h:592
 
hash< DataProviderInfo > getProviderInfoImpl()
Returns static provider information.
 
Event-based data provider for file polling events.
Definition: FilePoller.qm.dox.h:498
 
constructor(*hash< auto > options)
Creates the object from constructor options.
 
const ProviderInfo
Provider info.
Definition: FilePoller.qm.dox.h:502
 
File poller event data description.
Definition: FilePoller.qm.dox.h:552
 
const FieldDescriptions
Markdown descriptions for hashdecl members.
Definition: FilePoller.qm.dox.h:556
 
constructor()
Creates the type.
 
*softint minage
minimum file age in seconds before the file will be included in the list returned
Definition: FilePoller.qm.dox.h:210
 
*code log_info
optional info log closure
Definition: FilePoller.qm.dox.h:213
 
int reopt
regex options
Definition: FilePoller.qm.dox.h:207
 
int start()
starts polling in the background; returns the thread ID of the polling thread
 
const SortNone
no sorting
Definition: FilePoller.qm.dox.h:158
 
string path
path to monitor
Definition: FilePoller.qm.dox.h:174
 
constructor(string n_path, string n_mask, *hash< auto > n_opts)
creates the object
 
*code log_debug
optional debug log closure
Definition: FilePoller.qm.dox.h:219
 
int tid
polling tid
Definition: FilePoller.qm.dox.h:201
 
destructor()
stops the polling operation if in progress and destroys the object
 
*code log_detail
optional detail log closure
Definition: FilePoller.qm.dox.h:216
 
list< hash< FilePollerFileEventInfo > > getFiles(int sort=FilePoller::SortNone, int order=FilePoller::OrderAsc)
returns a list of regular file hashes matching any file name mask set for the object
 
const OrderAsc
ascending sort order
Definition: FilePoller.qm.dox.h:153
 
int getPollCount()
returns the current poll count
 
waitStop()
Waits indefinitely for the polling operation to stop.
 
logDetail(string fmt)
calls "log_detail" with detail information; if set
 
abstract singleFileEvent(hash< FilePollerFileEventInfo > event)
called for each matching file individually when matching files are polled
 
logDebug(string fmt)
calls "log_debug" with verbose debugging information; if set
 
Qore::Thread::Counter sc()
stop counter
 
string mask
file name mask
Definition: FilePoller.qm.dox.h:177
 
run()
starts the polling operation
 
startInline()
starts the polling operation inline (not in a background thread)
 
stop()
stops the polling operation, returns when the polling operation has been stopped
 
bool runOnce()
runs a single poll (useful for checking for errors inline before starting a background thread)
 
*code sleep
optional sleep closure
Definition: FilePoller.qm.dox.h:225
 
logInfo(string fmt)
calls "log_info" with important information, if set
 
stopNoWait()
stops the polling operation, returns immediately
 
Qore::Thread::Mutex m()
start mutex
 
static checkPath(string path, string type, bool write=False)
checks a path on the local file system
 
*code start_thread
optional start thread closure
Definition: FilePoller.qm.dox.h:222
 
fileEvent(list< hash< FilePollerFileEventInfo > > files)
Called for each poll event with a list of all files matched.
 
fileSleep(softint secs)
sleeps for the specificed number of seconds
 
Main module namespace.
Definition: FilePoller.qm.dox.h:69
 
const EVENT_FILE
File event constant.
Definition: FilePoller.qm.dox.h:72
 
FilePoller file event hash.
Definition: FilePoller.qm.dox.h:75
 
date ctime
The created date/time of the file.
Definition: FilePoller.qm.dox.h:109
 
int nlink
The number of hard links to this file.
Definition: FilePoller.qm.dox.h:88
 
int mode
The file protection mode.
Definition: FilePoller.qm.dox.h:85
 
int inode
The inode of the file.
Definition: FilePoller.qm.dox.h:80
 
string type
the type of file
Definition: FilePoller.qm.dox.h:133
 
string name
The name of the file, link, or directory.
Definition: FilePoller.qm.dox.h:139
 
int dev
The device inode number the file is on.
Definition: FilePoller.qm.dox.h:77
 
int blocks
Blocks allocated for the file.
Definition: FilePoller.qm.dox.h:119
 
int uid
The UID of the owner of the file.
Definition: FilePoller.qm.dox.h:91
 
int blksize
Block size.
Definition: FilePoller.qm.dox.h:114
 
date atime
The last accessed date/time of the file.
Definition: FilePoller.qm.dox.h:103
 
int rdev
The device type number.
Definition: FilePoller.qm.dox.h:97
 
string perm
a string giving UNIX-style permissions for the file (ex: "-rwxr-xr-x")
Definition: FilePoller.qm.dox.h:136
 
int gid
The GID of the owner of the file.
Definition: FilePoller.qm.dox.h:94
 
int size
The size of the file in bytes.
Definition: FilePoller.qm.dox.h:100
 
*string link
symbolic link target (if present)
Definition: FilePoller.qm.dox.h:145
 
string filepath
The entire path of the file.
Definition: FilePoller.qm.dox.h:142
 
date mtime
The last modified date/time of the file.
Definition: FilePoller.qm.dox.h:106