Checking for changes to files. More...
Public Types | |
enum | fileState { UNMODIFIED = 0, MODIFIED = 1, DELETED = 2 } |
Enumeration defining the file state. More... | |
Public Member Functions | |
ClassName ("fileMonitor") | |
fileMonitor (const bool useInotify) | |
Construct null. More... | |
~fileMonitor () | |
Destructor. More... | |
label | addWatch (const fileName &) |
Add file to watch. Return watch descriptor. More... | |
bool | removeWatch (const label watchFd) |
Remove file to watch. Return true if successful. More... | |
const fileName & | getFile (const label watchFd) const |
Get name of file being watched. More... | |
fileState | getState (const label watchFd) const |
Check state using handle. More... | |
void | updateStates (const bool masterOnly, const bool syncPar) const |
Check state of all files. Updates state_. More... | |
void | setUnmodified (const label watchFd) |
Reset state (e.g. after having read it) using handle. More... | |
Static Public Attributes | |
static const NamedEnum< fileState, 3 > | fileStateNames_ |
Private Member Functions | |
void | checkFiles () const |
Update localState_ from any events. More... | |
fileMonitor (const fileMonitor &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const fileMonitor &) |
Disallow default bitwise assignment. More... | |
Private Attributes | |
const bool | useInotify_ |
Whether to use inotify (requires -DFOAM_USE_INOTIFY, see above) More... | |
DynamicList< fileState > | localState_ |
State for all watchFds based on local files. More... | |
DynamicList< fileState > | state_ |
State for all watchFds - synchronised. More... | |
DynamicList< fileName > | watchFile_ |
Filename for all watchFds. More... | |
DynamicList< label > | freeWatchFds_ |
Free watchFds. More... | |
autoPtr< fileMonitorWatcher > | watcher_ |
Watch mechanism (stat or inotify) More... | |
Checking for changes to files.
Compile with FOAM_USE_INOTIFY to use the inotify (Linux specific, since 2.6.13) framework. The problem is that inotify does not work on nfs3 mounted directories!!
Definition at line 61 of file fileMonitor.H.
enum fileState |
Enumeration defining the file state.
Enumerator | |
---|---|
UNMODIFIED | |
MODIFIED | |
DELETED |
Definition at line 69 of file fileMonitor.H.
|
private |
Disallow default bitwise copy construct.
fileMonitor | ( | const bool | useInotify | ) |
Construct null.
Definition at line 429 of file fileMonitor.C.
~fileMonitor | ( | ) |
Destructor.
Definition at line 442 of file fileMonitor.C.
|
private |
Update localState_ from any events.
Definition at line 294 of file fileMonitor.C.
References Foam::abort(), fileMonitor::DELETED, Foam::FatalError, FatalErrorInFunction, regIOobject::fileModificationSkew, forAll, Foam::lastModified(), fileMonitor::localState_, fileMonitor::MODIFIED, oldTime(), Foam::read(), fileMonitor::UNMODIFIED, fileMonitor::useInotify_, fileMonitor::watcher_, and fileMonitor::watchFile_.
|
private |
Disallow default bitwise assignment.
ClassName | ( | "fileMonitor" | ) |
Foam::label addWatch | ( | const fileName & | fName | ) |
Add file to watch. Return watch descriptor.
Definition at line 450 of file fileMonitor.C.
References Foam::endl(), Foam::Pout, and WarningInFunction.
bool removeWatch | ( | const label | watchFd | ) |
Remove file to watch. Return true if successful.
Definition at line 489 of file fileMonitor.C.
References Foam::endl(), and Foam::Pout.
const Foam::fileName & getFile | ( | const label | watchFd | ) | const |
Get name of file being watched.
Definition at line 502 of file fileMonitor.C.
Foam::fileMonitor::fileState getState | ( | const label | watchFd | ) | const |
Check state using handle.
Definition at line 508 of file fileMonitor.C.
void updateStates | ( | const bool | masterOnly, |
const bool | syncPar | ||
) | const |
Check state of all files. Updates state_.
Definition at line 516 of file fileMonitor.C.
References Foam::endl(), forAll, Pstream::listCombineGather(), Pstream::listCombineScatter(), UPstream::master(), Foam::Pout, Foam::reduce(), Pstream::scatter(), PackedList::storage(), and WarningInFunction.
void setUnmodified | ( | const label | watchFd | ) |
Reset state (e.g. after having read it) using handle.
Definition at line 611 of file fileMonitor.C.
References Foam::lastModified().
|
static |
Definition at line 76 of file fileMonitor.H.
|
private |
Whether to use inotify (requires -DFOAM_USE_INOTIFY, see above)
Definition at line 82 of file fileMonitor.H.
Referenced by fileMonitor::checkFiles().
|
mutableprivate |
State for all watchFds based on local files.
Definition at line 85 of file fileMonitor.H.
Referenced by fileMonitor::checkFiles().
|
mutableprivate |
State for all watchFds - synchronised.
Definition at line 88 of file fileMonitor.H.
|
private |
Filename for all watchFds.
Definition at line 91 of file fileMonitor.H.
Referenced by fileMonitor::checkFiles().
|
private |
Free watchFds.
Definition at line 94 of file fileMonitor.H.
|
mutableprivate |
Watch mechanism (stat or inotify)
Definition at line 97 of file fileMonitor.H.
Referenced by fileMonitor::checkFiles().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.