file polling class  
 More...
 | 
|   | constructor (string n_path, string n_mask, *hash n_opts) | 
|   | creates the object  More...
  | 
|   | 
| 
  | destructor () | 
|   | stops the polling operation if in progress and destroys the object 
  | 
|   | 
| 
  | fileEvent (list files) | 
|   | called for each poll event with a list of all files matched; calls singleFileEvent() on each file hash in the list 
  | 
|   | 
| list  | 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  More...
  | 
|   | 
| 
int  | getPollCount () | 
|   | returns the current poll count 
  | 
|   | 
| 
bool  | runOnce () | 
|   | runs a single poll (useful for checking for errors inline before starting a background thread) 
  | 
|   | 
| abstract  | singleFileEvent (hash fih) | 
|   | called for each matching file individually whenever matching files are polled with the list of matching file names; if any error occurs here, the error is logged and the polling operation is retried  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; if polling was not in progress then this method returns immediately  More...
  | 
|   | 
◆ checkPath()
  
  
      
        
          | static FilePoller::FilePoller::checkPath  | 
          ( | 
          string  | 
          path,  | 
         
        
           | 
           | 
          string  | 
          type,  | 
         
        
           | 
           | 
          bool  | 
          write = False  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
static   | 
  
 
checks a path on the local file system 
- Exceptions
 - 
  
    | 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  | 
  
   
 
 
◆ constructor()
      
        
          | FilePoller::FilePoller::constructor  | 
          ( | 
          string  | 
          n_path,  | 
        
        
           | 
           | 
          string  | 
          n_mask,  | 
        
        
           | 
           | 
          *hash  | 
          n_opts  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
creates the object 
- Parameters
 - 
  
    | n_path | the path to poll  | 
    | n_mask | the regular expression mask to use to match the files  | 
    | n_opts | a hash with the following optional keys:
"log_info": a closure or call reference taking a single string argument as an information message for logging 
"log_detail": a closure or call reference taking a single string argument as a detail information message for logging 
"log_debug": a closure or call reference taking a single string argument as a debug information message for logging 
"minage": the minimum file age in seconds as calculated from the file's "last modified" timestamp (mtime attribute) before a file will be acquired (default: 0); use this option if files could be otherwise read while being written 
"poll_interval": an integer poll interval in seconds; if this option is not supplied, then the default poll_inteval is 10 seconds 
"reopt": regular expression options; see Regular Expression Constants for possible values (ex Qore::RE_Caseless for case-insensitive matches) 
"sleep": (required when imported into a context where Qore::PO_NO_PROCESS_CONTROL is set) a closure or call reference to use instead of Qore::sleep() (if not set then Qore::sleep() will be used) 
"sort_order": an integer constant giving the sort order; valid options are:
 
"sort_type": an integer constant giving the sort type; valid options are:
 
"start_thread": (required when imported into a context where Qore::PO_NO_THREAD_CONTROL is set) a closure or call reference for starting threads; must return the integer thread ID (if not set then Background Operator (background) will be used) 
 
 | 
  
   
- Exceptions
 - 
  
    | FILEPOLLER-CONSTRUCTOR-ERROR | invalid option  | 
  
   
 
 
◆ getFiles()
      
        
          | list FilePoller::FilePoller::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 
- Parameters
 - 
  
    | sort | the sort option for the list returned  | 
    | order | the ordering of sorted data returned | 
  
   
- Returns
 - a list of regular file hashes with the following keys in each list element:
name: the name of the file, link, or directory 
filepath: the complete file path 
size: the size of the file in bytes 
uid: the UID of the owner of the file 
gid: the GID of the owner of the file 
mode: the permissions / mode of the file 
atime: the last accessed date/time of the file 
mtime: the last modified date/time of the file 
type: the type of file is always "REGULAR"  
perm: a string giving UNIX-style permissions for the file (ex: "-rwxr-xr-x")  
 
 
 
◆ singleFileEvent()
  
  
      
        
          | abstract FilePoller::FilePoller::singleFileEvent  | 
          ( | 
          hash  | 
          fih | ) | 
           | 
         
       
   | 
  
pure virtual   | 
  
 
called for each matching file individually whenever matching files are polled with the list of matching file names; if any error occurs here, the error is logged and the polling operation is retried 
- Parameters
 - 
  
    | fih | a hash of file data and information with the following keys:
name: the name of the file, link, or directory 
filepath: the complete path to the file including the directory 
size: the size of the file in bytes 
uid: the UID of the owner of the file 
gid: the GID of the owner of the file 
mode: the permissions / mode of the file 
atime: the last accessed date/time of the file 
mtime: the last modified date/time of the file 
type: the type of file; one of: "REGULAR", "DIRECTORY", "SYMBOLIC-LINK", "BLOCK-DEVICE", "CHARACTER-DEVICE", "FIFO", "SYMBOLIC-LINK", "SOCKET", or "UNKNOWN"  
perm: a string giving UNIX-style permissions for the file (ex: "-rwxr-xr-x")  
 
 | 
  
   
 
 
◆ start()
      
        
          | int FilePoller::FilePoller::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 
 
 
◆ startInline()
      
        
          | FilePoller::FilePoller::startInline  | 
          ( | 
           | ) | 
           | 
        
      
 
starts the polling operation inline (not in a background thread) 
- Exceptions
 - 
  
    | FILEPOLLER-ERROR | this exception is thrown if polling is already in progress  | 
  
   
 
 
◆ stop()
      
        
          | FilePoller::FilePoller::stop  | 
          ( | 
           | ) | 
           | 
        
      
 
stops the polling operation, returns when the polling operation has been stopped 
if polling was not in progress then this method returns immediately
- Exceptions
 - 
  
    | THREAD-ERROR | this exception is thrown if this method is called from the polling thread since it would result in a deadlock | 
  
   
- See also
 - 
 
 
 
◆ stopNoWait()
      
        
          | FilePoller::FilePoller::stopNoWait  | 
          ( | 
           | ) | 
           | 
        
      
 
stops the polling operation, returns immediately 
- See also
 - 
 
 
 
◆ waitStop()
      
        
          | FilePoller::FilePoller::waitStop  | 
          ( | 
           | ) | 
           | 
        
      
 
waits indefinitely for the polling operation to stop; if polling was not in progress then this method returns immediately 
- Exceptions
 - 
  
    | THREAD-ERROR | this exception is thrown if this method is called from the event thread since it would result in a deadlock | 
  
   
- See also
 -