summaryrefslogtreecommitdiff
path: root/shared
diff options
context:
space:
mode:
authorDaniel Wilhelm <daniel@wili.li>2014-04-18 17:05:30 +0200
committerDaniel Wilhelm <daniel@wili.li>2014-04-18 17:05:30 +0200
commitc0fce877c478ddbf71a1b651c789e5ea00a00144 (patch)
treede01b0ae8fd296bd24fbca54a80f2f0ba071d461 /shared
parent3.3 (diff)
downloadFreeFileSync-c0fce877c478ddbf71a1b651c789e5ea00a00144.tar.gz
FreeFileSync-c0fce877c478ddbf71a1b651c789e5ea00a00144.tar.bz2
FreeFileSync-c0fce877c478ddbf71a1b651c789e5ea00a00144.zip
3.4
Diffstat (limited to 'shared')
-rw-r--r--shared/appMain.cpp6
-rw-r--r--shared/appMain.h6
-rw-r--r--shared/buildInfo.h6
-rw-r--r--shared/customButton.cpp8
-rw-r--r--shared/customButton.h12
-rw-r--r--shared/customComboBox.cpp6
-rw-r--r--shared/customComboBox.h8
-rw-r--r--shared/customTooltip.cpp8
-rw-r--r--shared/customTooltip.h6
-rw-r--r--shared/dllLoader.cpp6
-rw-r--r--shared/dllLoader.h6
-rw-r--r--shared/dragAndDrop.cpp33
-rw-r--r--shared/dragAndDrop.h6
-rw-r--r--shared/fileError.h6
-rw-r--r--shared/fileHandling.cpp303
-rw-r--r--shared/fileHandling.h17
-rw-r--r--shared/fileID.cpp24
-rw-r--r--shared/fileID.h6
-rw-r--r--shared/fileTraverser.cpp57
-rw-r--r--shared/fileTraverser.h28
-rw-r--r--shared/globalFunctions.cpp8
-rw-r--r--shared/globalFunctions.h6
-rw-r--r--shared/guid.cpp6
-rw-r--r--shared/guid.h6
-rw-r--r--shared/helpProvider.cpp44
-rw-r--r--shared/helpProvider.h17
-rw-r--r--shared/inotify/CHANGELOG3
-rw-r--r--shared/inotify/COPYING2
-rw-r--r--shared/inotify/LICENSE-X112
-rw-r--r--shared/inotify/README2
-rw-r--r--shared/inotify/VERSION1
-rw-r--r--shared/inotify/doc/html/annotated.html47
-rw-r--r--shared/inotify/doc/html/classInotify-members.html51
-rw-r--r--shared/inotify/doc/html/classInotify.html744
-rw-r--r--shared/inotify/doc/html/classInotifyEvent-members.html59
-rw-r--r--shared/inotify/doc/html/classInotifyEvent.html404
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.map4
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.pngbin0 -> 9618 bytes
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.map1
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.pngbin0 -> 3331 bytes
-rw-r--r--shared/inotify/doc/html/classInotifyEvent__coll__graph.map2
-rw-r--r--shared/inotify/doc/html/classInotifyEvent__coll__graph.md51
-rw-r--r--shared/inotify/doc/html/classInotifyEvent__coll__graph.pngbin0 -> 4658 bytes
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.map1
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.pngbin0 -> 3424 bytes
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.map1
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.pngbin0 -> 3681 bytes
-rw-r--r--shared/inotify/doc/html/classInotifyException-members.html45
-rw-r--r--shared/inotify/doc/html/classInotifyException.html101
-rw-r--r--shared/inotify/doc/html/classInotifyWatch-members.html55
-rw-r--r--shared/inotify/doc/html/classInotifyWatch.html349
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.map2
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.pngbin0 -> 3258 bytes
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.map1
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.pngbin0 -> 3724 bytes
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.map1
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.pngbin0 -> 3963 bytes
-rw-r--r--shared/inotify/doc/html/classInotifyWatch__coll__graph.map1
-rw-r--r--shared/inotify/doc/html/classInotifyWatch__coll__graph.md51
-rw-r--r--shared/inotify/doc/html/classInotifyWatch__coll__graph.pngbin0 -> 3053 bytes
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.map3
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.pngbin0 -> 7077 bytes
-rw-r--r--shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.map1
-rw-r--r--shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.pngbin0 -> 2766 bytes
-rw-r--r--shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.map1
-rw-r--r--shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.pngbin0 -> 2751 bytes
-rw-r--r--shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.map1
-rw-r--r--shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.pngbin0 -> 2377 bytes
-rw-r--r--shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.map1
-rw-r--r--shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.pngbin0 -> 2675 bytes
-rw-r--r--shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.map3
-rw-r--r--shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.pngbin0 -> 9913 bytes
-rw-r--r--shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.map3
-rw-r--r--shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.pngbin0 -> 10284 bytes
-rw-r--r--shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.map1
-rw-r--r--shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.pngbin0 -> 2364 bytes
-rw-r--r--shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.map2
-rw-r--r--shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.md51
-rw-r--r--shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.pngbin0 -> 3286 bytes
-rw-r--r--shared/inotify/doc/html/classes.html32
-rw-r--r--shared/inotify/doc/html/doxygen.css645
-rw-r--r--shared/inotify/doc/html/files.html45
-rw-r--r--shared/inotify/doc/html/functions.html161
-rw-r--r--shared/inotify/doc/html/functions_func.html124
-rw-r--r--shared/inotify/doc/html/functions_rela.html53
-rw-r--r--shared/inotify/doc/html/functions_vars.html80
-rw-r--r--shared/inotify/doc/html/globals.html55
-rw-r--r--shared/inotify/doc/html/globals_defs.html55
-rw-r--r--shared/inotify/doc/html/globals_enum.html55
-rw-r--r--shared/inotify/doc/html/globals_eval.html55
-rw-r--r--shared/inotify/doc/html/globals_type.html55
-rw-r--r--shared/inotify/doc/html/graph_legend.dot22
-rw-r--r--shared/inotify/doc/html/graph_legend.html84
-rw-r--r--shared/inotify/doc/html/graph_legend.pngbin0 -> 18687 bytes
-rw-r--r--shared/inotify/doc/html/index.html28
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8cpp.html67
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8cpp__incl.map1
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8cpp__incl.md51
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8cpp__incl.pngbin0 -> 23669 bytes
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8h-source.html505
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8h.html109
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8h__dep__incl.map1
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8h__dep__incl.md51
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8h__dep__incl.pngbin0 -> 2602 bytes
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8h__incl.map0
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8h__incl.md51
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8h__incl.pngbin0 -> 8941 bytes
-rw-r--r--shared/inotify/doc/html/inotify-cxx_8h_source.html503
-rw-r--r--shared/inotify/doc/html/tabs.css13
-rw-r--r--shared/inotify/doc/man/man3/Inotify.3376
-rw-r--r--shared/inotify/doc/man/man3/InotifyEvent.3172
-rw-r--r--shared/inotify/doc/man/man3/InotifyException.333
-rw-r--r--shared/inotify/doc/man/man3/InotifyWatch.3134
-rw-r--r--shared/inotify/doc/man/man3/inotify-cxx.cpp.318
-rw-r--r--shared/inotify/doc/man/man3/inotify-cxx.h.316
-rw-r--r--shared/inotify/inotify-cxx.cpp17
-rw-r--r--shared/inotify/inotify-cxx.h14
-rw-r--r--shared/localization.cpp47
-rw-r--r--shared/localization.h9
-rw-r--r--shared/loki/CHANGES446
-rw-r--r--shared/longPathPrefix.cpp46
-rw-r--r--shared/longPathPrefix.h9
-rw-r--r--shared/recycler.cpp102
-rw-r--r--shared/recycler.h37
-rw-r--r--shared/serialize.cpp6
-rw-r--r--shared/serialize.h6
-rw-r--r--shared/shadow.cpp10
-rw-r--r--shared/shadow.h6
-rw-r--r--shared/standardPaths.cpp93
-rw-r--r--shared/standardPaths.h18
-rw-r--r--shared/staticAssert.h6
-rw-r--r--shared/stringConv.h6
-rw-r--r--shared/systemConstants.h6
-rw-r--r--shared/systemFunctions.cpp8
-rw-r--r--shared/systemFunctions.h6
-rw-r--r--shared/toggleButton.cpp6
-rw-r--r--shared/toggleButton.h6
-rw-r--r--shared/xmlBase.cpp6
-rw-r--r--shared/xmlBase.h6
-rw-r--r--shared/zstring.cpp53
-rw-r--r--shared/zstring.h71
156 files changed, 4548 insertions, 2556 deletions
diff --git a/shared/appMain.cpp b/shared/appMain.cpp
index fe6d3af5..a8eb969f 100644
--- a/shared/appMain.cpp
+++ b/shared/appMain.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "appMain.h"
#include <wx/window.h>
#include <wx/app.h>
diff --git a/shared/appMain.h b/shared/appMain.h
index 130a6e2a..a4222a75 100644
--- a/shared/appMain.h
+++ b/shared/appMain.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef APPMAIN_H_INCLUDED
#define APPMAIN_H_INCLUDED
diff --git a/shared/buildInfo.h b/shared/buildInfo.h
index 1c14caa5..7b031dfa 100644
--- a/shared/buildInfo.h
+++ b/shared/buildInfo.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef BUILDINFO_H_INCLUDED
#define BUILDINFO_H_INCLUDED
diff --git a/shared/customButton.cpp b/shared/customButton.cpp
index 73b9d1ee..4e897844 100644
--- a/shared/customButton.cpp
+++ b/shared/customButton.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "customButton.h"
#include <wx/dcmemory.h>
#include <wx/image.h>
@@ -149,7 +155,7 @@ wxBitmap wxButtonWithImage::createBitmapFromText(const wxString& text)
if ((accelPos = text.find(wxT("&"))) != wxString::npos)
{
textLabelFormatted.Replace(wxT("&"), wxT(""), false); //remove accelerator
- indexAccel = accelPos;
+ indexAccel = static_cast<int>(accelPos);
}
dc.SetTextForeground(textColor);
diff --git a/shared/customButton.h b/shared/customButton.h
index ce43828a..b50dd4da 100644
--- a/shared/customButton.h
+++ b/shared/customButton.h
@@ -1,9 +1,9 @@
-/***************************************************************
- * Purpose: wxButton with bitmap label
- * Author: ZenJu (zhnmju123@gmx.de)
- * Created: Feb. 2009
- **************************************************************/
-
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef CUSTOMBUTTON_H_INCLUDED
#define CUSTOMBUTTON_H_INCLUDED
diff --git a/shared/customComboBox.cpp b/shared/customComboBox.cpp
index e21e915c..722683a5 100644
--- a/shared/customComboBox.cpp
+++ b/shared/customComboBox.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "customComboBox.h"
diff --git a/shared/customComboBox.h b/shared/customComboBox.h
index b6af43bf..7db8cecf 100644
--- a/shared/customComboBox.h
+++ b/shared/customComboBox.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef CUSTOMCOMBOBOX_H_INCLUDED
#define CUSTOMCOMBOBOX_H_INCLUDED
@@ -14,7 +20,7 @@ public:
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
int n = 0,
- const wxString choices[] = (const wxString *) NULL,
+ const wxString choices[] = NULL,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr);
diff --git a/shared/customTooltip.cpp b/shared/customTooltip.cpp
index cd9fbf05..105feabf 100644
--- a/shared/customTooltip.cpp
+++ b/shared/customTooltip.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "customTooltip.h"
#include <wx/stattext.h>
#include <wx/sizer.h>
@@ -78,7 +84,7 @@ void CustomTooltip::show(const wxString& text, wxPoint pos, const wxBitmap* bmp)
if (pos != tipWindow->GetScreenPosition())
tipWindow->SetSize(pos.x + 30, pos.y, wxDefaultCoord, wxDefaultCoord);
//attention!!! possible endless loop: mouse pointer must NOT be within tipWindow!
- //Else it will trigger a wxEVT_LEAVE_WINDOW which will hide the window, causing the window to be shown again in via this method, etc.
+ //Else it will trigger a wxEVT_LEAVE_WINDOW which will hide the window, causing the window to be shown again via this method, etc.
if (!tipWindow->IsShown())
tipWindow->Show();
diff --git a/shared/customTooltip.h b/shared/customTooltip.h
index 886c6130..d448254e 100644
--- a/shared/customTooltip.h
+++ b/shared/customTooltip.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef CUSTOMTOOLTIP_H_INCLUDED
#define CUSTOMTOOLTIP_H_INCLUDED
diff --git a/shared/dllLoader.cpp b/shared/dllLoader.cpp
index fbfa5b11..1ecfcb76 100644
--- a/shared/dllLoader.cpp
+++ b/shared/dllLoader.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "dllLoader.h"
#include <wx/msw/wrapwin.h> //includes "windows.h"
#include <map>
diff --git a/shared/dllLoader.h b/shared/dllLoader.h
index 5b561c5a..318997d5 100644
--- a/shared/dllLoader.h
+++ b/shared/dllLoader.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef DLLLOADER_H_INCLUDED
#define DLLLOADER_H_INCLUDED
diff --git a/shared/dragAndDrop.cpp b/shared/dragAndDrop.cpp
index 89f4da4d..581aac96 100644
--- a/shared/dragAndDrop.cpp
+++ b/shared/dragAndDrop.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "dragAndDrop.h"
#include <wx/dnd.h>
#include <wx/window.h>
@@ -5,7 +11,8 @@
#include <wx/textctrl.h>
#include <wx/filepicker.h>
#include <wx/filename.h>
-
+#include "fileHandling.h"
+#include "stringConv.h"
//define new event type
const wxEventType FFS_DROP_FILE_EVENT = wxNewEventType();
@@ -115,24 +122,14 @@ void DragDropOnMainDlg::OnFilesDropped(FFSFileDropEvent& event)
}
else //should never be reached
event.Skip();
-};
-
-
-wxString formatDirectory(const wxString& dirname)
-{
- wxString dirnameTmp = dirname;
- dirnameTmp.Trim(true); //remove whitespace characters from right
- dirnameTmp.Trim(false); //remove whitespace characters from left
-
- return dirnameTmp;
}
void DragDropOnMainDlg::OnWriteDirManually(wxCommandEvent& event)
{
- const wxString newDir = formatDirectory(event.GetString());
- if (wxDirExists(newDir))
- dirPicker_->SetPath(newDir);
+ const Zstring newDir = getFormattedDirectoryName(wxToZ(event.GetString()));
+ if (dirExists(newDir))
+ dirPicker_->SetPath(zToWx(newDir));
event.Skip();
}
@@ -193,14 +190,14 @@ void DragDropOnDlg::OnFilesDropped(FFSFileDropEvent& event)
}
else //should never be reached
event.Skip();
-};
+}
void DragDropOnDlg::OnWriteDirManually(wxCommandEvent& event)
{
- const wxString newDir = formatDirectory(event.GetString());
- if (wxDirExists(newDir))
- dirPicker_->SetPath(newDir);
+ const Zstring newDir = FreeFileSync::getFormattedDirectoryName(wxToZ(event.GetString()));
+ if (dirExists(newDir))
+ dirPicker_->SetPath(zToWx(newDir));
event.Skip();
}
diff --git a/shared/dragAndDrop.h b/shared/dragAndDrop.h
index 4e6bbd31..4fc839c0 100644
--- a/shared/dragAndDrop.h
+++ b/shared/dragAndDrop.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef DRAGANDDROP_H_INCLUDED
#define DRAGANDDROP_H_INCLUDED
diff --git a/shared/fileError.h b/shared/fileError.h
index daf97910..ac47dfed 100644
--- a/shared/fileError.h
+++ b/shared/fileError.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef FILEERROR_H_INCLUDED
#define FILEERROR_H_INCLUDED
diff --git a/shared/fileHandling.cpp b/shared/fileHandling.cpp
index ef1d3e6c..6713b205 100644
--- a/shared/fileHandling.cpp
+++ b/shared/fileHandling.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "fileHandling.h"
#include <wx/intl.h>
#include "systemFunctions.h"
@@ -5,7 +11,6 @@
#include "systemConstants.h"
#include "fileTraverser.h"
#include <wx/file.h>
-#include <stdexcept>
#include <boost/bind.hpp>
#include <algorithm>
#include <wx/log.h>
@@ -14,11 +19,12 @@
#include <wx/utils.h>
#ifdef FFS_WIN
-#include "recycler.h"
#include "dllLoader.h"
#include <wx/msw/wrapwin.h> //includes "windows.h"
#include "shadow.h"
#include "longPathPrefix.h"
+#include <boost/scoped_array.hpp>
+#include <boost/shared_ptr.hpp>
#elif defined FFS_LINUX
#include <sys/stat.h>
@@ -29,11 +35,46 @@
#include <unistd.h>
#include <dirent.h>
#include <errno.h>
+#include <stdlib.h>
#endif
using FreeFileSync::FileError;
+
+namespace
+{
+#ifdef FFS_WIN
+Zstring resolveRelativePath(const Zstring& relativeName, DWORD proposedBufferSize = 1000)
+{
+ boost::scoped_array<DefaultChar> fullPath(new DefaultChar[proposedBufferSize]);
+ const DWORD rv = ::GetFullPathName(
+ relativeName.c_str(), //__in LPCTSTR lpFileName,
+ proposedBufferSize, //__in DWORD nBufferLength,
+ fullPath.get(), //__out LPTSTR lpBuffer,
+ NULL); //__out LPTSTR *lpFilePart
+ if (rv == 0 || rv == proposedBufferSize)
+ //ERROR! Don't do anything
+ return relativeName;
+ if (rv > proposedBufferSize)
+ return resolveRelativePath(relativeName, rv);
+
+ return fullPath.get();
+}
+
+#elif defined FFS_LINUX
+Zstring resolveRelativePath(const Zstring& relativeName) //additional: resolves symbolic links!!!
+{
+ char absolutePath[PATH_MAX + 1];
+ if (::realpath(relativeName.c_str(), absolutePath) == NULL)
+ //ERROR! Don't do anything
+ return relativeName;
+
+ return Zstring(absolutePath);
+}
+#endif
+
+
bool replaceMacro(wxString& macro) //macro without %-characters, return true if replaced successfully
{
if (macro.IsEmpty())
@@ -92,6 +133,7 @@ void expandMacros(wxString& text)
}
}
}
+}
Zstring FreeFileSync::getFormattedDirectoryName(const Zstring& dirname)
@@ -109,16 +151,16 @@ Zstring FreeFileSync::getFormattedDirectoryName(const Zstring& dirname)
//replace macros
expandMacros(dirnameTmp);
-#ifdef FFS_WIN
/*
resolve relative names; required by:
+ WINDOWS:
- \\?\-prefix which needs absolute names
- Volume Shadow Copy: volume name needs to be part of each filename
- - file icon buffer (at least for extensions that are acutally read from disk, e.g. "exe")
+ - file icon buffer (at least for extensions that are actually read from disk, e.g. "exe")
+ WINDOWS/LINUX:
- detection of dependent directories, e.g. "\" and "C:\test"
*/
- dirnameTmp = resolveRelativePath(dirnameTmp.c_str()).c_str();
-#endif
+ dirnameTmp = zToWx(resolveRelativePath(wxToZ(dirnameTmp)));
if (!dirnameTmp.EndsWith(zToWx(globalFunctions::FILE_NAME_SEPARATOR)))
dirnameTmp += zToWx(globalFunctions::FILE_NAME_SEPARATOR);
@@ -127,30 +169,6 @@ Zstring FreeFileSync::getFormattedDirectoryName(const Zstring& dirname)
}
-bool FreeFileSync::recycleBinExists()
-{
-#ifdef FFS_WIN
- return true;
-#else
- return false;
-#endif // FFS_WIN
-}
-
-
-inline
-void moveToRecycleBin(const Zstring& filename) //throw (std::logic_error), throw (FileError)
-{
- if (!FreeFileSync::recycleBinExists()) //this method should ONLY be called if recycle bin is available
- throw std::logic_error("Initialization of Recycle Bin failed!");
-
-#ifdef FFS_WIN
- FreeFileSync::moveToWindowsRecycler(filename); //throw (FileError)
-#else
- throw std::logic_error("No Recycler for Linux available at the moment!");
-#endif
-}
-
-
bool FreeFileSync::fileExists(const DefaultChar* filename)
{
//symbolic links (broken or not) are also treated as existing files!
@@ -214,8 +232,8 @@ bool FreeFileSync::isMovable(const Zstring& pathFrom, const Zstring& pathTo)
pathTo + globalFunctions::FILE_NAME_SEPARATOR + DefaultStr("DeleteMe.tmp");
try
{
- removeFile(dummyFileSource, false);
- removeFile(dummyFileTarget, false);
+ removeFile(dummyFileSource);
+ removeFile(dummyFileTarget);
}
catch (...) {}
@@ -232,15 +250,15 @@ bool FreeFileSync::isMovable(const Zstring& pathFrom, const Zstring& pathTo)
#ifdef FFS_WIN
::MoveFileEx(applyLongPathPrefix(dummyFileSource).c_str(), //__in LPCTSTR lpExistingFileName,
applyLongPathPrefix(dummyFileTarget).c_str(), //__in_opt LPCTSTR lpNewFileName,
- 0) != 0; //__in DWORD dwFlags
+ 0) != 0; //__in DWORD dwFlags
#elif defined FFS_LINUX
::rename(dummyFileSource.c_str(), dummyFileTarget.c_str()) == 0;
#endif
try
{
- removeFile(dummyFileSource, false);
- removeFile(dummyFileTarget, false);
+ removeFile(dummyFileSource);
+ removeFile(dummyFileTarget);
}
catch (...) {}
@@ -248,7 +266,7 @@ bool FreeFileSync::isMovable(const Zstring& pathFrom, const Zstring& pathTo)
}
-void FreeFileSync::removeFile(const Zstring& filename, const bool useRecycleBin) //throw (FileError, std::logic_error);
+void FreeFileSync::removeFile(const Zstring& filename) //throw (FileError, std::logic_error);
{
//no error situation if file is not existing! manual deletion relies on it!
#ifdef FFS_WIN
@@ -263,25 +281,23 @@ void FreeFileSync::removeFile(const Zstring& filename, const bool useRecycleBin)
return; //neither file nor any other object (e.g. broken symlink) with that name existing
#endif
- if (useRecycleBin)
- {
- ::moveToRecycleBin(filename);
- return;
- }
-
#ifdef FFS_WIN
- //initialize file attributes
- if (!::SetFileAttributes(
- filenameFmt.c_str(), //address of filename
- FILE_ATTRIBUTE_NORMAL)) //attributes to set
- {
- wxString errorMessage = wxString(_("Error deleting file:")) + wxT("\n\"") + zToWx(filename) + wxT("\"");
- throw FileError(errorMessage + wxT("\n\n") + FreeFileSync::getLastErrorFormatted());
- }
-
//remove file, support for \\?\-prefix
if (!::DeleteFile(filenameFmt.c_str()))
{
+ //optimization: change file attributes ONLY when necessary!
+ if (::GetLastError() == ERROR_ACCESS_DENIED) //function fails if file is read-only
+ {
+ //initialize file attributes
+ if (::SetFileAttributes(filenameFmt.c_str(), //address of filename
+ FILE_ATTRIBUTE_NORMAL)) //attributes to set
+ {
+ //now try again...
+ if (::DeleteFile(filenameFmt.c_str()))
+ return;
+ }
+ }
+
wxString errorMessage = wxString(_("Error deleting file:")) + wxT("\n\"") + zToWx(filename) + wxT("\"");
throw FileError(errorMessage + wxT("\n\n") + FreeFileSync::getLastErrorFormatted());
}
@@ -295,25 +311,77 @@ void FreeFileSync::removeFile(const Zstring& filename, const bool useRecycleBin)
}
-//rename file: no copying!!!
-void FreeFileSync::renameFile(const Zstring& oldName, const Zstring& newName) //throw (FileError);
+namespace
+{
+//(low-level) wrapper for file system rename function: last error code may be retrieved directly after this call!
+//Windows: ::GetLastError() Linux: errno
+bool renameFileInternal(const Zstring& oldName, const Zstring& newName) //throw ();
{
#ifdef FFS_WIN
- if (!::MoveFileEx(applyLongPathPrefix(oldName).c_str(), //__in LPCTSTR lpExistingFileName,
- applyLongPathPrefix(newName).c_str(), //__in_opt LPCTSTR lpNewFileName,
- 0)) //__in DWORD dwFlags
+ using namespace FreeFileSync;
+
+ const Zstring oldNameFmt = applyLongPathPrefix(oldName);
+ const Zstring newNameFmt = applyLongPathPrefix(newName);
+
+ if (!::MoveFileEx(oldNameFmt.c_str(), //__in LPCTSTR lpExistingFileName,
+ newNameFmt.c_str(), //__in_opt LPCTSTR lpNewFileName,
+ 0)) //__in DWORD dwFlags
{
- const wxString errorMessage = wxString(_("Error moving file:")) + wxT("\n\"") + zToWx(oldName) + wxT("\" ->\n\"") + zToWx(newName) + wxT("\"");
- throw FileError(errorMessage + wxT("\n\n") + FreeFileSync::getLastErrorFormatted());
+ if (::GetLastError() == ERROR_ACCESS_DENIED) //MoveFileEx may fail to rename a read-only file on a SAMBA-share -> (try to) handle this
+ {
+ const DWORD oldNameAttrib = ::GetFileAttributes(oldNameFmt.c_str());
+ if (oldNameAttrib != INVALID_FILE_ATTRIBUTES)
+ {
+ if (::SetFileAttributes(oldNameFmt.c_str(), //address of filename
+ FILE_ATTRIBUTE_NORMAL)) //remove readonly-attribute
+ {
+ //try again...
+ if (::MoveFileEx(oldNameFmt.c_str(), //__in LPCTSTR lpExistingFileName,
+ newNameFmt.c_str(), //__in_opt LPCTSTR lpNewFileName,
+ 0)) //__in DWORD dwFlags
+ {
+ //(try to) restore file attributes
+ ::SetFileAttributes(newNameFmt.c_str(),
+ oldNameAttrib);
+ //don't handle error
+ return true;
+ }
+ else
+ {
+ const DWORD errorCode = ::GetLastError();
+ //cleanup: (try to) restore file attributes: assume oldName is still existing
+ ::SetFileAttributes(oldNameFmt.c_str(),
+ oldNameAttrib);
+
+ ::SetLastError(errorCode); //set error code from ::MoveFileEx()
+ }
+ }
+ }
+ }
+
+ return false;
}
+ return true;
+
#elif defined FFS_LINUX
//rename temporary file
if (::rename(oldName.c_str(), newName.c_str()) != 0)
+ return false;
+
+ return true;
+#endif
+}
+}
+
+
+//rename file: no copying!!!
+void FreeFileSync::renameFile(const Zstring& oldName, const Zstring& newName) //throw (FileError);
+{
+ if (!renameFileInternal(oldName, newName))
{
const wxString errorMessage = wxString(_("Error moving file:")) + wxT("\n\"") + zToWx(oldName) + wxT("\" ->\n\"") + zToWx(newName) + wxT("\"");
throw FileError(errorMessage + wxT("\n\n") + FreeFileSync::getLastErrorFormatted());
}
-#endif
}
@@ -354,41 +422,19 @@ void FreeFileSync::moveFile(const Zstring& sourceFile, const Zstring& targetFile
//moving of symbolic links should work correctly:
-#ifdef FFS_WIN
//first try to move the file directly without copying
- if (::MoveFileEx(applyLongPathPrefix(sourceFile).c_str(), //__in LPCTSTR lpExistingFileName,
- applyLongPathPrefix(targetFile).c_str(), //__in_opt LPCTSTR lpNewFileName,
- 0)) //__in DWORD dwFlags
+ if (::renameFileInternal(sourceFile,
+ targetFile)) //throw ();
return;
-
//if moving failed treat as error (except when it tried to move to a different volume: in this case we will copy the file)
- const DWORD lastError = ::GetLastError();
- if (lastError != ERROR_NOT_SAME_DEVICE)
- {
- const wxString errorMessage = wxString(_("Error moving file:")) + wxT("\n\"") + zToWx(sourceFile) + wxT("\" ->\n\"") +
- zToWx(targetFile) + wxT("\"");
- throw FileError(errorMessage + wxT("\n\n") + FreeFileSync::getLastErrorFormatted(lastError));
- }
-
- //file is on a different volume: let's copy it
- std::auto_ptr<CopyCallbackImpl> copyCallback(callback != NULL ? new CopyCallbackImpl(callback) : NULL);
-
- copyFile(sourceFile,
- targetFile,
- true, //copy symbolic links
- NULL, //supply handler for making shadow copies
- copyCallback.get()); //throw (FileError);
-
+#ifdef FFS_WIN
+ if (::GetLastError() != ERROR_NOT_SAME_DEVICE)
#elif defined FFS_LINUX
- //first try to move the file directly without copying
- if (::rename(sourceFile.c_str(), targetFile.c_str()) == 0)
- return;
-
- //if moving failed treat as error (except when it tried to move to a different volume: in this case we will copy the file)
if (errno != EXDEV)
+#endif
{
- const wxString errorMessage = wxString(_("Error moving file:")) + wxT("\n\"") + zToWx(sourceFile) + wxT("\" ->\n\"") +
- zToWx(targetFile) + wxT("\"");
+ const wxString errorMessage = wxString(_("Error moving file:")) + wxT("\n\"") +
+ zToWx(sourceFile) + wxT("\" ->\n\"") + zToWx(targetFile) + wxT("\"");
throw FileError(errorMessage + wxT("\n\n") + FreeFileSync::getLastErrorFormatted());
}
@@ -398,12 +444,14 @@ void FreeFileSync::moveFile(const Zstring& sourceFile, const Zstring& targetFile
copyFile(sourceFile,
targetFile,
true, //copy symbolic links
- copyCallback.get()); //throw (FileError);
+#ifdef FFS_WIN
+ NULL, //supply handler for making shadow copies
#endif
+ copyCallback.get()); //throw (FileError);
//attention: if copy-operation was cancelled an exception is thrown => sourcefile is not deleted, as we wish!
- removeFile(sourceFile, false);
+ removeFile(sourceFile);
}
@@ -424,7 +472,7 @@ public:
virtual ReturnValDir onDir(const DefaultChar* shortName, const Zstring& fullName)
{
m_dirs.push_back(std::make_pair(Zstring(shortName), fullName));
- return ReturnValDir::Ignore(); //DON'T traverse into subdirs; moveDirectory works recursively!
+ return Loki::Int2Type<ReturnValDir::TRAVERSING_DIR_IGNORE>(); //DON'T traverse into subdirs; moveDirectory works recursively!
}
virtual ReturnValue onError(const wxString& errorText)
{
@@ -445,7 +493,7 @@ void moveDirectoryImpl(const Zstring& sourceDir, const Zstring& targetDir, bool
if (symlinkExists(sourceDir))
{
createDirectory(targetDir, sourceDir, true); //copy symbolic link
- removeDirectory(sourceDir, false); //if target is already another symlink or directory, sourceDir-symlink is silently deleted
+ removeDirectory(sourceDir); //if target is already another symlink or directory, sourceDir-symlink is silently deleted
return;
}
@@ -461,32 +509,21 @@ void moveDirectoryImpl(const Zstring& sourceDir, const Zstring& targetDir, bool
else
{
//first try to move the directory directly without copying
-#ifdef FFS_WIN
- if (::MoveFileEx(applyLongPathPrefix(sourceDir).c_str(), //__in LPCTSTR lpExistingFileName,
- applyLongPathPrefix(targetDir).c_str(), //__in_opt LPCTSTR lpNewFileName,
- 0)) //__in DWORD dwFlags
+ if (::renameFileInternal(sourceDir,
+ targetDir)) //throw ();
return;
//if moving failed treat as error (except when it tried to move to a different volume: in this case we will copy the directory)
- const DWORD lastError = ::GetLastError();
- if (lastError != ERROR_NOT_SAME_DEVICE)
- {
- const wxString errorMessage = wxString(_("Error moving directory:")) + wxT("\n\"") + zToWx(sourceDir) + wxT("\" ->\n\"") +
- zToWx(targetDir) + wxT("\"");
- throw FileError(errorMessage + wxT("\n\n") + FreeFileSync::getLastErrorFormatted(lastError));
- }
+#ifdef FFS_WIN
+ if (::GetLastError() != ERROR_NOT_SAME_DEVICE)
#elif defined FFS_LINUX
- if (::rename(sourceDir.c_str(), targetDir.c_str()) == 0)
- return;
-
- //if moving failed treat as error (except when it tried to move to a different volume: in this case we will copy the directory)
if (errno != EXDEV)
+#endif
{
const wxString errorMessage = wxString(_("Error moving directory:")) + wxT("\n\"") +
zToWx(sourceDir) + wxT("\" ->\n\"") + zToWx(targetDir) + wxT("\"");
throw FileError(errorMessage + wxT("\n\n") + FreeFileSync::getLastErrorFormatted());
}
-#endif
//create target
createDirectory(targetDir, sourceDir, false); //throw (FileError);
@@ -527,7 +564,7 @@ void moveDirectoryImpl(const Zstring& sourceDir, const Zstring& targetDir, bool
//attention: if move-operation was cancelled an exception is thrown => sourceDir is not deleted, as we wish!
//delete source
- removeDirectory(sourceDir, false); //throw (FileError);
+ removeDirectory(sourceDir); //throw (FileError);
}
@@ -536,6 +573,7 @@ void FreeFileSync::moveDirectory(const Zstring& sourceDir, const Zstring& target
#ifdef FFS_WIN
const Zstring& sourceDirFormatted = sourceDir;
const Zstring& targetDirFormatted = targetDir;
+
#elif defined FFS_LINUX
const Zstring sourceDirFormatted = //remove trailing slash
sourceDir.size() > 1 && sourceDir.EndsWith(globalFunctions::FILE_NAME_SEPARATOR) ? //exception: allow '/'
@@ -566,7 +604,7 @@ public:
virtual ReturnValDir onDir(const DefaultChar* shortName, const Zstring& fullName)
{
m_dirs.push_back(fullName);
- return ReturnValDir::Ignore(); //DON'T traverse into subdirs; removeDirectory works recursively!
+ return Loki::Int2Type<ReturnValDir::TRAVERSING_DIR_IGNORE>(); //DON'T traverse into subdirs; removeDirectory works recursively!
}
virtual ReturnValue onError(const wxString& errorText)
{
@@ -579,7 +617,7 @@ private:
};
-void FreeFileSync::removeDirectory(const Zstring& directory, const bool useRecycleBin)
+void FreeFileSync::removeDirectory(const Zstring& directory)
{
//no error situation if directory is not existing! manual deletion relies on it!
#ifdef FFS_WIN
@@ -591,21 +629,15 @@ void FreeFileSync::removeDirectory(const Zstring& directory, const bool useRecyc
#elif defined FFS_LINUX
struct stat dirInfo;
- if (lstat(directory.c_str(), &dirInfo) != 0)
+ if (::lstat(directory.c_str(), &dirInfo) != 0)
return; //neither directory nor any other object (e.g. broken symlink) with that name existing
#endif
- if (useRecycleBin)
- {
- ::moveToRecycleBin(directory);
- return;
- }
-
#ifdef FFS_WIN
//initialize file attributes
if (!::SetFileAttributes( // initialize file attributes: actually NEEDED for symbolic links also!
- directoryFmt.c_str(), // address of directory name
+ directoryFmt.c_str(), // address of directory name
FILE_ATTRIBUTE_NORMAL)) // attributes to set
{
wxString errorMessage = wxString(_("Error deleting directory:")) + wxT("\n\"") + directory.c_str() + wxT("\"");
@@ -644,10 +676,10 @@ void FreeFileSync::removeDirectory(const Zstring& directory, const bool useRecyc
FreeFileSync::traverseFolder(directory, false, &traverser);
//delete files
- std::for_each(fileList.begin(), fileList.end(), boost::bind(removeFile, _1, false));
+ std::for_each(fileList.begin(), fileList.end(), removeFile);
//delete directories recursively
- std::for_each(dirList.begin(), dirList.end(), boost::bind(removeDirectory, _1, false)); //call recursively to correctly handle symbolic links
+ std::for_each(dirList.begin(), dirList.end(), removeDirectory); //call recursively to correctly handle symbolic links
//parent directory is deleted last
#ifdef FFS_WIN
@@ -663,23 +695,6 @@ void FreeFileSync::removeDirectory(const Zstring& directory, const bool useRecyc
}
-#ifdef FFS_WIN
-class CloseHandleOnExit
-{
-public:
- CloseHandleOnExit(HANDLE fileHandle) : fileHandle_(fileHandle) {}
-
- ~CloseHandleOnExit()
- {
- ::CloseHandle(fileHandle_);
- }
-
-private:
- HANDLE fileHandle_;
-};
-#endif
-
-
//optionally: copy directory last change date, DO NOTHING if something fails
void FreeFileSync::copyFileTimes(const Zstring& sourceDir, const Zstring& targetDir)
{
@@ -696,7 +711,8 @@ void FreeFileSync::copyFileTimes(const Zstring& sourceDir, const Zstring& target
NULL);
if (hDirRead == INVALID_HANDLE_VALUE)
return;
- CloseHandleOnExit dummy(hDirRead);
+
+ boost::shared_ptr<void> dummy(hDirRead, ::CloseHandle);
FILETIME creationTime;
FILETIME accessTime;
@@ -715,7 +731,8 @@ void FreeFileSync::copyFileTimes(const Zstring& sourceDir, const Zstring& target
NULL);
if (hDirWrite == INVALID_HANDLE_VALUE)
return;
- CloseHandleOnExit dummy2(hDirWrite);
+
+ boost::shared_ptr<void> dummy2(hDirWrite, ::CloseHandle);
//(try to) set new "last write time"
::SetFileTime(hDirWrite,
@@ -755,7 +772,7 @@ Zstring resolveDirectorySymlink(const Zstring& dirLinkName) //get full target pa
if (hDir == INVALID_HANDLE_VALUE)
return Zstring();
- CloseHandleOnExit dummy(hDir);
+ boost::shared_ptr<void> dummy(hDir, ::CloseHandle);
const unsigned int BUFFER_SIZE = 10000;
TCHAR targetPath[BUFFER_SIZE];
@@ -785,7 +802,6 @@ Zstring resolveDirectorySymlink(const Zstring& dirLinkName) //get full target pa
return targetPath;
}
-//#warning teste
//#include <aclapi.h>
////optionally: copy additional metadata, DO NOTHING if something fails
//void copyAdditionalMetadata(const Zstring& sourceDir, const Zstring& targetDir)
@@ -1156,7 +1172,7 @@ void FreeFileSync::copyFile(const Zstring& sourceFile,
{
try
{
- removeFile(temporary, false); //throw (FileError, std::logic_error);
+ removeFile(temporary); //throw (FileError, std::logic_error);
}
catch(...) {}
@@ -1368,4 +1384,3 @@ bool FreeFileSync::isFatDrive(const Zstring& directoryName)
}
#endif //FFS_WIN
*/
-
diff --git a/shared/fileHandling.h b/shared/fileHandling.h
index 95d8fddd..bb33bd0e 100644
--- a/shared/fileHandling.h
+++ b/shared/fileHandling.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef RECYCLER2_H_INCLUDED
#define RECYCLER2_H_INCLUDED
@@ -20,12 +26,9 @@ bool isMovable(const Zstring& pathFrom, const Zstring& pathTo); //throw()
//optionally: copy creation/last change date, DOES NOTHING if something fails
void copyFileTimes(const Zstring& sourceDir, const Zstring& targetDir); //throw()
-//recycler
-bool recycleBinExists(); //test existence of Recycle Bin API on current system
-
//file handling
-void removeFile(const Zstring& filename, const bool useRecycleBin); //throw (FileError, std::logic_error)
-void removeDirectory(const Zstring& directory, const bool useRecycleBin); //throw (FileError)
+void removeFile(const Zstring& filename); //throw (FileError, std::logic_error)
+void removeDirectory(const Zstring& directory); //throw (FileError)
struct MoveFileCallback //callback functionality
@@ -40,7 +43,7 @@ struct MoveFileCallback //callback functionality
virtual Response requestUiRefresh() = 0; //DON'T throw exceptions here, at least in Windows build!
};
-//rename file: no copying!!!
+//rename file or directory: no copying!!!
void renameFile(const Zstring& oldName, const Zstring& newName); //throw (FileError);
//move source to target; expectations: target not existing, all super-directories of target exist
@@ -72,7 +75,7 @@ void copyFile(const Zstring& sourceFile,
const Zstring& targetFile,
const bool copyFileSymLinks,
ShadowCopy* shadowCopyHandler = NULL, //supply handler for making shadow copies
- CopyFileCallback* callback = NULL); //throw (FileError);
+ CopyFileCallback* callback = NULL); //throw (FileError);
#elif defined FFS_LINUX
void copyFile(const Zstring& sourceFile,
diff --git a/shared/fileID.cpp b/shared/fileID.cpp
index 005707dc..09c63c2e 100644
--- a/shared/fileID.cpp
+++ b/shared/fileID.cpp
@@ -1,9 +1,16 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "fileID.h"
#ifdef FFS_WIN
#include "staticAssert.h"
#include <wx/msw/wrapwin.h> //includes "windows.h"
#include "longPathPrefix.h"
+#include <boost/shared_ptr.hpp>
#elif defined FFS_LINUX
@@ -12,21 +19,6 @@
#ifdef FFS_WIN
-class CloseHandleOnExit
-{
-public:
- CloseHandleOnExit(HANDLE fileHandle) : fileHandle_(fileHandle) {}
-
- ~CloseHandleOnExit()
- {
- ::CloseHandle(fileHandle_);
- }
-
-private:
- HANDLE fileHandle_;
-};
-
-
Utility::FileID Utility::retrieveFileID(const Zstring& filename)
{
//ensure our DWORD_FFS really is the same as DWORD
@@ -44,7 +36,7 @@ Utility::FileID Utility::retrieveFileID(const Zstring& filename)
NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
- CloseHandleOnExit dummy(hFile);
+ boost::shared_ptr<void> dummy(hFile, ::CloseHandle);
BY_HANDLE_FILE_INFORMATION info;
if (::GetFileInformationByHandle(hFile, &info))
diff --git a/shared/fileID.h b/shared/fileID.h
index 7944b368..7b48412a 100644
--- a/shared/fileID.h
+++ b/shared/fileID.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef FILEID_H_INCLUDED
#define FILEID_H_INCLUDED
diff --git a/shared/fileTraverser.cpp b/shared/fileTraverser.cpp
index 7d2615bf..1657f66c 100644
--- a/shared/fileTraverser.cpp
+++ b/shared/fileTraverser.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "fileTraverser.h"
#include "systemConstants.h"
#include "systemFunctions.h"
@@ -7,6 +13,7 @@
#ifdef FFS_WIN
#include <wx/msw/wrapwin.h> //includes "windows.h"
#include "longPathPrefix.h"
+#include <boost/shared_ptr.hpp>
#elif defined FFS_LINUX
#include <sys/stat.h>
@@ -16,36 +23,6 @@
#ifdef FFS_WIN
-class CloseHandleOnExit
-{
-public:
- CloseHandleOnExit(HANDLE fileHandle) : fileHandle_(fileHandle) {}
-
- ~CloseHandleOnExit()
- {
- ::CloseHandle(fileHandle_);
- }
-
-private:
- HANDLE fileHandle_;
-};
-
-
-class CloseFindHandleOnExit
-{
-public:
- CloseFindHandleOnExit(HANDLE searchHandle) : searchHandle_(searchHandle) {}
-
- ~CloseFindHandleOnExit()
- {
- FindClose(searchHandle_);
- }
-
-private:
- HANDLE searchHandle_;
-};
-
-
inline
void setWin32FileInformation(const FILETIME& lastWriteTime,
const DWORD fileSizeHigh,
@@ -76,7 +53,7 @@ bool setWin32FileInformationFromSymlink(const Zstring linkName, FreeFileSync::Tr
if (hFile == INVALID_HANDLE_VALUE)
return false;
- CloseHandleOnExit dummy(hFile);
+ boost::shared_ptr<void> dummy(hFile, ::CloseHandle);
BY_HANDLE_FILE_INFORMATION fileInfoByHandle;
@@ -152,7 +129,8 @@ bool traverseDirectory(const Zstring& directory, FreeFileSync::TraverseCallback*
return true;
}
}
- CloseFindHandleOnExit dummy(searchHandle);
+
+boost::shared_ptr<void> dummy(searchHandle, ::FindClose);
do
{
@@ -170,13 +148,13 @@ bool traverseDirectory(const Zstring& directory, FreeFileSync::TraverseCallback*
const TraverseCallback::ReturnValDir rv = sink->onDir(shortName, fullName);
switch (rv.returnCode)
{
- case TraverseCallback::ReturnValDir::TRAVERSING_STOP:
+ case TraverseCallback::ReturnValDir::TRAVERSING_DIR_STOP:
return false;
- case TraverseCallback::ReturnValDir::TRAVERSING_IGNORE_DIR:
+ case TraverseCallback::ReturnValDir::TRAVERSING_DIR_IGNORE:
break;
- case TraverseCallback::ReturnValDir::TRAVERSING_CONTINUE:
+ case TraverseCallback::ReturnValDir::TRAVERSING_DIR_CONTINUE:
//traverse into symbolic links, junctions, etc. if requested only:
if (traverseDirectorySymlinks || (~fileMetaData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT))
if (!traverseDirectory<traverseDirectorySymlinks>(fullName, rv.subDirCb, level + 1))
@@ -312,13 +290,13 @@ bool traverseDirectory(const Zstring& directory, FreeFileSync::TraverseCallback*
const TraverseCallback::ReturnValDir rv = sink->onDir(shortName, fullName);
switch (rv.returnCode)
{
- case TraverseCallback::ReturnValDir::TRAVERSING_STOP:
+ case TraverseCallback::ReturnValDir::TRAVERSING_DIR_STOP:
return false;
- case TraverseCallback::ReturnValDir::TRAVERSING_IGNORE_DIR:
+ case TraverseCallback::ReturnValDir::TRAVERSING_DIR_IGNORE:
break;
- case TraverseCallback::ReturnValDir::TRAVERSING_CONTINUE:
+ case TraverseCallback::ReturnValDir::TRAVERSING_DIR_CONTINUE:
//traverse into symbolic links, junctions, etc. if requested only:
if (traverseDirectorySymlinks || !isSymbolicLink) //traverse into symbolic links if requested only
if (!traverseDirectory<traverseDirectorySymlinks>(fullName, rv.subDirCb, level + 1))
@@ -365,6 +343,3 @@ void FreeFileSync::traverseFolder(const Zstring& directory,
else
traverseDirectory<false>(directoryFormatted, sink, 0);
}
-
-
-
diff --git a/shared/fileTraverser.h b/shared/fileTraverser.h
index c1277d87..dc5d75e0 100644
--- a/shared/fileTraverser.h
+++ b/shared/fileTraverser.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef FILETRAVERSER_H_INCLUDED
#define FILETRAVERSER_H_INCLUDED
@@ -5,6 +11,7 @@
#include <set>
#include <memory>
#include <wx/longlong.h>
+#include "loki/TypeManip.h"
//advanced file traverser returning metadata and hierarchical information on files and directories
@@ -30,23 +37,18 @@ public:
class ReturnValDir
{
public:
- //some proxy classes
- class Stop {};
- class Ignore {};
- class Continue {};
-
- ReturnValDir(const Stop&) : returnCode(TRAVERSING_STOP), subDirCb(NULL) {}
- ReturnValDir(const Ignore&) : returnCode(TRAVERSING_IGNORE_DIR), subDirCb(NULL) {}
- ReturnValDir(const Continue&, TraverseCallback* subDirCallback) : returnCode(TRAVERSING_CONTINUE), subDirCb(subDirCallback) {}
-
-
enum ReturnValueEnh
{
- TRAVERSING_STOP,
- TRAVERSING_IGNORE_DIR,
- TRAVERSING_CONTINUE
+ TRAVERSING_DIR_STOP,
+ TRAVERSING_DIR_IGNORE,
+ TRAVERSING_DIR_CONTINUE
};
+ ReturnValDir(Loki::Int2Type<TRAVERSING_DIR_STOP>) : returnCode(TRAVERSING_DIR_STOP), subDirCb(NULL) {}
+ ReturnValDir(Loki::Int2Type<TRAVERSING_DIR_IGNORE>) : returnCode(TRAVERSING_DIR_IGNORE), subDirCb(NULL) {}
+ ReturnValDir(Loki::Int2Type<TRAVERSING_DIR_CONTINUE>, TraverseCallback* subDirCallback) : returnCode(TRAVERSING_DIR_CONTINUE), subDirCb(subDirCallback) {}
+
+
const ReturnValueEnh returnCode;
TraverseCallback* const subDirCb;
};
diff --git a/shared/globalFunctions.cpp b/shared/globalFunctions.cpp
index a5ebba68..029d542a 100644
--- a/shared/globalFunctions.cpp
+++ b/shared/globalFunctions.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "globalFunctions.h"
#include <wx/msgdlg.h>
#include <wx/file.h>
@@ -43,6 +49,8 @@ Performance::Performance() :
Performance::~Performance()
{
+ //keep non-inline destructor for std::auto_ptr to work with forward declaration
+
if (!resultWasShown)
showResult();
}
diff --git a/shared/globalFunctions.h b/shared/globalFunctions.h
index 06238236..781e2dec 100644
--- a/shared/globalFunctions.h
+++ b/shared/globalFunctions.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef GLOBALFUNCTIONS_H_INCLUDED
#define GLOBALFUNCTIONS_H_INCLUDED
diff --git a/shared/guid.cpp b/shared/guid.cpp
index 70282efa..785ab200 100644
--- a/shared/guid.cpp
+++ b/shared/guid.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "guid.h"
#include <stdexcept>
diff --git a/shared/guid.h b/shared/guid.h
index b2718d7f..d639fff5 100644
--- a/shared/guid.h
+++ b/shared/guid.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef GUID_H_INCLUDED
#define GUID_H_INCLUDED
diff --git a/shared/helpProvider.cpp b/shared/helpProvider.cpp
new file mode 100644
index 00000000..9cc4aeed
--- /dev/null
+++ b/shared/helpProvider.cpp
@@ -0,0 +1,44 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
+#include "helpProvider.h"
+#include <wx/help.h>
+#include "standardPaths.h"
+
+
+namespace
+{
+class HelpProvider
+{
+public:
+ HelpProvider()
+ {
+ controller.Initialize(FreeFileSync::getResourceDir() +
+#ifdef FFS_WIN
+ wxT("FreeFileSync.chm"));
+#elif defined FFS_LINUX
+ wxT("Help/FreeFileSync.hhp"));
+#endif
+ }
+
+ void showHelp(const wxString& section)
+ {
+ if (section.empty())
+ controller.DisplayContents();
+ else
+ controller.DisplaySection(section);
+ }
+
+private:
+ wxHelpController controller;
+};
+}
+
+void FreeFileSync::displayHelpEntry(const wxString& section)
+{
+ static HelpProvider provider;
+ provider.showHelp(section);
+}
diff --git a/shared/helpProvider.h b/shared/helpProvider.h
new file mode 100644
index 00000000..538e151c
--- /dev/null
+++ b/shared/helpProvider.h
@@ -0,0 +1,17 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
+#ifndef HELPPROVIDER_H_INCLUDED
+#define HELPPROVIDER_H_INCLUDED
+
+#include <wx/string.h>
+
+namespace FreeFileSync
+{
+void displayHelpEntry(const wxString& section = wxEmptyString);
+}
+
+#endif // HELPPROVIDER_H_INCLUDED
diff --git a/shared/inotify/CHANGELOG b/shared/inotify/CHANGELOG
index 8830d918..5c3940fa 100644
--- a/shared/inotify/CHANGELOG
+++ b/shared/inotify/CHANGELOG
@@ -1,3 +1,6 @@
+0.7.3 2009-12-09
+ * cleanup of includes
+
0.7.2 2007-04-18
* added #include <stdint.h> (required for Debian Sarge, #0000155)
diff --git a/shared/inotify/COPYING b/shared/inotify/COPYING
index 272a9567..17959846 100644
--- a/shared/inotify/COPYING
+++ b/shared/inotify/COPYING
@@ -1,6 +1,6 @@
inotify C++ interface
-Copyright (C) 2006, 2007 Lukas Jelinek, <lukas@aiken.cz>
+Copyright (C) 2006, 2007, 2009 Lukas Jelinek, <lukas@aiken.cz>
This program is free software; you can redistribute it and/or
modify it under the terms of one of the following licenses:
diff --git a/shared/inotify/LICENSE-X11 b/shared/inotify/LICENSE-X11
index d632087f..c2db7930 100644
--- a/shared/inotify/LICENSE-X11
+++ b/shared/inotify/LICENSE-X11
@@ -1,4 +1,4 @@
-Copyright (c) 2006, 2007 Lukas Jelinek
+Copyright (c) 2006, 2007, 2009 Lukas Jelinek
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
diff --git a/shared/inotify/README b/shared/inotify/README
index f3dc0db0..2e8e2aa2 100644
--- a/shared/inotify/README
+++ b/shared/inotify/README
@@ -1,7 +1,7 @@
inotify C++ interface
-(c) Lukas Jelinek, 2006, 2007
+(c) Lukas Jelinek, 2006, 2007, 2009
1. About
2. Requirements
diff --git a/shared/inotify/VERSION b/shared/inotify/VERSION
deleted file mode 100644
index 7486fdbc..00000000
--- a/shared/inotify/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-0.7.2
diff --git a/shared/inotify/doc/html/annotated.html b/shared/inotify/doc/html/annotated.html
index 29fc335f..4f67400b 100644
--- a/shared/inotify/doc/html/annotated.html
+++ b/shared/inotify/doc/html/annotated.html
@@ -1,29 +1,34 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Class List</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li id="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
-<h1>inotify-cxx Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
- <tr><td class="indexkey"><a class="el" href="classInotify.html">Inotify</a></td><td class="indexvalue"><a class="el" href="classInotify.html">Inotify</a> class </td></tr>
- <tr><td class="indexkey"><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td class="indexvalue"><a class="el" href="classInotify.html">Inotify</a> event class </td></tr>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li class="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="classInotify.html">Inotify</a></td><td class="indexvalue"><a class="el" href="classInotify.html" title="inotify class">Inotify</a> class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td class="indexvalue"><a class="el" href="classInotify.html" title="inotify class">Inotify</a> event class </td></tr>
<tr><td class="indexkey"><a class="el" href="classInotifyException.html">InotifyException</a></td><td class="indexvalue">Class for inotify exceptions </td></tr>
- <tr><td class="indexkey"><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td class="indexvalue"><a class="el" href="classInotify.html">Inotify</a> watch class </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td class="indexvalue"><a class="el" href="classInotify.html" title="inotify class">Inotify</a> watch class </td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/classInotify-members.html b/shared/inotify/doc/html/classInotify-members.html
index 45fd612d..3370bb6c 100644
--- a/shared/inotify/doc/html/classInotify-members.html
+++ b/shared/inotify/doc/html/classInotify-members.html
@@ -1,21 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Member List</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
<h1>Inotify Member List</h1>This is the complete list of members for <a class="el" href="classInotify.html">Inotify</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83">Add</a>(InotifyWatch *pWatch)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#35dab56d3e10bf28b5e457871adddb58">Add</a>(InotifyWatch &amp;rWatch)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr>
@@ -23,17 +28,23 @@
<tr class="memlist"><td><a class="el" href="classInotify.html#182d19b667c9e0899802b70a579eff40">FindWatch</a>(int iDescriptor)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#a4d6b9d1a9a496862febbe5bffd798c2">FindWatch</a>(const std::string &amp;rPath)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b">GetCapability</a>(InotifyCapability_t cap)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">GetDescriptor</a>() const</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotify.html#9bf5f7716649d5b5f468c2242fb5e099">GetEnabledCount</a>() const</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotify.html#0233ddfe40844d729505fdfd709d22cc">GetCapabilityPath</a>(InotifyCapability_t cap)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotify.html#abab7015203bf36d0256e75d4f4861f9">GetDescriptor</a>() const </td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotify.html#6f432affb46f85f7bc19661d5bc77063">GetEnabledCount</a>() const </td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#490a3f824c6d041d31ccaabe9bd92008">GetEvent</a>(InotifyEvent *pEvt)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#b028c8fa988f6bbb2ef773db3ea3a2d3">GetEvent</a>(InotifyEvent &amp;rEvt)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#a3c533f956871f904949832ac8f5fbde">GetEventCount</a>()</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#d8e4a4a87d005c71c0b5ea9c6dd53c42">GetMaxEvents</a>()</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#c18b7732f67832260fbbd47aebb8af51">GetMaxInstances</a>()</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#86dae1b7a72c0d8fc2a632444a0f2f1f">GetMaxWatches</a>()</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline, static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotify.html#b53b7935bda7425b002946d78bfe5863">GetWatchCount</a>() const</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotify.html#716ae90a00dd4895709ea9b8f7959075">GetWatchCount</a>() const </td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#a6fe6e9cb3343665eb968fcd5170cfb9">Inotify</a>()</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#10880f490c33acd8bd24664fc7bce4ae">InotifyWatch</a> class</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [friend]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotify.html#eee7847efd93b681fddac56860fc7958">m_buf</a></td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotify.html#0c1d6c969292dbb7c8c1283a3d8f55e0">m_events</a></td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotify.html#95d6d0ecefff77bd3ee50f1586a4552b">m_fd</a></td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotify.html#62f275db6375a366023b2e46f73e3ecc">m_paths</a></td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotify.html#4d07f3a4412028d687936d2479d9a976">m_watches</a></td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#19cde43d082ff92bd02654610019300d">PeekEvent</a>(InotifyEvent *pEvt)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#287dc0d238fa6edc3269441cb284f979">PeekEvent</a>(InotifyEvent &amp;rEvt)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#21c39bb8e5bbc1941b945c18f9005b84">Remove</a>(InotifyWatch *pWatch)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>
@@ -47,8 +58,8 @@
<tr class="memlist"><td><a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b">SetNonBlock</a>(bool fNonBlock)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#139c27c6643bb199619f3eae9b32e53b">WaitForEvents</a>(bool fNoIntr=false)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInotify.html#f19dd5e491395673e4798eb9dbf5f682">~Inotify</a>()</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/classInotify.html b/shared/inotify/doc/html/classInotify.html
index f37e55f6..1842796c 100644
--- a/shared/inotify/doc/html/classInotify.html
+++ b/shared/inotify/doc/html/classInotify.html
@@ -1,25 +1,32 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Inotify Class Reference</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
<h1>Inotify Class Reference</h1><!-- doxytag: class="Inotify" -->inotify class
<a href="#_details">More...</a>
<p>
-<code>#include &lt;<a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a>&gt;</code>
+<code>#include &lt;<a class="el" href="inotify-cxx_8h_source.html">inotify-cxx.h</a>&gt;</code>
+<p>
+
<p>
<a href="classInotify-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
@@ -48,12 +55,12 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#bc1fd5830ca561efb69bcd2283981741">RemoveAll</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes all watches. <a href="#bc1fd5830ca561efb69bcd2283981741"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#b53b7935bda7425b002946d78bfe5863">GetWatchCount</a> () const</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#716ae90a00dd4895709ea9b8f7959075">GetWatchCount</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the count of watches. <a href="#b53b7935bda7425b002946d78bfe5863"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#9bf5f7716649d5b5f468c2242fb5e099">GetEnabledCount</a> () const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the count of watches. <a href="#716ae90a00dd4895709ea9b8f7959075"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#6f432affb46f85f7bc19661d5bc77063">GetEnabledCount</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the count of enabled watches. <a href="#9bf5f7716649d5b5f468c2242fb5e099"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the count of enabled watches. <a href="#6f432affb46f85f7bc19661d5bc77063"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#139c27c6643bb199619f3eae9b32e53b">WaitForEvents</a> (bool fNoIntr=false) throw (InotifyException)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Waits for inotify events. <a href="#139c27c6643bb199619f3eae9b32e53b"></a><br></td></tr>
@@ -78,9 +85,9 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#a4d6b9d1a9a496862febbe5bffd798c2">FindWatch</a> (const std::string &amp;rPath)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a watch by a filesystem path. <a href="#a4d6b9d1a9a496862febbe5bffd798c2"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">GetDescriptor</a> () const</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#abab7015203bf36d0256e75d4f4861f9">GetDescriptor</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the file descriptor. <a href="#678271faf4799840ad71805163a24b13"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the file descriptor. <a href="#abab7015203bf36d0256e75d4f4861f9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b">SetNonBlock</a> (bool fNonBlock) throw (InotifyException)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enables/disables non-blocking mode. <a href="#b2c8ab8ad4322fb6f0dae0eae442402b"></a><br></td></tr>
@@ -112,6 +119,25 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#5064380cdb4a726ab33f3fa18d15c77a">SetMaxWatches</a> (uint32_t val) throw (InotifyException)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the maximum number of inotify watches per instance. <a href="#5064380cdb4a726ab33f3fa18d15c77a"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Static Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#0233ddfe40844d729505fdfd709d22cc">GetCapabilityPath</a> (<a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a> cap) throw (InotifyException)</td></tr>
+
+<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#95d6d0ecefff77bd3ee50f1586a4552b">m_fd</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">file descriptor <a href="#95d6d0ecefff77bd3ee50f1586a4552b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="inotify-cxx_8h.html#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a">IN_WATCH_MAP</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#4d07f3a4412028d687936d2479d9a976">m_watches</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">watches (by descriptors) <a href="#4d07f3a4412028d687936d2479d9a976"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6">IN_WP_MAP</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#62f275db6375a366023b2e46f73e3ecc">m_paths</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">watches (by paths) <a href="#62f275db6375a366023b2e46f73e3ecc"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#eee7847efd93b681fddac56860fc7958">m_buf</a> [INOTIFY_BUFLEN]</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">buffer for events <a href="#eee7847efd93b681fddac56860fc7958"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::deque&lt; <a class="el" href="classInotifyEvent.html">InotifyEvent</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#0c1d6c969292dbb7c8c1283a3d8f55e0">m_events</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">event queue <a href="#0c1d6c969292dbb7c8c1283a3d8f55e0"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#10880f490c33acd8bd24664fc7bce4ae">InotifyWatch</a></td></tr>
@@ -120,9 +146,7 @@
inotify class
<p>
It holds information about the inotify device descriptor and manages the event queue.<p>
-If the INOTIFY_THREAD_SAFE is defined this class is thread-safe.
-<p>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
+If the INOTIFY_THREAD_SAFE is defined this class is thread-safe. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="a6fe6e9cb3343665eb968fcd5170cfb9"></a><!-- doxytag: member="Inotify::Inotify" ref="a6fe6e9cb3343665eb968fcd5170cfb9" args="()" -->
<div class="memitem">
<div class="memproto">
@@ -132,7 +156,7 @@ If the INOTIFY_THREAD_SAFE is defined this class is thread-safe.
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
</tr>
</table>
</div>
@@ -144,7 +168,7 @@ Constructor.
Creates and initializes an instance of inotify communication object (opens the inotify device).<p>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if inotify isn't available </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if inotify isn't available </td></tr>
</table>
</dl>
@@ -159,7 +183,7 @@ Creates and initializes an instance of inotify communication object (opens the i
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"></td>
+ <td></td>
</tr>
</table>
</div>
@@ -168,28 +192,39 @@ Creates and initializes an instance of inotify communication object (opens the i
<p>
Destructor.
<p>
-Calls <a class="el" href="classInotify.html#86ae86c43ea1a72f562ca46393309635">Close()</a> due to clean-up.
+Calls <a class="el" href="classInotify.html#86ae86c43ea1a72f562ca46393309635" title="Removes all watches and closes the inotify device.">Close()</a> due to clean-up.
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="86ae86c43ea1a72f562ca46393309635"></a><!-- doxytag: member="Inotify::Close" ref="86ae86c43ea1a72f562ca46393309635" args="()" -->
+<a class="anchor" name="35dab56d3e10bf28b5e457871adddb58"></a><!-- doxytag: member="Inotify::Add" ref="35dab56d3e10bf28b5e457871adddb58" args="(InotifyWatch &amp;rWatch)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void Inotify::Close </td>
+ <td class="memname">void Inotify::Add </td>
<td>(</td>
- <td class="paramname"> </td>
+ <td class="paramtype"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>rWatch</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Removes all watches and closes the inotify device.
+Adds a new watch.
<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rWatch</em>&nbsp;</td><td>inotify watch</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if adding failed </td></tr>
+ </table>
+</dl>
</div>
</div><p>
@@ -203,7 +238,7 @@ Removes all watches and closes the inotify device.
<td class="paramtype"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> *&nbsp;</td>
<td class="paramname"> <em>pWatch</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
</tr>
</table>
</div>
@@ -219,156 +254,197 @@ Adds a new watch.
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if adding failed </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if adding failed </td></tr>
</table>
</dl>
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.png" border="0" usemap="#classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph_map" alt=""></center>
+<map name="classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph_map">
+<area shape="rect" href="classInotify.html#35dab56d3e10bf28b5e457871adddb58" title="Adds a new watch." alt="" coords="143,5,228,32"></map>
+</div>
+
</div>
</div><p>
-<a class="anchor" name="35dab56d3e10bf28b5e457871adddb58"></a><!-- doxytag: member="Inotify::Add" ref="35dab56d3e10bf28b5e457871adddb58" args="(InotifyWatch &amp;rWatch)" -->
+<a class="anchor" name="86ae86c43ea1a72f562ca46393309635"></a><!-- doxytag: member="Inotify::Close" ref="86ae86c43ea1a72f562ca46393309635" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void Inotify::Add </td>
+ <td class="memname">void Inotify::Close </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>rWatch</em> </td>
+ <td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline]</code></td>
+ <td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Adds a new watch.
+Removes all watches and closes the inotify device.
+<p>
+
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.png" border="0" usemap="#classInotify_86ae86c43ea1a72f562ca46393309635_icgraph_map" alt=""></center>
+<map name="classInotify_86ae86c43ea1a72f562ca46393309635_icgraph_map">
+<area shape="rect" href="classInotify.html#f19dd5e491395673e4798eb9dbf5f682" title="Destructor." alt="" coords="151,5,255,32"></map>
+</div>
+
+</div>
+</div><p>
+<a class="anchor" name="a4d6b9d1a9a496862febbe5bffd798c2"></a><!-- doxytag: member="Inotify::FindWatch" ref="a4d6b9d1a9a496862febbe5bffd798c2" args="(const std::string &amp;rPath)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> * Inotify::FindWatch </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>rPath</em> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Searches for a watch by a filesystem path.
<p>
+It tries to find a watch by the given filesystem path.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rWatch</em>&nbsp;</td><td>inotify watch</td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Exceptions:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if adding failed </td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rPath</em>&nbsp;</td><td>filesystem path </td></tr>
</table>
</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to a watch; NULL if no such watch exists</dd></dl>
+<dl class="attention" compact><dt><b>Attention:</b></dt><dd>The path must be exactly identical to the one used for the searched watch. Be careful about absolute/relative and case-insensitive paths. </dd></dl>
</div>
</div><p>
-<a class="anchor" name="21c39bb8e5bbc1941b945c18f9005b84"></a><!-- doxytag: member="Inotify::Remove" ref="21c39bb8e5bbc1941b945c18f9005b84" args="(InotifyWatch *pWatch)" -->
+<a class="anchor" name="182d19b667c9e0899802b70a579eff40"></a><!-- doxytag: member="Inotify::FindWatch" ref="182d19b667c9e0899802b70a579eff40" args="(int iDescriptor)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void Inotify::Remove </td>
+ <td class="memname"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> * Inotify::FindWatch </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> *&nbsp;</td>
- <td class="paramname"> <em>pWatch</em> </td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>iDescriptor</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
+ <td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Removes a watch.
+Searches for a watch by a watch descriptor.
<p>
-If the given watch is not present it does nothing.<p>
+It tries to find a watch by the given descriptor.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pWatch</em>&nbsp;</td><td>inotify watch</td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Exceptions:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if removing failed </td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>iDescriptor</em>&nbsp;</td><td>watch descriptor </td></tr>
</table>
</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to a watch; NULL if no such watch exists </dd></dl>
</div>
</div><p>
-<a class="anchor" name="ac1a52b2ff6bfec07021a44e55d496a6"></a><!-- doxytag: member="Inotify::Remove" ref="ac1a52b2ff6bfec07021a44e55d496a6" args="(InotifyWatch &amp;rWatch)" -->
+<a class="anchor" name="70b3b57e8661fbb4c5bc404b86225c3b"></a><!-- doxytag: member="Inotify::GetCapability" ref="70b3b57e8661fbb4c5bc404b86225c3b" args="(InotifyCapability_t cap)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void Inotify::Remove </td>
+ <td class="memname">uint32_t Inotify::GetCapability </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>rWatch</em> </td>
+ <td class="paramtype"><a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a>&nbsp;</td>
+ <td class="paramname"> <em>cap</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Removes a watch.
+Acquires a particular inotify capability/limit.
<p>
-If the given watch is not present it does nothing.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rWatch</em>&nbsp;</td><td>inotify watch</td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>cap</em>&nbsp;</td><td>capability/limit identifier </td></tr>
</table>
</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>capability/limit value </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if removing failed </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be acquired </td></tr>
</table>
</dl>
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.png" border="0" usemap="#classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph_map" alt=""></center>
+<map name="classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph_map">
+<area shape="rect" href="classInotify.html#d8e4a4a87d005c71c0b5ea9c6dd53c42" title="Returns the maximum number of events in the kernel queue." alt="" coords="204,5,351,32"><area shape="rect" href="classInotify.html#c18b7732f67832260fbbd47aebb8af51" title="Returns the maximum number of inotify instances per process." alt="" coords="195,56,360,83"><area shape="rect" href="classInotify.html#86dae1b7a72c0d8fc2a632444a0f2f1f" title="Returns the maximum number of inotify watches per instance." alt="" coords="197,107,357,133"></map>
+</div>
+
</div>
</div><p>
-<a class="anchor" name="bc1fd5830ca561efb69bcd2283981741"></a><!-- doxytag: member="Inotify::RemoveAll" ref="bc1fd5830ca561efb69bcd2283981741" args="()" -->
+<a class="anchor" name="0233ddfe40844d729505fdfd709d22cc"></a><!-- doxytag: member="Inotify::GetCapabilityPath" ref="0233ddfe40844d729505fdfd709d22cc" args="(InotifyCapability_t cap)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void Inotify::RemoveAll </td>
+ <td class="memname">std::string Inotify::GetCapabilityPath </td>
<td>(</td>
- <td class="paramname"> </td>
+ <td class="paramtype"><a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a>&nbsp;</td>
+ <td class="paramname"> <em>cap</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [static, private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Removes all watches.
-<p>
</div>
</div><p>
-<a class="anchor" name="b53b7935bda7425b002946d78bfe5863"></a><!-- doxytag: member="Inotify::GetWatchCount" ref="b53b7935bda7425b002946d78bfe5863" args="() const" -->
+<a class="anchor" name="abab7015203bf36d0256e75d4f4861f9"></a><!-- doxytag: member="Inotify::GetDescriptor" ref="abab7015203bf36d0256e75d4f4861f9" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">size_t Inotify::GetWatchCount </td>
+ <td class="memname">int Inotify::GetDescriptor </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the count of watches.
+Returns the file descriptor.
<p>
-This is the total count of all watches (regardless whether enabled or not).<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>count of watches</dd></dl>
-<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#9bf5f7716649d5b5f468c2242fb5e099">GetEnabledCount()</a> </dd></dl>
+The descriptor can be used in standard low-level file functions (poll(), select(), fcntl() etc.).<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>valid file descriptor or -1 for inactive object</dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b" title="Enables/disables non-blocking mode.">SetNonBlock()</a> </dd></dl>
</div>
</div><p>
-<a class="anchor" name="9bf5f7716649d5b5f468c2242fb5e099"></a><!-- doxytag: member="Inotify::GetEnabledCount" ref="9bf5f7716649d5b5f468c2242fb5e099" args="() const" -->
+<a class="anchor" name="6f432affb46f85f7bc19661d5bc77063"></a><!-- doxytag: member="Inotify::GetEnabledCount" ref="6f432affb46f85f7bc19661d5bc77063" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -377,7 +453,7 @@ This is the total count of all watches (regardless whether enabled or not).<p>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
@@ -387,64 +463,40 @@ This is the total count of all watches (regardless whether enabled or not).<p>
Returns the count of enabled watches.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>count of enabled watches</dd></dl>
-<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#b53b7935bda7425b002946d78bfe5863">GetWatchCount()</a> </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#716ae90a00dd4895709ea9b8f7959075" title="Returns the count of watches.">GetWatchCount()</a> </dd></dl>
</div>
</div><p>
-<a class="anchor" name="139c27c6643bb199619f3eae9b32e53b"></a><!-- doxytag: member="Inotify::WaitForEvents" ref="139c27c6643bb199619f3eae9b32e53b" args="(bool fNoIntr=false)" -->
+<a class="anchor" name="b028c8fa988f6bbb2ef773db3ea3a2d3"></a><!-- doxytag: member="Inotify::GetEvent" ref="b028c8fa988f6bbb2ef773db3ea3a2d3" args="(InotifyEvent &amp;rEvt)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void Inotify::WaitForEvents </td>
+ <td class="memname">bool Inotify::GetEvent </td>
<td>(</td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>fNoIntr</em> = <code>false</code> </td>
+ <td class="paramtype"><a class="el" href="classInotifyEvent.html">InotifyEvent</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>rEvt</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Waits for inotify events.
+Extracts a queued inotify event.
<p>
-It waits until one or more events occur. When called in nonblocking mode it only retrieves occurred events to the internal queue and exits.<p>
+The extracted event is removed from the queue.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fNoIntr</em>&nbsp;</td><td>if true it re-calls the system call after a handled signal</td></tr>
+ <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>rEvt</em>&nbsp;</td><td>event object</td></tr>
</table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if reading events failed</td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown only in very anomalous cases </td></tr>
</table>
</dl>
-<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b">SetNonBlock()</a> </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="a3c533f956871f904949832ac8f5fbde"></a><!-- doxytag: member="Inotify::GetEventCount" ref="a3c533f956871f904949832ac8f5fbde" args="()" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t Inotify::GetEventCount </td>
- <td>(</td>
- <td class="paramname"> </td>
- <td>&nbsp;)&nbsp;</td>
- <td width="100%"><code> [inline]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Returns the count of received and queued events.
-<p>
-This number is related to the events in the queue inside this object, not to the events pending in the kernel.<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>count of events </dd></dl>
</div>
</div><p>
@@ -458,7 +510,7 @@ This number is related to the events in the queue inside this object, not to the
<td class="paramtype"><a class="el" href="classInotifyEvent.html">InotifyEvent</a> *&nbsp;</td>
<td class="paramname"> <em>pEvt</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
</tr>
</table>
</div>
@@ -475,295 +527,329 @@ The extracted event is removed from the queue. If the pointer is NULL it does no
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if the provided pointer is NULL </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if the provided pointer is NULL </td></tr>
</table>
</dl>
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.png" border="0" usemap="#classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph_map" alt=""></center>
+<map name="classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph_map">
+<area shape="rect" href="classInotify.html#b028c8fa988f6bbb2ef773db3ea3a2d3" title="Extracts a queued inotify event." alt="" coords="172,5,287,32"></map>
+</div>
+
</div>
</div><p>
-<a class="anchor" name="b028c8fa988f6bbb2ef773db3ea3a2d3"></a><!-- doxytag: member="Inotify::GetEvent" ref="b028c8fa988f6bbb2ef773db3ea3a2d3" args="(InotifyEvent &amp;rEvt)" -->
+<a class="anchor" name="a3c533f956871f904949832ac8f5fbde"></a><!-- doxytag: member="Inotify::GetEventCount" ref="a3c533f956871f904949832ac8f5fbde" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">bool Inotify::GetEvent </td>
+ <td class="memname">size_t Inotify::GetEventCount </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classInotifyEvent.html">InotifyEvent</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>rEvt</em> </td>
+ <td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline]</code></td>
+ <td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Extracts a queued inotify event.
+Returns the count of received and queued events.
<p>
-The extracted event is removed from the queue.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>rEvt</em>&nbsp;</td><td>event object</td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Exceptions:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown only in very anomalous cases </td></tr>
- </table>
-</dl>
+This number is related to the events in the queue inside this object, not to the events pending in the kernel.<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>count of events </dd></dl>
</div>
</div><p>
-<a class="anchor" name="19cde43d082ff92bd02654610019300d"></a><!-- doxytag: member="Inotify::PeekEvent" ref="19cde43d082ff92bd02654610019300d" args="(InotifyEvent *pEvt)" -->
+<a class="anchor" name="d8e4a4a87d005c71c0b5ea9c6dd53c42"></a><!-- doxytag: member="Inotify::GetMaxEvents" ref="d8e4a4a87d005c71c0b5ea9c6dd53c42" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">bool Inotify::PeekEvent </td>
+ <td class="memname">static uint32_t Inotify::GetMaxEvents </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classInotifyEvent.html">InotifyEvent</a> *&nbsp;</td>
- <td class="paramname"> <em>pEvt</em> </td>
+ <td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Extracts a queued inotify event (without removing).
+Returns the maximum number of events in the kernel queue.
<p>
-The extracted event stays in the queue. If the pointer is NULL it does nothing.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>pEvt</em>&nbsp;</td><td>event object</td></tr>
- </table>
-</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>maximum number of events in the kernel queue </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if the provided pointer is NULL </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be acquired </td></tr>
</table>
</dl>
</div>
</div><p>
-<a class="anchor" name="287dc0d238fa6edc3269441cb284f979"></a><!-- doxytag: member="Inotify::PeekEvent" ref="287dc0d238fa6edc3269441cb284f979" args="(InotifyEvent &amp;rEvt)" -->
+<a class="anchor" name="c18b7732f67832260fbbd47aebb8af51"></a><!-- doxytag: member="Inotify::GetMaxInstances" ref="c18b7732f67832260fbbd47aebb8af51" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">bool Inotify::PeekEvent </td>
+ <td class="memname">static uint32_t Inotify::GetMaxInstances </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="classInotifyEvent.html">InotifyEvent</a> &amp;&nbsp;</td>
- <td class="paramname"> <em>rEvt</em> </td>
+ <td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Extracts a queued inotify event (without removing).
+Returns the maximum number of inotify instances per process.
<p>
-The extracted event stays in the queue.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>rEvt</em>&nbsp;</td><td>event object</td></tr>
- </table>
-</dl>
+It means the maximum number of open inotify file descriptors per running process.<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>maximum number of inotify instances </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown only in very anomalous cases </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be acquired </td></tr>
</table>
</dl>
</div>
</div><p>
-<a class="anchor" name="182d19b667c9e0899802b70a579eff40"></a><!-- doxytag: member="Inotify::FindWatch" ref="182d19b667c9e0899802b70a579eff40" args="(int iDescriptor)" -->
+<a class="anchor" name="86dae1b7a72c0d8fc2a632444a0f2f1f"></a><!-- doxytag: member="Inotify::GetMaxWatches" ref="86dae1b7a72c0d8fc2a632444a0f2f1f" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> * Inotify::FindWatch </td>
+ <td class="memname">static uint32_t Inotify::GetMaxWatches </td>
<td>(</td>
- <td class="paramtype">int&nbsp;</td>
- <td class="paramname"> <em>iDescriptor</em> </td>
+ <td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Searches for a watch by a watch descriptor.
+Returns the maximum number of inotify watches per instance.
<p>
-It tries to find a watch by the given descriptor.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
+It means the maximum number of inotify watches per inotify file descriptor.<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>maximum number of inotify watches </dd></dl>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>iDescriptor</em>&nbsp;</td><td>watch descriptor </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be acquired </td></tr>
</table>
</dl>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to a watch; NULL if no such watch exists </dd></dl>
</div>
</div><p>
-<a class="anchor" name="a4d6b9d1a9a496862febbe5bffd798c2"></a><!-- doxytag: member="Inotify::FindWatch" ref="a4d6b9d1a9a496862febbe5bffd798c2" args="(const std::string &amp;rPath)" -->
+<a class="anchor" name="716ae90a00dd4895709ea9b8f7959075"></a><!-- doxytag: member="Inotify::GetWatchCount" ref="716ae90a00dd4895709ea9b8f7959075" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> * Inotify::FindWatch </td>
+ <td class="memname">size_t Inotify::GetWatchCount </td>
<td>(</td>
- <td class="paramtype">const std::string &amp;&nbsp;</td>
- <td class="paramname"> <em>rPath</em> </td>
+ <td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Searches for a watch by a filesystem path.
+Returns the count of watches.
<p>
-It tries to find a watch by the given filesystem path.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rPath</em>&nbsp;</td><td>filesystem path </td></tr>
- </table>
-</dl>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to a watch; NULL if no such watch exists</dd></dl>
-<dl class="attention" compact><dt><b>Attention:</b></dt><dd>The path must be exactly identical to the one used for the searched watch. Be careful about absolute/relative and case-insensitive paths. </dd></dl>
+This is the total count of all watches (regardless whether enabled or not).<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>count of watches</dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#6f432affb46f85f7bc19661d5bc77063" title="Returns the count of enabled watches.">GetEnabledCount()</a> </dd></dl>
</div>
</div><p>
-<a class="anchor" name="678271faf4799840ad71805163a24b13"></a><!-- doxytag: member="Inotify::GetDescriptor" ref="678271faf4799840ad71805163a24b13" args="() const" -->
+<a class="anchor" name="287dc0d238fa6edc3269441cb284f979"></a><!-- doxytag: member="Inotify::PeekEvent" ref="287dc0d238fa6edc3269441cb284f979" args="(InotifyEvent &amp;rEvt)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">int Inotify::GetDescriptor </td>
+ <td class="memname">bool Inotify::PeekEvent </td>
<td>(</td>
- <td class="paramname"> </td>
+ <td class="paramtype"><a class="el" href="classInotifyEvent.html">InotifyEvent</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>rEvt</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the file descriptor.
+Extracts a queued inotify event (without removing).
<p>
-The descriptor can be used in standard low-level file functions (poll(), select(), fcntl() etc.).<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>valid file descriptor or -1 for inactive object</dd></dl>
-<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b">SetNonBlock()</a> </dd></dl>
+The extracted event stays in the queue.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>rEvt</em>&nbsp;</td><td>event object</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown only in very anomalous cases </td></tr>
+ </table>
+</dl>
</div>
</div><p>
-<a class="anchor" name="b2c8ab8ad4322fb6f0dae0eae442402b"></a><!-- doxytag: member="Inotify::SetNonBlock" ref="b2c8ab8ad4322fb6f0dae0eae442402b" args="(bool fNonBlock)" -->
+<a class="anchor" name="19cde43d082ff92bd02654610019300d"></a><!-- doxytag: member="Inotify::PeekEvent" ref="19cde43d082ff92bd02654610019300d" args="(InotifyEvent *pEvt)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void Inotify::SetNonBlock </td>
+ <td class="memname">bool Inotify::PeekEvent </td>
<td>(</td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>fNonBlock</em> </td>
+ <td class="paramtype"><a class="el" href="classInotifyEvent.html">InotifyEvent</a> *&nbsp;</td>
+ <td class="paramname"> <em>pEvt</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Enables/disables non-blocking mode.
+Extracts a queued inotify event (without removing).
<p>
-Use this mode if you want to monitor the descriptor (acquired thru <a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">GetDescriptor()</a>) in functions such as poll(), select() etc.<p>
-Non-blocking mode is disabled by default.<p>
+The extracted event stays in the queue. If the pointer is NULL it does nothing.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fNonBlock</em>&nbsp;</td><td>enable/disable non-blocking mode</td></tr>
+ <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>pEvt</em>&nbsp;</td><td>event object</td></tr>
</table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if setting mode failed</td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if the provided pointer is NULL </td></tr>
</table>
</dl>
-<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">GetDescriptor()</a>, <a class="el" href="classInotify.html#124dd5816205900af61034d47ae65255">SetCloseOnExec()</a> </dd></dl>
+
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotify_19cde43d082ff92bd02654610019300d_icgraph.png" border="0" usemap="#classInotify_19cde43d082ff92bd02654610019300d_icgraph_map" alt=""></center>
+<map name="classInotify_19cde43d082ff92bd02654610019300d_icgraph_map">
+<area shape="rect" href="classInotify.html#287dc0d238fa6edc3269441cb284f979" title="Extracts a queued inotify event (without removing)." alt="" coords="179,5,304,32"></map>
+</div>
</div>
</div><p>
-<a class="anchor" name="124dd5816205900af61034d47ae65255"></a><!-- doxytag: member="Inotify::SetCloseOnExec" ref="124dd5816205900af61034d47ae65255" args="(bool fClOnEx)" -->
+<a class="anchor" name="ac1a52b2ff6bfec07021a44e55d496a6"></a><!-- doxytag: member="Inotify::Remove" ref="ac1a52b2ff6bfec07021a44e55d496a6" args="(InotifyWatch &amp;rWatch)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void Inotify::SetCloseOnExec </td>
+ <td class="memname">void Inotify::Remove </td>
<td>(</td>
- <td class="paramtype">bool&nbsp;</td>
- <td class="paramname"> <em>fClOnEx</em> </td>
+ <td class="paramtype"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>rWatch</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Enables/disables closing on exec.
+Removes a watch.
<p>
-Enable this if you want to close the descriptor when executing another program. Otherwise, the descriptor will be inherited.<p>
-Closing on exec is disabled by default.<p>
+If the given watch is not present it does nothing.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fClOnEx</em>&nbsp;</td><td>enable/disable closing on exec</td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rWatch</em>&nbsp;</td><td>inotify watch</td></tr>
</table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if setting failed</td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if removing failed </td></tr>
</table>
</dl>
-<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">GetDescriptor()</a>, <a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b">SetNonBlock()</a> </dd></dl>
</div>
</div><p>
-<a class="anchor" name="70b3b57e8661fbb4c5bc404b86225c3b"></a><!-- doxytag: member="Inotify::GetCapability" ref="70b3b57e8661fbb4c5bc404b86225c3b" args="(InotifyCapability_t cap)" -->
+<a class="anchor" name="21c39bb8e5bbc1941b945c18f9005b84"></a><!-- doxytag: member="Inotify::Remove" ref="21c39bb8e5bbc1941b945c18f9005b84" args="(InotifyWatch *pWatch)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">uint32_t Inotify::GetCapability </td>
+ <td class="memname">void Inotify::Remove </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a>&nbsp;</td>
- <td class="paramname"> <em>cap</em> </td>
+ <td class="paramtype"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> *&nbsp;</td>
+ <td class="paramname"> <em>pWatch</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [static]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Acquires a particular inotify capability/limit.
+Removes a watch.
<p>
+If the given watch is not present it does nothing.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>cap</em>&nbsp;</td><td>capability/limit identifier </td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pWatch</em>&nbsp;</td><td>inotify watch</td></tr>
</table>
</dl>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>capability/limit value </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be acquired </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if removing failed </td></tr>
</table>
</dl>
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.png" border="0" usemap="#classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph_map" alt=""></center>
+<map name="classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph_map">
+<area shape="rect" href="classInotify.html#ac1a52b2ff6bfec07021a44e55d496a6" title="Removes a watch." alt="" coords="163,5,272,32"></map>
+</div>
+
+</div>
+</div><p>
+<a class="anchor" name="bc1fd5830ca561efb69bcd2283981741"></a><!-- doxytag: member="Inotify::RemoveAll" ref="bc1fd5830ca561efb69bcd2283981741" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Inotify::RemoveAll </td>
+ <td>(</td>
+ <td class="paramname"> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Removes all watches.
+<p>
+
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.png" border="0" usemap="#classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph_map" alt=""></center>
+<map name="classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph_map">
+<area shape="rect" href="classInotify.html#86ae86c43ea1a72f562ca46393309635" title="Removes all watches and closes the inotify device." alt="" coords="179,5,275,32"><area shape="rect" href="classInotify.html#f19dd5e491395673e4798eb9dbf5f682" title="Destructor." alt="" coords="324,5,428,32"></map>
+</div>
+
</div>
</div><p>
<a class="anchor" name="734538233ba2136164f76f4df6c3654e"></a><!-- doxytag: member="Inotify::SetCapability" ref="734538233ba2136164f76f4df6c3654e" args="(InotifyCapability_t cap, uint32_t val)" -->
@@ -785,7 +871,7 @@ Acquires a particular inotify capability/limit.
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [static]</code></td>
+ <td></td><td></td><td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [static]</code></td>
</tr>
</table>
</div>
@@ -802,37 +888,54 @@ Modifies a particular inotify capability/limit.
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be set </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be set </td></tr>
</table>
</dl>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>Using this function requires root privileges. Beware of setting extensive values - it may seriously affect system performance and/or stability. </dd></dl>
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotify_734538233ba2136164f76f4df6c3654e_icgraph.png" border="0" usemap="#classInotify_734538233ba2136164f76f4df6c3654e_icgraph_map" alt=""></center>
+<map name="classInotify_734538233ba2136164f76f4df6c3654e_icgraph_map">
+<area shape="rect" href="classInotify.html#66d90ebfa516d4bd1463749def2b58f9" title="Sets the maximum number of events in the kernel queue." alt="" coords="204,5,351,32"><area shape="rect" href="classInotify.html#620c891962fe5acd26485c64e9b28d19" title="Sets the maximum number of inotify instances per process." alt="" coords="196,56,359,83"><area shape="rect" href="classInotify.html#5064380cdb4a726ab33f3fa18d15c77a" title="Sets the maximum number of inotify watches per instance." alt="" coords="197,107,357,133"></map>
+</div>
+
</div>
</div><p>
-<a class="anchor" name="d8e4a4a87d005c71c0b5ea9c6dd53c42"></a><!-- doxytag: member="Inotify::GetMaxEvents" ref="d8e4a4a87d005c71c0b5ea9c6dd53c42" args="()" -->
+<a class="anchor" name="124dd5816205900af61034d47ae65255"></a><!-- doxytag: member="Inotify::SetCloseOnExec" ref="124dd5816205900af61034d47ae65255" args="(bool fClOnEx)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">static uint32_t Inotify::GetMaxEvents </td>
+ <td class="memname">void Inotify::SetCloseOnExec </td>
<td>(</td>
- <td class="paramname"> </td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>fClOnEx</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the maximum number of events in the kernel queue.
+Enables/disables closing on exec.
<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>maximum number of events in the kernel queue </dd></dl>
+Enable this if you want to close the descriptor when executing another program. Otherwise, the descriptor will be inherited.<p>
+Closing on exec is disabled by default.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fClOnEx</em>&nbsp;</td><td>enable/disable closing on exec</td></tr>
+ </table>
+</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be acquired </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if setting failed</td></tr>
</table>
</dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#abab7015203bf36d0256e75d4f4861f9" title="Returns the file descriptor.">GetDescriptor()</a>, <a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b" title="Enables/disables non-blocking mode.">SetNonBlock()</a> </dd></dl>
</div>
</div><p>
@@ -846,7 +949,7 @@ Returns the maximum number of events in the kernel queue.
<td class="paramtype">uint32_t&nbsp;</td>
<td class="paramname"> <em>val</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
</tr>
</table>
</div>
@@ -862,59 +965,64 @@ Sets the maximum number of events in the kernel queue.
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be set </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be set </td></tr>
</table>
</dl>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>Using this function requires root privileges. Beware of setting extensive values - the greater value is set here the more physical memory may be used for the inotify infrastructure. </dd></dl>
</div>
</div><p>
-<a class="anchor" name="c18b7732f67832260fbbd47aebb8af51"></a><!-- doxytag: member="Inotify::GetMaxInstances" ref="c18b7732f67832260fbbd47aebb8af51" args="()" -->
+<a class="anchor" name="620c891962fe5acd26485c64e9b28d19"></a><!-- doxytag: member="Inotify::SetMaxInstances" ref="620c891962fe5acd26485c64e9b28d19" args="(uint32_t val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">static uint32_t Inotify::GetMaxInstances </td>
+ <td class="memname">static void Inotify::SetMaxInstances </td>
<td>(</td>
- <td class="paramname"> </td>
+ <td class="paramtype">uint32_t&nbsp;</td>
+ <td class="paramname"> <em>val</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the maximum number of inotify instances per process.
+Sets the maximum number of inotify instances per process.
<p>
-It means the maximum number of open inotify file descriptors per running process.<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>maximum number of inotify instances </dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>val</em>&nbsp;</td><td>new value </td></tr>
+ </table>
+</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be acquired </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be set </td></tr>
</table>
</dl>
+<dl class="attention" compact><dt><b>Attention:</b></dt><dd>Using this function requires root privileges. Beware of setting extensive values - the greater value is set here the more physical memory may be used for the inotify infrastructure. </dd></dl>
</div>
</div><p>
-<a class="anchor" name="620c891962fe5acd26485c64e9b28d19"></a><!-- doxytag: member="Inotify::SetMaxInstances" ref="620c891962fe5acd26485c64e9b28d19" args="(uint32_t val)" -->
+<a class="anchor" name="5064380cdb4a726ab33f3fa18d15c77a"></a><!-- doxytag: member="Inotify::SetMaxWatches" ref="5064380cdb4a726ab33f3fa18d15c77a" args="(uint32_t val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">static void Inotify::SetMaxInstances </td>
+ <td class="memname">static void Inotify::SetMaxWatches </td>
<td>(</td>
<td class="paramtype">uint32_t&nbsp;</td>
<td class="paramname"> <em>val</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Sets the maximum number of inotify instances per process.
+Sets the maximum number of inotify watches per instance.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
@@ -923,71 +1031,79 @@ Sets the maximum number of inotify instances per process.
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be set </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be set </td></tr>
</table>
</dl>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>Using this function requires root privileges. Beware of setting extensive values - the greater value is set here the more physical memory may be used for the inotify infrastructure. </dd></dl>
</div>
</div><p>
-<a class="anchor" name="86dae1b7a72c0d8fc2a632444a0f2f1f"></a><!-- doxytag: member="Inotify::GetMaxWatches" ref="86dae1b7a72c0d8fc2a632444a0f2f1f" args="()" -->
+<a class="anchor" name="b2c8ab8ad4322fb6f0dae0eae442402b"></a><!-- doxytag: member="Inotify::SetNonBlock" ref="b2c8ab8ad4322fb6f0dae0eae442402b" args="(bool fNonBlock)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">static uint32_t Inotify::GetMaxWatches </td>
+ <td class="memname">void Inotify::SetNonBlock </td>
<td>(</td>
- <td class="paramname"> </td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>fNonBlock</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the maximum number of inotify watches per instance.
+Enables/disables non-blocking mode.
<p>
-It means the maximum number of inotify watches per inotify file descriptor.<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>maximum number of inotify watches </dd></dl>
+Use this mode if you want to monitor the descriptor (acquired thru <a class="el" href="classInotify.html#abab7015203bf36d0256e75d4f4861f9" title="Returns the file descriptor.">GetDescriptor()</a>) in functions such as poll(), select() etc.<p>
+Non-blocking mode is disabled by default.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fNonBlock</em>&nbsp;</td><td>enable/disable non-blocking mode</td></tr>
+ </table>
+</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be acquired </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if setting mode failed</td></tr>
</table>
</dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#abab7015203bf36d0256e75d4f4861f9" title="Returns the file descriptor.">GetDescriptor()</a>, <a class="el" href="classInotify.html#124dd5816205900af61034d47ae65255" title="Enables/disables closing on exec.">SetCloseOnExec()</a> </dd></dl>
</div>
</div><p>
-<a class="anchor" name="5064380cdb4a726ab33f3fa18d15c77a"></a><!-- doxytag: member="Inotify::SetMaxWatches" ref="5064380cdb4a726ab33f3fa18d15c77a" args="(uint32_t val)" -->
+<a class="anchor" name="139c27c6643bb199619f3eae9b32e53b"></a><!-- doxytag: member="Inotify::WaitForEvents" ref="139c27c6643bb199619f3eae9b32e53b" args="(bool fNoIntr=false)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">static void Inotify::SetMaxWatches </td>
+ <td class="memname">void Inotify::WaitForEvents </td>
<td>(</td>
- <td class="paramtype">uint32_t&nbsp;</td>
- <td class="paramname"> <em>val</em> </td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>fNoIntr</em> = <code>false</code> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)<code> [inline, static]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Sets the maximum number of inotify watches per instance.
+Waits for inotify events.
<p>
+It waits until one or more events occur. When called in nonblocking mode it only retrieves occurred events to the internal queue and exits.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>val</em>&nbsp;</td><td>new value </td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fNoIntr</em>&nbsp;</td><td>if true it re-calls the system call after a handled signal</td></tr>
</table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if the given value cannot be set </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if reading events failed</td></tr>
</table>
</dl>
-<dl class="attention" compact><dt><b>Attention:</b></dt><dd>Using this function requires root privileges. Beware of setting extensive values - the greater value is set here the more physical memory may be used for the inotify infrastructure. </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b" title="Enables/disables non-blocking mode.">SetNonBlock()</a> </dd></dl>
</div>
</div><p>
@@ -1007,10 +1123,96 @@ Sets the maximum number of inotify watches per instance.
</div>
</div><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="eee7847efd93b681fddac56860fc7958"></a><!-- doxytag: member="Inotify::m_buf" ref="eee7847efd93b681fddac56860fc7958" args="[INOTIFY_BUFLEN]" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned char <a class="el" href="classInotify.html#eee7847efd93b681fddac56860fc7958">Inotify::m_buf</a>[INOTIFY_BUFLEN]<code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+buffer for events
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="0c1d6c969292dbb7c8c1283a3d8f55e0"></a><!-- doxytag: member="Inotify::m_events" ref="0c1d6c969292dbb7c8c1283a3d8f55e0" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::deque&lt;<a class="el" href="classInotifyEvent.html">InotifyEvent</a>&gt; <a class="el" href="classInotify.html#0c1d6c969292dbb7c8c1283a3d8f55e0">Inotify::m_events</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+event queue
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="95d6d0ecefff77bd3ee50f1586a4552b"></a><!-- doxytag: member="Inotify::m_fd" ref="95d6d0ecefff77bd3ee50f1586a4552b" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="classInotify.html#95d6d0ecefff77bd3ee50f1586a4552b">Inotify::m_fd</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+file descriptor
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="62f275db6375a366023b2e46f73e3ecc"></a><!-- doxytag: member="Inotify::m_paths" ref="62f275db6375a366023b2e46f73e3ecc" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6">IN_WP_MAP</a> <a class="el" href="classInotify.html#62f275db6375a366023b2e46f73e3ecc">Inotify::m_paths</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+watches (by paths)
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="4d07f3a4412028d687936d2479d9a976"></a><!-- doxytag: member="Inotify::m_watches" ref="4d07f3a4412028d687936d2479d9a976" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="inotify-cxx_8h.html#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a">IN_WATCH_MAP</a> <a class="el" href="classInotify.html#4d07f3a4412028d687936d2479d9a976">Inotify::m_watches</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+watches (by descriptors)
+<p>
+
+</div>
+</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a><li><a class="el" href="inotify-cxx_8cpp.html">inotify-cxx.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+<li><a class="el" href="inotify-cxx_8h_source.html">inotify-cxx.h</a><li><a class="el" href="inotify-cxx_8cpp.html">inotify-cxx.cpp</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/classInotifyEvent-members.html b/shared/inotify/doc/html/classInotifyEvent-members.html
index 47f8fdc1..6b7bcc31 100644
--- a/shared/inotify/doc/html/classInotifyEvent-members.html
+++ b/shared/inotify/doc/html/classInotifyEvent-members.html
@@ -1,39 +1,48 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Member List</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
<h1>InotifyEvent Member List</h1>This is the complete list of members for <a class="el" href="classInotifyEvent.html">InotifyEvent</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="classInotifyEvent.html#c08a0a26ea33dbe94aaf1ac830c103a5">DumpTypes</a>(uint32_t uValue, std::string &amp;rStr)</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#517abc6bd54c57cb767107187ea6a8fd">DumpTypes</a>(std::string &amp;rStr) const</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#441dfd50abda0e81eb7e4f6d33c68e96">GetCookie</a>() const</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#83958af6b634d47173bde81b3bd5bbe6">GetDescriptor</a>() const</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#111954d74f0320745a68ef030064e987">GetLength</a>() const</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#2aadeb49530a62b06d98e22c335b1ec8">GetMask</a>() const</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#3e5d18ff8dea01d14286e4b44a2b76ea">DumpTypes</a>(std::string &amp;rStr) const </td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#7e65e49f7d0f11c71442e31d688e4b17">GetCookie</a>() const </td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#463aacc1f660fbc1c39108feb2601341">GetDescriptor</a>() const </td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#30c8c2e1e490b8968ab9cb3364fe579a">GetLength</a>() const </td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#c7160544f6f4f24611df57a4422ac47f">GetMask</a>() const </td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyEvent.html#eced3a88a6dea190c5df19c2a6599010">GetMaskByName</a>(const std::string &amp;rName)</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#a0524029d360591567c88595cb31df66">GetName</a>() const</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#e053c52feebf6dae5a762e6baeba93db">GetName</a>(std::string &amp;rName) const</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#5ab91d587bdc7ab3c18c6cdff73f3097">GetName</a>() const </td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#3aea2437ba8553be703d91b45247a68f">GetName</a>(std::string &amp;rName) const </td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyEvent.html#979cd46f53ed674331a5a6d47d1cde92">GetWatch</a>()</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyEvent.html#f416dbbd4e6ddd3c0eea6cb540f0b046">InotifyEvent</a>()</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyEvent.html#6d7f3fc0f51580da4a3ec2348609df64">InotifyEvent</a>(const struct inotify_event *pEvt, InotifyWatch *pWatch)</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb">IsType</a>(uint32_t uValue, uint32_t uType)</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline, static]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#7fdee6664ec63ccc87ff1221abba9abc">IsType</a>(uint32_t uType) const</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#477ae71116ec393434a1f62a7170a156">IsType</a>(uint32_t uType) const </td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#6c507a3466515aedc266bdc267079604">m_name</a></td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac">m_pWatch</a></td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af">m_uCookie</a></td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa">m_uMask</a></td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyEvent.html#a48030da1d3a1b1741ca791c9e129888">~InotifyEvent</a>()</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/classInotifyEvent.html b/shared/inotify/doc/html/classInotifyEvent.html
index 7b864a5c..ccc3c517 100644
--- a/shared/inotify/doc/html/classInotifyEvent.html
+++ b/shared/inotify/doc/html/classInotifyEvent.html
@@ -1,25 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: InotifyEvent Class Reference</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
<h1>InotifyEvent Class Reference</h1><!-- doxytag: class="InotifyEvent" -->inotify event class
<a href="#_details">More...</a>
<p>
-<code>#include &lt;<a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a>&gt;</code>
+<code>#include &lt;<a class="el" href="inotify-cxx_8h_source.html">inotify-cxx.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Collaboration diagram for InotifyEvent:</div>
+<div class="dynsection">
+<p><center><img src="classInotifyEvent__coll__graph.png" border="0" usemap="#InotifyEvent__coll__map" alt="Collaboration graph"></center>
+<map name="InotifyEvent__coll__map">
+<area shape="rect" href="classInotifyWatch.html" title="inotify watch class" alt="" coords="5,96,99,123"><area shape="rect" href="classInotify.html" title="inotify class" alt="" coords="24,5,80,32"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+
<p>
<a href="classInotifyEvent-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
@@ -33,33 +47,33 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#a48030da1d3a1b1741ca791c9e129888">~InotifyEvent</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#a48030da1d3a1b1741ca791c9e129888"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#83958af6b634d47173bde81b3bd5bbe6">GetDescriptor</a> () const</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#463aacc1f660fbc1c39108feb2601341">GetDescriptor</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the event watch descriptor. <a href="#83958af6b634d47173bde81b3bd5bbe6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#2aadeb49530a62b06d98e22c335b1ec8">GetMask</a> () const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the event watch descriptor. <a href="#463aacc1f660fbc1c39108feb2601341"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#c7160544f6f4f24611df57a4422ac47f">GetMask</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the event mask. <a href="#2aadeb49530a62b06d98e22c335b1ec8"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#7fdee6664ec63ccc87ff1221abba9abc">IsType</a> (uint32_t uType) const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the event mask. <a href="#c7160544f6f4f24611df57a4422ac47f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#477ae71116ec393434a1f62a7170a156">IsType</a> (uint32_t uType) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks for the event type. <a href="#7fdee6664ec63ccc87ff1221abba9abc"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#441dfd50abda0e81eb7e4f6d33c68e96">GetCookie</a> () const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks for the event type. <a href="#477ae71116ec393434a1f62a7170a156"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#7e65e49f7d0f11c71442e31d688e4b17">GetCookie</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the event cookie. <a href="#441dfd50abda0e81eb7e4f6d33c68e96"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#111954d74f0320745a68ef030064e987">GetLength</a> () const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the event cookie. <a href="#7e65e49f7d0f11c71442e31d688e4b17"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#30c8c2e1e490b8968ab9cb3364fe579a">GetLength</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the event name length. <a href="#111954d74f0320745a68ef030064e987"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#a0524029d360591567c88595cb31df66">GetName</a> () const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the event name length. <a href="#30c8c2e1e490b8968ab9cb3364fe579a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#5ab91d587bdc7ab3c18c6cdff73f3097">GetName</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the event name. <a href="#a0524029d360591567c88595cb31df66"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#e053c52feebf6dae5a762e6baeba93db">GetName</a> (std::string &amp;rName) const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the event name. <a href="#5ab91d587bdc7ab3c18c6cdff73f3097"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#3aea2437ba8553be703d91b45247a68f">GetName</a> (std::string &amp;rName) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Extracts the event name. <a href="#e053c52feebf6dae5a762e6baeba93db"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Extracts the event name. <a href="#3aea2437ba8553be703d91b45247a68f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#979cd46f53ed674331a5a6d47d1cde92">GetWatch</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the source watch. <a href="#979cd46f53ed674331a5a6d47d1cde92"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#517abc6bd54c57cb767107187ea6a8fd">DumpTypes</a> (std::string &amp;rStr) const</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#3e5d18ff8dea01d14286e4b44a2b76ea">DumpTypes</a> (std::string &amp;rStr) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fills the string with all types contained in the event mask. <a href="#517abc6bd54c57cb767107187ea6a8fd"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fills the string with all types contained in the event mask. <a href="#3e5d18ff8dea01d14286e4b44a2b76ea"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb">IsType</a> (uint32_t uValue, uint32_t uType)</td></tr>
@@ -70,14 +84,25 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#c08a0a26ea33dbe94aaf1ac830c103a5">DumpTypes</a> (uint32_t uValue, std::string &amp;rStr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fills the string with all types contained in an event mask value. <a href="#c08a0a26ea33dbe94aaf1ac830c103a5"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa">m_uMask</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">mask <a href="#739a943357af0c3fafd58466803e04fa"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af">m_uCookie</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">cookie <a href="#bf417d466fb0173d337cc66539ee55af"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#6c507a3466515aedc266bdc267079604">m_name</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">name <a href="#6c507a3466515aedc266bdc267079604"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac">m_pWatch</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">source watch <a href="#2d151cdcc547ee4ce49cfd44328d87ac"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
inotify event class
<p>
It holds all information about inotify event and provides access to its particular values.<p>
-This class is not (and is not intended to be) thread-safe and therefore it must not be used concurrently in multiple threads.
-<p>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
+This class is not (and is not intended to be) thread-safe and therefore it must not be used concurrently in multiple threads. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="f416dbbd4e6ddd3c0eea6cb540f0b046"></a><!-- doxytag: member="InotifyEvent::InotifyEvent" ref="f416dbbd4e6ddd3c0eea6cb540f0b046" args="()" -->
<div class="memitem">
<div class="memproto">
@@ -87,7 +112,7 @@ This class is not (and is not intended to be) thread-safe and therefore it must
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"><code> [inline]</code></td>
+ <td><code> [inline]</code></td>
</tr>
</table>
</div>
@@ -118,7 +143,7 @@ Creates a plain event.
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td width="100%"><code> [inline]</code></td>
+ <td></td><td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
@@ -127,7 +152,7 @@ Creates a plain event.
<p>
Constructor.
<p>
-Creates an event based on inotify event data. For NULL pointers it works the same way as <a class="el" href="classInotifyEvent.html#f416dbbd4e6ddd3c0eea6cb540f0b046">InotifyEvent()</a>.<p>
+Creates an event based on inotify event data. For NULL pointers it works the same way as <a class="el" href="classInotifyEvent.html#f416dbbd4e6ddd3c0eea6cb540f0b046" title="Constructor.">InotifyEvent()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pEvt</em>&nbsp;</td><td>event data </td></tr>
@@ -146,7 +171,7 @@ Creates an event based on inotify event data. For NULL pointers it works the sam
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"><code> [inline]</code></td>
+ <td><code> [inline]</code></td>
</tr>
</table>
</div>
@@ -159,58 +184,39 @@ Destructor.
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="83958af6b634d47173bde81b3bd5bbe6"></a><!-- doxytag: member="InotifyEvent::GetDescriptor" ref="83958af6b634d47173bde81b3bd5bbe6" args="() const" -->
+<a class="anchor" name="3e5d18ff8dea01d14286e4b44a2b76ea"></a><!-- doxytag: member="InotifyEvent::DumpTypes" ref="3e5d18ff8dea01d14286e4b44a2b76ea" args="(std::string &amp;rStr) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">int32_t InotifyEvent::GetDescriptor </td>
- <td>(</td>
- <td class="paramname"> </td>
- <td>&nbsp;)&nbsp;</td>
- <td width="100%"> const</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Returns the event watch descriptor.
-<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>watch descriptor</dd></dl>
-<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotifyWatch.html#df771e1f81e2a6cc2780c9d2470e34c6">InotifyWatch::GetDescriptor()</a> </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="2aadeb49530a62b06d98e22c335b1ec8"></a><!-- doxytag: member="InotifyEvent::GetMask" ref="2aadeb49530a62b06d98e22c335b1ec8" args="() const" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t InotifyEvent::GetMask </td>
+ <td class="memname">void InotifyEvent::DumpTypes </td>
<td>(</td>
- <td class="paramname"> </td>
+ <td class="paramtype">std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>rStr</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the event mask.
+Fills the string with all types contained in the event mask.
<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>event mask</dd></dl>
-<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotifyWatch.html#bab761a989c9fdf73aaad2a58e1ba7a0">InotifyWatch::GetMask()</a> </dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>rStr</em>&nbsp;</td><td>dumped event types </td></tr>
+ </table>
+</dl>
</div>
</div><p>
-<a class="anchor" name="309ebf3c5b131522295185a926d551bb"></a><!-- doxytag: member="InotifyEvent::IsType" ref="309ebf3c5b131522295185a926d551bb" args="(uint32_t uValue, uint32_t uType)" -->
+<a class="anchor" name="c08a0a26ea33dbe94aaf1ac830c103a5"></a><!-- doxytag: member="InotifyEvent::DumpTypes" ref="c08a0a26ea33dbe94aaf1ac830c103a5" args="(uint32_t uValue, std::string &amp;rStr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">static bool InotifyEvent::IsType </td>
+ <td class="memname">void InotifyEvent::DumpTypes </td>
<td>(</td>
<td class="paramtype">uint32_t&nbsp;</td>
<td class="paramname"> <em>uValue</em>, </td>
@@ -218,82 +224,85 @@ Returns the event mask.
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">uint32_t&nbsp;</td>
- <td class="paramname"> <em>uType</em></td><td>&nbsp;</td>
+ <td class="paramtype">std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>rStr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
+ <td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Checks a value for the event type.
+Fills the string with all types contained in an event mask value.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>uValue</em>&nbsp;</td><td>checked value </td></tr>
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>uType</em>&nbsp;</td><td>type which is checked for </td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>uValue</em>&nbsp;</td><td>event mask value </td></tr>
+ <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>rStr</em>&nbsp;</td><td>dumped event types </td></tr>
</table>
</dl>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>true = the value contains the given type, false = otherwise </dd></dl>
+
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.png" border="0" usemap="#classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph_map" alt=""></center>
+<map name="classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph_map">
+<area shape="rect" href="classInotifyEvent.html#3e5d18ff8dea01d14286e4b44a2b76ea" title="Fills the string with all types contained in the event mask." alt="" coords="220,5,383,32"></map>
+</div>
</div>
</div><p>
-<a class="anchor" name="7fdee6664ec63ccc87ff1221abba9abc"></a><!-- doxytag: member="InotifyEvent::IsType" ref="7fdee6664ec63ccc87ff1221abba9abc" args="(uint32_t uType) const" -->
+<a class="anchor" name="7e65e49f7d0f11c71442e31d688e4b17"></a><!-- doxytag: member="InotifyEvent::GetCookie" ref="7e65e49f7d0f11c71442e31d688e4b17" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">bool InotifyEvent::IsType </td>
+ <td class="memname">uint32_t InotifyEvent::GetCookie </td>
<td>(</td>
- <td class="paramtype">uint32_t&nbsp;</td>
- <td class="paramname"> <em>uType</em> </td>
+ <td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Checks for the event type.
+Returns the event cookie.
<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>uType</em>&nbsp;</td><td>type which is checked for </td></tr>
- </table>
-</dl>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>true = event mask contains the given type, false = otherwise </dd></dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>event cookie </dd></dl>
</div>
</div><p>
-<a class="anchor" name="441dfd50abda0e81eb7e4f6d33c68e96"></a><!-- doxytag: member="InotifyEvent::GetCookie" ref="441dfd50abda0e81eb7e4f6d33c68e96" args="() const" -->
+<a class="anchor" name="463aacc1f660fbc1c39108feb2601341"></a><!-- doxytag: member="InotifyEvent::GetDescriptor" ref="463aacc1f660fbc1c39108feb2601341" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">uint32_t InotifyEvent::GetCookie </td>
+ <td class="memname">int32_t InotifyEvent::GetDescriptor </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the event cookie.
+Returns the event watch descriptor.
<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>event cookie </dd></dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>watch descriptor</dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotifyWatch.html#855f982421402dd63d064dde328f2a59" title="Returns the watch descriptor.">InotifyWatch::GetDescriptor()</a> </dd></dl>
</div>
</div><p>
-<a class="anchor" name="111954d74f0320745a68ef030064e987"></a><!-- doxytag: member="InotifyEvent::GetLength" ref="111954d74f0320745a68ef030064e987" args="() const" -->
+<a class="anchor" name="30c8c2e1e490b8968ab9cb3364fe579a"></a><!-- doxytag: member="InotifyEvent::GetLength" ref="30c8c2e1e490b8968ab9cb3364fe579a" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -302,7 +311,7 @@ Returns the event cookie.
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
@@ -315,29 +324,67 @@ Returns the event name length.
</div>
</div><p>
-<a class="anchor" name="a0524029d360591567c88595cb31df66"></a><!-- doxytag: member="InotifyEvent::GetName" ref="a0524029d360591567c88595cb31df66" args="() const" -->
+<a class="anchor" name="c7160544f6f4f24611df57a4422ac47f"></a><!-- doxytag: member="InotifyEvent::GetMask" ref="c7160544f6f4f24611df57a4422ac47f" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">const std::string&amp; InotifyEvent::GetName </td>
+ <td class="memname">uint32_t InotifyEvent::GetMask </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the event name.
+Returns the event mask.
<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>event name </dd></dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>event mask</dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotifyWatch.html#f759f9baca6f4abbbaae57e076486009" title="Returns the watch event mask.">InotifyWatch::GetMask()</a> </dd></dl>
+
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.png" border="0" usemap="#classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph_map" alt=""></center>
+<map name="classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph_map">
+<area shape="rect" href="classInotify.html#139c27c6643bb199619f3eae9b32e53b" title="Waits for inotify events." alt="" coords="204,5,351,32"></map>
+</div>
</div>
</div><p>
-<a class="anchor" name="e053c52feebf6dae5a762e6baeba93db"></a><!-- doxytag: member="InotifyEvent::GetName" ref="e053c52feebf6dae5a762e6baeba93db" args="(std::string &amp;rName) const" -->
+<a class="anchor" name="eced3a88a6dea190c5df19c2a6599010"></a><!-- doxytag: member="InotifyEvent::GetMaskByName" ref="eced3a88a6dea190c5df19c2a6599010" args="(const std::string &amp;rName)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t InotifyEvent::GetMaskByName </td>
+ <td>(</td>
+ <td class="paramtype">const std::string &amp;&nbsp;</td>
+ <td class="paramname"> <em>rName</em> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Finds the appropriate mask for a name.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rName</em>&nbsp;</td><td>mask name </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>mask for name; 0 on failure </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="3aea2437ba8553be703d91b45247a68f"></a><!-- doxytag: member="InotifyEvent::GetName" ref="3aea2437ba8553be703d91b45247a68f" args="(std::string &amp;rName) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -347,7 +394,7 @@ Returns the event name.
<td class="paramtype">std::string &amp;&nbsp;</td>
<td class="paramname"> <em>rName</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
@@ -364,6 +411,37 @@ Extracts the event name.
</div>
</div><p>
+<a class="anchor" name="5ab91d587bdc7ab3c18c6cdff73f3097"></a><!-- doxytag: member="InotifyEvent::GetName" ref="5ab91d587bdc7ab3c18c6cdff73f3097" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const std::string&amp; InotifyEvent::GetName </td>
+ <td>(</td>
+ <td class="paramname"> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Returns the event name.
+<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>event name </dd></dl>
+
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.png" border="0" usemap="#classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph_map" alt=""></center>
+<map name="classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph_map">
+<area shape="rect" href="classInotifyEvent.html#3aea2437ba8553be703d91b45247a68f" title="Extracts the event name." alt="" coords="207,5,356,32"></map>
+</div>
+
+</div>
+</div><p>
<a class="anchor" name="979cd46f53ed674331a5a6d47d1cde92"></a><!-- doxytag: member="InotifyEvent::GetWatch" ref="979cd46f53ed674331a5a6d47d1cde92" args="()" -->
<div class="memitem">
<div class="memproto">
@@ -373,7 +451,7 @@ Extracts the event name.
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"><code> [inline]</code></td>
+ <td><code> [inline]</code></td>
</tr>
</table>
</div>
@@ -386,40 +464,40 @@ Returns the source watch.
</div>
</div><p>
-<a class="anchor" name="eced3a88a6dea190c5df19c2a6599010"></a><!-- doxytag: member="InotifyEvent::GetMaskByName" ref="eced3a88a6dea190c5df19c2a6599010" args="(const std::string &amp;rName)" -->
+<a class="anchor" name="477ae71116ec393434a1f62a7170a156"></a><!-- doxytag: member="InotifyEvent::IsType" ref="477ae71116ec393434a1f62a7170a156" args="(uint32_t uType) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">uint32_t InotifyEvent::GetMaskByName </td>
+ <td class="memname">bool InotifyEvent::IsType </td>
<td>(</td>
- <td class="paramtype">const std::string &amp;&nbsp;</td>
- <td class="paramname"> <em>rName</em> </td>
+ <td class="paramtype">uint32_t&nbsp;</td>
+ <td class="paramname"> <em>uType</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"><code> [static]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Finds the appropriate mask for a name.
+Checks for the event type.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rName</em>&nbsp;</td><td>mask name </td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>uType</em>&nbsp;</td><td>type which is checked for </td></tr>
</table>
</dl>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>mask for name; 0 on failure </dd></dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>true = event mask contains the given type, false = otherwise </dd></dl>
</div>
</div><p>
-<a class="anchor" name="c08a0a26ea33dbe94aaf1ac830c103a5"></a><!-- doxytag: member="InotifyEvent::DumpTypes" ref="c08a0a26ea33dbe94aaf1ac830c103a5" args="(uint32_t uValue, std::string &amp;rStr)" -->
+<a class="anchor" name="309ebf3c5b131522295185a926d551bb"></a><!-- doxytag: member="InotifyEvent::IsType" ref="309ebf3c5b131522295185a926d551bb" args="(uint32_t uValue, uint32_t uType)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void InotifyEvent::DumpTypes </td>
+ <td class="memname">static bool InotifyEvent::IsType </td>
<td>(</td>
<td class="paramtype">uint32_t&nbsp;</td>
<td class="paramname"> <em>uValue</em>, </td>
@@ -427,61 +505,113 @@ Finds the appropriate mask for a name.
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">std::string &amp;&nbsp;</td>
- <td class="paramname"> <em>rStr</em></td><td>&nbsp;</td>
+ <td class="paramtype">uint32_t&nbsp;</td>
+ <td class="paramname"> <em>uType</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td width="100%"><code> [static]</code></td>
+ <td></td><td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Fills the string with all types contained in an event mask value.
+Checks a value for the event type.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>uValue</em>&nbsp;</td><td>event mask value </td></tr>
- <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>rStr</em>&nbsp;</td><td>dumped event types </td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>uValue</em>&nbsp;</td><td>checked value </td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>uType</em>&nbsp;</td><td>type which is checked for </td></tr>
</table>
</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>true = the value contains the given type, false = otherwise </dd></dl>
+
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.png" border="0" usemap="#classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph_map" alt=""></center>
+<map name="classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph_map">
+<area shape="rect" href="classInotifyEvent.html#c08a0a26ea33dbe94aaf1ac830c103a5" title="Fills the string with all types contained in an event mask value." alt="" coords="188,5,351,32"><area shape="rect" href="classInotifyEvent.html#477ae71116ec393434a1f62a7170a156" title="Checks for the event type." alt="" coords="203,56,336,83"><area shape="rect" href="classInotify.html#139c27c6643bb199619f3eae9b32e53b" title="Waits for inotify events." alt="" coords="196,107,343,133"><area shape="rect" href="classInotifyEvent.html#3e5d18ff8dea01d14286e4b44a2b76ea" title="Fills the string with all types contained in the event mask." alt="" coords="401,5,564,32"></map>
+</div>
</div>
</div><p>
-<a class="anchor" name="517abc6bd54c57cb767107187ea6a8fd"></a><!-- doxytag: member="InotifyEvent::DumpTypes" ref="517abc6bd54c57cb767107187ea6a8fd" args="(std::string &amp;rStr) const" -->
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="6c507a3466515aedc266bdc267079604"></a><!-- doxytag: member="InotifyEvent::m_name" ref="6c507a3466515aedc266bdc267079604" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void InotifyEvent::DumpTypes </td>
- <td>(</td>
- <td class="paramtype">std::string &amp;&nbsp;</td>
- <td class="paramname"> <em>rStr</em> </td>
- <td>&nbsp;)&nbsp;</td>
- <td width="100%"> const</td>
+ <td class="memname">std::string <a class="el" href="classInotifyEvent.html#6c507a3466515aedc266bdc267079604">InotifyEvent::m_name</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Fills the string with all types contained in the event mask.
+name
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="2d151cdcc547ee4ce49cfd44328d87ac"></a><!-- doxytag: member="InotifyEvent::m_pWatch" ref="2d151cdcc547ee4ce49cfd44328d87ac" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classInotifyWatch.html">InotifyWatch</a>* <a class="el" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac">InotifyEvent::m_pWatch</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+source watch
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="bf417d466fb0173d337cc66539ee55af"></a><!-- doxytag: member="InotifyEvent::m_uCookie" ref="bf417d466fb0173d337cc66539ee55af" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t <a class="el" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af">InotifyEvent::m_uCookie</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+cookie
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="739a943357af0c3fafd58466803e04fa"></a><!-- doxytag: member="InotifyEvent::m_uMask" ref="739a943357af0c3fafd58466803e04fa" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t <a class="el" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa">InotifyEvent::m_uMask</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+mask
<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>rStr</em>&nbsp;</td><td>dumped event types </td></tr>
- </table>
-</dl>
</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a><li><a class="el" href="inotify-cxx_8cpp.html">inotify-cxx.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+<li><a class="el" href="inotify-cxx_8h_source.html">inotify-cxx.h</a><li><a class="el" href="inotify-cxx_8cpp.html">inotify-cxx.cpp</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.map b/shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.map
new file mode 100644
index 00000000..e31ea0ca
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.map
@@ -0,0 +1,4 @@
+<area shape="rect" href="$classInotifyEvent.html#c08a0a26ea33dbe94aaf1ac830c103a5" title="Fills the string with all types contained in an event mask value." alt="" coords="188,5,351,32">
+<area shape="rect" href="$classInotifyEvent.html#477ae71116ec393434a1f62a7170a156" title="Checks for the event type." alt="" coords="203,56,336,83">
+<area shape="rect" href="$classInotify.html#139c27c6643bb199619f3eae9b32e53b" title="Waits for inotify events." alt="" coords="196,107,343,133">
+<area shape="rect" href="$classInotifyEvent.html#3e5d18ff8dea01d14286e4b44a2b76ea" title="Fills the string with all types contained in the event mask." alt="" coords="401,5,564,32">
diff --git a/shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.md5 b/shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.md5
new file mode 100644
index 00000000..c108d32f
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.md5
@@ -0,0 +1 @@
+80a24dfdb3ffd06ee1dfd925cc6feb7e \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.png b/shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.png
new file mode 100644
index 00000000..72a734da
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_309ebf3c5b131522295185a926d551bb_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.map b/shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.map
new file mode 100644
index 00000000..61683c0b
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotifyEvent.html#3aea2437ba8553be703d91b45247a68f" title="Extracts the event name." alt="" coords="207,5,356,32">
diff --git a/shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.md5 b/shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.md5
new file mode 100644
index 00000000..390b7f98
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.md5
@@ -0,0 +1 @@
+eeb67887bd904a352d248b3a661c09ac \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.png b/shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.png
new file mode 100644
index 00000000..66409056
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_5ab91d587bdc7ab3c18c6cdff73f3097_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotifyEvent__coll__graph.map b/shared/inotify/doc/html/classInotifyEvent__coll__graph.map
new file mode 100644
index 00000000..fc3ab859
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent__coll__graph.map
@@ -0,0 +1,2 @@
+<area shape="rect" href="$classInotifyWatch.html" title="inotify watch class" alt="" coords="5,96,99,123">
+<area shape="rect" href="$classInotify.html" title="inotify class" alt="" coords="24,5,80,32">
diff --git a/shared/inotify/doc/html/classInotifyEvent__coll__graph.md5 b/shared/inotify/doc/html/classInotifyEvent__coll__graph.md5
new file mode 100644
index 00000000..6d1a7d05
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent__coll__graph.md5
@@ -0,0 +1 @@
+10fc9c98fa3b1e02aafb36817e9e1285 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotifyEvent__coll__graph.png b/shared/inotify/doc/html/classInotifyEvent__coll__graph.png
new file mode 100644
index 00000000..8c7ee763
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent__coll__graph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.map b/shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.map
new file mode 100644
index 00000000..1d81e141
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotifyEvent.html#3e5d18ff8dea01d14286e4b44a2b76ea" title="Fills the string with all types contained in the event mask." alt="" coords="220,5,383,32">
diff --git a/shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.md5 b/shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.md5
new file mode 100644
index 00000000..2875d2e2
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.md5
@@ -0,0 +1 @@
+ebd2a62891a75f2964da29826a4d947b \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.png b/shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.png
new file mode 100644
index 00000000..85b50381
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_c08a0a26ea33dbe94aaf1ac830c103a5_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.map b/shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.map
new file mode 100644
index 00000000..15b19bcc
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotify.html#139c27c6643bb199619f3eae9b32e53b" title="Waits for inotify events." alt="" coords="204,5,351,32">
diff --git a/shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.md5 b/shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.md5
new file mode 100644
index 00000000..97058b10
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.md5
@@ -0,0 +1 @@
+c6ebbbab9c151deb92ff69c8b2dd93a1 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.png b/shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.png
new file mode 100644
index 00000000..6ede661d
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyEvent_c7160544f6f4f24611df57a4422ac47f_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotifyException-members.html b/shared/inotify/doc/html/classInotifyException-members.html
index edd5ac6b..27079a8a 100644
--- a/shared/inotify/doc/html/classInotifyException-members.html
+++ b/shared/inotify/doc/html/classInotifyException-members.html
@@ -1,31 +1,36 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Member List</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
<h1>InotifyException Member List</h1>This is the complete list of members for <a class="el" href="classInotifyException.html">InotifyException</a>, including all inherited members.<p><table>
- <tr class="memlist"><td><a class="el" href="classInotifyException.html#3fda7827f1561f610e40bcd217bdc6fe">GetErrorNumber</a>() const</td><td><a class="el" href="classInotifyException.html">InotifyException</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyException.html#1c19a6c919c76332c95970ce7983d016">GetMessage</a>() const</td><td><a class="el" href="classInotifyException.html">InotifyException</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyException.html#568200b75da77cc24927922760b3a5d3">GetSource</a>() const</td><td><a class="el" href="classInotifyException.html">InotifyException</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyException.html#60d885f998a6cb97d06111e6aded155d">GetErrorNumber</a>() const </td><td><a class="el" href="classInotifyException.html">InotifyException</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyException.html#6364ea375697356805d47cff957dd757">GetMessage</a>() const </td><td><a class="el" href="classInotifyException.html">InotifyException</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyException.html#619e8b963faebdefb283d79b5ae5c408">GetSource</a>() const </td><td><a class="el" href="classInotifyException.html">InotifyException</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyException.html#900dc29e5cfb3ece6c1651d04773b2bb">InotifyException</a>(const std::string &amp;rMsg=&quot;&quot;, int iErr=0, void *pSrc=NULL)</td><td><a class="el" href="classInotifyException.html">InotifyException</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854">m_err</a></td><td><a class="el" href="classInotifyException.html">InotifyException</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">m_msg</a></td><td><a class="el" href="classInotifyException.html">InotifyException</a></td><td><code> [protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyException.html#dd106c2255890025561245cf91fe1427">m_pSrc</a></td><td><a class="el" href="classInotifyException.html">InotifyException</a></td><td><code> [mutable, protected]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/classInotifyException.html b/shared/inotify/doc/html/classInotifyException.html
index 6e5f01e5..6b3b55bf 100644
--- a/shared/inotify/doc/html/classInotifyException.html
+++ b/shared/inotify/doc/html/classInotifyException.html
@@ -1,25 +1,32 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: InotifyException Class Reference</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
<h1>InotifyException Class Reference</h1><!-- doxytag: class="InotifyException" -->Class for inotify exceptions.
<a href="#_details">More...</a>
<p>
-<code>#include &lt;<a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a>&gt;</code>
+<code>#include &lt;<a class="el" href="inotify-cxx_8h_source.html">inotify-cxx.h</a>&gt;</code>
+<p>
+
<p>
<a href="classInotifyException-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
@@ -27,15 +34,15 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyException.html#900dc29e5cfb3ece6c1651d04773b2bb">InotifyException</a> (const std::string &amp;rMsg=&quot;&quot;, int iErr=0, void *pSrc=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#900dc29e5cfb3ece6c1651d04773b2bb"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyException.html#1c19a6c919c76332c95970ce7983d016">GetMessage</a> () const</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyException.html#6364ea375697356805d47cff957dd757">GetMessage</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the exception message. <a href="#1c19a6c919c76332c95970ce7983d016"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyException.html#3fda7827f1561f610e40bcd217bdc6fe">GetErrorNumber</a> () const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the exception message. <a href="#6364ea375697356805d47cff957dd757"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyException.html#60d885f998a6cb97d06111e6aded155d">GetErrorNumber</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the exception error number. <a href="#3fda7827f1561f610e40bcd217bdc6fe"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyException.html#568200b75da77cc24927922760b3a5d3">GetSource</a> () const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the exception error number. <a href="#60d885f998a6cb97d06111e6aded155d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyException.html#619e8b963faebdefb283d79b5ae5c408">GetSource</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the exception source. <a href="#568200b75da77cc24927922760b3a5d3"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the exception source. <a href="#619e8b963faebdefb283d79b5ae5c408"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">m_msg</a></td></tr>
@@ -51,9 +58,7 @@
Class for inotify exceptions.
<p>
This class allows to acquire information about exceptional events. It makes easier to log or display error messages and to identify problematic code locations.<p>
-Although this class is basically thread-safe it is not intended to be shared between threads.
-<p>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Although this class is basically thread-safe it is not intended to be shared between threads. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="900dc29e5cfb3ece6c1651d04773b2bb"></a><!-- doxytag: member="InotifyException::InotifyException" ref="900dc29e5cfb3ece6c1651d04773b2bb" args="(const std::string &amp;rMsg=&quot;&quot;, int iErr=0, void *pSrc=NULL)" -->
<div class="memitem">
<div class="memproto">
@@ -79,7 +84,7 @@ Although this class is basically thread-safe it is not intended to be shared bet
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td width="100%"><code> [inline]</code></td>
+ <td></td><td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
@@ -99,52 +104,52 @@ Constructor.
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="1c19a6c919c76332c95970ce7983d016"></a><!-- doxytag: member="InotifyException::GetMessage" ref="1c19a6c919c76332c95970ce7983d016" args="() const" -->
+<a class="anchor" name="60d885f998a6cb97d06111e6aded155d"></a><!-- doxytag: member="InotifyException::GetErrorNumber" ref="60d885f998a6cb97d06111e6aded155d" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">const std::string&amp; InotifyException::GetMessage </td>
+ <td class="memname">int InotifyException::GetErrorNumber </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the exception message.
+Returns the exception error number.
<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>message </dd></dl>
+If not applicable this value is 0 (zero).<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>error number (standardized; see errno.h) </dd></dl>
</div>
</div><p>
-<a class="anchor" name="3fda7827f1561f610e40bcd217bdc6fe"></a><!-- doxytag: member="InotifyException::GetErrorNumber" ref="3fda7827f1561f610e40bcd217bdc6fe" args="() const" -->
+<a class="anchor" name="6364ea375697356805d47cff957dd757"></a><!-- doxytag: member="InotifyException::GetMessage" ref="6364ea375697356805d47cff957dd757" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">int InotifyException::GetErrorNumber </td>
+ <td class="memname">const std::string&amp; InotifyException::GetMessage </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the exception error number.
+Returns the exception message.
<p>
-If not applicable this value is 0 (zero).<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>error number (standardized; see errno.h) </dd></dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>message </dd></dl>
</div>
</div><p>
-<a class="anchor" name="568200b75da77cc24927922760b3a5d3"></a><!-- doxytag: member="InotifyException::GetSource" ref="568200b75da77cc24927922760b3a5d3" args="() const" -->
+<a class="anchor" name="619e8b963faebdefb283d79b5ae5c408"></a><!-- doxytag: member="InotifyException::GetSource" ref="619e8b963faebdefb283d79b5ae5c408" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -153,7 +158,7 @@ If not applicable this value is 0 (zero).<p>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
@@ -167,36 +172,36 @@ Returns the exception source.
</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="c113719bd6f4352e12876b2322f1c92c"></a><!-- doxytag: member="InotifyException::m_msg" ref="c113719bd6f4352e12876b2322f1c92c" args="" -->
+<a class="anchor" name="aa8a163c661ce70e34b3e3e7ad700854"></a><!-- doxytag: member="InotifyException::m_err" ref="aa8a163c661ce70e34b3e3e7ad700854" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">std::string <a class="el" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">InotifyException::m_msg</a><code> [protected]</code> </td>
+ <td class="memname">int <a class="el" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854">InotifyException::m_err</a><code> [protected]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-message
+error number
<p>
</div>
</div><p>
-<a class="anchor" name="aa8a163c661ce70e34b3e3e7ad700854"></a><!-- doxytag: member="InotifyException::m_err" ref="aa8a163c661ce70e34b3e3e7ad700854" args="" -->
+<a class="anchor" name="c113719bd6f4352e12876b2322f1c92c"></a><!-- doxytag: member="InotifyException::m_msg" ref="c113719bd6f4352e12876b2322f1c92c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">int <a class="el" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854">InotifyException::m_err</a><code> [protected]</code> </td>
+ <td class="memname">std::string <a class="el" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">InotifyException::m_msg</a><code> [protected]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-error number
+message
<p>
</div>
@@ -219,9 +224,9 @@ source
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+<li><a class="el" href="inotify-cxx_8h_source.html">inotify-cxx.h</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/classInotifyWatch-members.html b/shared/inotify/doc/html/classInotifyWatch-members.html
index 1809af8b..00668fc3 100644
--- a/shared/inotify/doc/html/classInotifyWatch-members.html
+++ b/shared/inotify/doc/html/classInotifyWatch-members.html
@@ -1,35 +1,46 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Member List</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
<h1>InotifyWatch Member List</h1>This is the complete list of members for <a class="el" href="classInotifyWatch.html">InotifyWatch</a>, including all inherited members.<p><table>
- <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#df771e1f81e2a6cc2780c9d2470e34c6">GetDescriptor</a>() const</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#804cdc1e9579a075a60c239b202559f4">__Disable</a>()</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#855f982421402dd63d064dde328f2a59">GetDescriptor</a>() const </td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyWatch.html#cbf0042d06841f9503405b104e4c35d0">GetInotify</a>()</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#bab761a989c9fdf73aaad2a58e1ba7a0">GetMask</a>() const</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#89f897a4d98fa54de27730dd8be67966">GetPath</a>() const</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#f759f9baca6f4abbbaae57e076486009">GetMask</a>() const </td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#2e659c699e7d43bd0a218fe4905784d2">GetPath</a>() const </td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyWatch.html#94bfb861dc18ca5d16abfcff90db8c86">Inotify</a> class</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [friend]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyWatch.html#c9c02f1dbd143eebd711eba03ac366e9">InotifyWatch</a>(const std::string &amp;rPath, int32_t uMask, bool fEnabled=true)</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#3d2a5c58a07449bc6ff192f6c14c4de0">IsEnabled</a>() const</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#1c8ab316b54cb7d1d0b17cbbe6b7d2f8">IsRecursive</a>() const</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#5ab551a912e5acff6a9c74baaf9ea324">IsEnabled</a>() const </td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#222c911ef0e8d6f61570489ed6042e55">IsRecursive</a>() const </td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#b0c23c89cc2996bdf6f41b8ef1f1ed18">m_fEnabled</a></td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#a63ba30ffdb8b9db27970bb1099e4db5">m_path</a></td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#ea695aa11f6105184df1ef265be3f1b9">m_pInotify</a></td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#f725ea61e3252adae6153ecb80de23a8">m_uMask</a></td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classInotifyWatch.html#90a78898dc850b238e713e0db284fb0a">m_wd</a></td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [private]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyWatch.html#a71aff8650fadff32a3c655ca50945f1">SetEnabled</a>(bool fEnabled)</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyWatch.html#3ad7fbc55c21b3fcd08c2d1d388e14b6">SetMask</a>(uint32_t uMask)</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classInotifyWatch.html#871c16b01aa8841b36246e5b629ecaef">~InotifyWatch</a>()</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/classInotifyWatch.html b/shared/inotify/doc/html/classInotifyWatch.html
index 119c7873..bc4f53e9 100644
--- a/shared/inotify/doc/html/classInotifyWatch.html
+++ b/shared/inotify/doc/html/classInotifyWatch.html
@@ -1,25 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: InotifyWatch Class Reference</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
<h1>InotifyWatch Class Reference</h1><!-- doxytag: class="InotifyWatch" -->inotify watch class
<a href="#_details">More...</a>
<p>
-<code>#include &lt;<a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a>&gt;</code>
+<code>#include &lt;<a class="el" href="inotify-cxx_8h_source.html">inotify-cxx.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Collaboration diagram for InotifyWatch:</div>
+<div class="dynsection">
+<p><center><img src="classInotifyWatch__coll__graph.png" border="0" usemap="#InotifyWatch__coll__map" alt="Collaboration graph"></center>
+<map name="InotifyWatch__coll__map">
+<area shape="rect" href="classInotify.html" title="inotify class" alt="" coords="24,5,80,32"></map>
+<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
+
<p>
<a href="classInotifyWatch-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
@@ -30,15 +44,15 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#871c16b01aa8841b36246e5b629ecaef">~InotifyWatch</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#871c16b01aa8841b36246e5b629ecaef"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#df771e1f81e2a6cc2780c9d2470e34c6">GetDescriptor</a> () const</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#855f982421402dd63d064dde328f2a59">GetDescriptor</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the watch descriptor. <a href="#df771e1f81e2a6cc2780c9d2470e34c6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#89f897a4d98fa54de27730dd8be67966">GetPath</a> () const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the watch descriptor. <a href="#855f982421402dd63d064dde328f2a59"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#2e659c699e7d43bd0a218fe4905784d2">GetPath</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the watched file path. <a href="#89f897a4d98fa54de27730dd8be67966"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#bab761a989c9fdf73aaad2a58e1ba7a0">GetMask</a> () const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the watched file path. <a href="#2e659c699e7d43bd0a218fe4905784d2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#f759f9baca6f4abbbaae57e076486009">GetMask</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the watch event mask. <a href="#bab761a989c9fdf73aaad2a58e1ba7a0"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the watch event mask. <a href="#f759f9baca6f4abbbaae57e076486009"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#3ad7fbc55c21b3fcd08c2d1d388e14b6">SetMask</a> (uint32_t uMask) throw (InotifyException)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the watch event mask. <a href="#3ad7fbc55c21b3fcd08c2d1d388e14b6"></a><br></td></tr>
@@ -48,12 +62,32 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#a71aff8650fadff32a3c655ca50945f1">SetEnabled</a> (bool fEnabled) throw (InotifyException)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enables/disables the watch. <a href="#a71aff8650fadff32a3c655ca50945f1"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#3d2a5c58a07449bc6ff192f6c14c4de0">IsEnabled</a> () const</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#5ab551a912e5acff6a9c74baaf9ea324">IsEnabled</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether the watch is enabled. <a href="#5ab551a912e5acff6a9c74baaf9ea324"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#222c911ef0e8d6f61570489ed6042e55">IsRecursive</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether the watch is enabled. <a href="#3d2a5c58a07449bc6ff192f6c14c4de0"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#1c8ab316b54cb7d1d0b17cbbe6b7d2f8">IsRecursive</a> () const</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether the watch is recursive. <a href="#222c911ef0e8d6f61570489ed6042e55"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">IN_LOCK_DECL void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#804cdc1e9579a075a60c239b202559f4">__Disable</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether the watch is recursive. <a href="#1c8ab316b54cb7d1d0b17cbbe6b7d2f8"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disables the watch (due to removing by the kernel). <a href="#804cdc1e9579a075a60c239b202559f4"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#a63ba30ffdb8b9db27970bb1099e4db5">m_path</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">watched file path <a href="#a63ba30ffdb8b9db27970bb1099e4db5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#f725ea61e3252adae6153ecb80de23a8">m_uMask</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">event mask <a href="#f725ea61e3252adae6153ecb80de23a8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#90a78898dc850b238e713e0db284fb0a">m_wd</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">watch descriptor <a href="#90a78898dc850b238e713e0db284fb0a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classInotify.html">Inotify</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#ea695aa11f6105184df1ef265be3f1b9">m_pInotify</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">inotify object <a href="#ea695aa11f6105184df1ef265be3f1b9"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#b0c23c89cc2996bdf6f41b8ef1f1ed18">m_fEnabled</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">events enabled yes/no <a href="#b0c23c89cc2996bdf6f41b8ef1f1ed18"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html#94bfb861dc18ca5d16abfcff90db8c86">Inotify</a></td></tr>
@@ -62,9 +96,7 @@
inotify watch class
<p>
It holds information about the inotify watch on a particular inode.<p>
-If the INOTIFY_THREAD_SAFE is defined this class is thread-safe.
-<p>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
+If the INOTIFY_THREAD_SAFE is defined this class is thread-safe. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="c9c02f1dbd143eebd711eba03ac366e9"></a><!-- doxytag: member="InotifyWatch::InotifyWatch" ref="c9c02f1dbd143eebd711eba03ac366e9" args="(const std::string &amp;rPath, int32_t uMask, bool fEnabled=true)" -->
<div class="memitem">
<div class="memproto">
@@ -90,7 +122,7 @@ If the INOTIFY_THREAD_SAFE is defined this class is thread-safe.
<tr>
<td></td>
<td>)</td>
- <td></td><td></td><td width="100%"><code> [inline]</code></td>
+ <td></td><td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
@@ -119,7 +151,7 @@ Creates an inotify watch. Because this watch is inactive it has an invalid descr
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"><code> [inline]</code></td>
+ <td><code> [inline]</code></td>
</tr>
</table>
</div>
@@ -132,7 +164,37 @@ Destructor.
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="df771e1f81e2a6cc2780c9d2470e34c6"></a><!-- doxytag: member="InotifyWatch::GetDescriptor" ref="df771e1f81e2a6cc2780c9d2470e34c6" args="() const" -->
+<a class="anchor" name="804cdc1e9579a075a60c239b202559f4"></a><!-- doxytag: member="InotifyWatch::__Disable" ref="804cdc1e9579a075a60c239b202559f4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void InotifyWatch::__Disable </td>
+ <td>(</td>
+ <td class="paramname"> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Disables the watch (due to removing by the kernel).
+<p>
+This method must be called after receiving an event. It ensures the watch object is consistent with the kernel data.
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.png" border="0" usemap="#classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph_map" alt=""></center>
+<map name="classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph_map">
+<area shape="rect" href="classInotify.html#139c27c6643bb199619f3eae9b32e53b" title="Waits for inotify events." alt="" coords="215,5,361,32"></map>
+</div>
+
+</div>
+</div><p>
+<a class="anchor" name="855f982421402dd63d064dde328f2a59"></a><!-- doxytag: member="InotifyWatch::GetDescriptor" ref="855f982421402dd63d064dde328f2a59" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -141,7 +203,7 @@ Destructor.
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
@@ -152,31 +214,40 @@ Returns the watch descriptor.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>watch descriptor; -1 for inactive watch </dd></dl>
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.png" border="0" usemap="#classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph_map" alt=""></center>
+<map name="classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph_map">
+<area shape="rect" href="classInotifyEvent.html#463aacc1f660fbc1c39108feb2601341" title="Returns the event watch descriptor." alt="" coords="235,5,411,32"></map>
+</div>
+
</div>
</div><p>
-<a class="anchor" name="89f897a4d98fa54de27730dd8be67966"></a><!-- doxytag: member="InotifyWatch::GetPath" ref="89f897a4d98fa54de27730dd8be67966" args="() const" -->
+<a class="anchor" name="cbf0042d06841f9503405b104e4c35d0"></a><!-- doxytag: member="InotifyWatch::GetInotify" ref="cbf0042d06841f9503405b104e4c35d0" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">const std::string&amp; InotifyWatch::GetPath </td>
+ <td class="memname"><a class="el" href="classInotify.html">Inotify</a>* InotifyWatch::GetInotify </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the watched file path.
+Returns the appropriate inotify class instance.
<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>file path </dd></dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>inotify instance </dd></dl>
</div>
</div><p>
-<a class="anchor" name="bab761a989c9fdf73aaad2a58e1ba7a0"></a><!-- doxytag: member="InotifyWatch::GetMask" ref="bab761a989c9fdf73aaad2a58e1ba7a0" args="() const" -->
+<a class="anchor" name="f759f9baca6f4abbbaae57e076486009"></a><!-- doxytag: member="InotifyWatch::GetMask" ref="f759f9baca6f4abbbaae57e076486009" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -185,7 +256,7 @@ Returns the watched file path.
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
@@ -196,60 +267,91 @@ Returns the watch event mask.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>event mask </dd></dl>
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.png" border="0" usemap="#classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph_map" alt=""></center>
+<map name="classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph_map">
+<area shape="rect" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83" title="Adds a new watch." alt="" coords="240,5,325,32"><area shape="rect" href="classInotify.html#139c27c6643bb199619f3eae9b32e53b" title="Waits for inotify events." alt="" coords="209,56,356,83"><area shape="rect" href="classInotify.html#35dab56d3e10bf28b5e457871adddb58" title="Adds a new watch." alt="" coords="407,5,492,32"></map>
+</div>
+
</div>
</div><p>
-<a class="anchor" name="3ad7fbc55c21b3fcd08c2d1d388e14b6"></a><!-- doxytag: member="InotifyWatch::SetMask" ref="3ad7fbc55c21b3fcd08c2d1d388e14b6" args="(uint32_t uMask)" -->
+<a class="anchor" name="2e659c699e7d43bd0a218fe4905784d2"></a><!-- doxytag: member="InotifyWatch::GetPath" ref="2e659c699e7d43bd0a218fe4905784d2" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">void InotifyWatch::SetMask </td>
+ <td class="memname">const std::string&amp; InotifyWatch::GetPath </td>
<td>(</td>
- <td class="paramtype">uint32_t&nbsp;</td>
- <td class="paramname"> <em>uMask</em> </td>
+ <td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Sets the watch event mask.
+Returns the watched file path.
<p>
-If the watch is active (added to an instance of <a class="el" href="classInotify.html">Inotify</a>) this method may fail due to unsuccessful re-setting the watch in the kernel.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>uMask</em>&nbsp;</td><td>event mask</td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Exceptions:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if changing fails </td></tr>
- </table>
-</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>file path </dd></dl>
+
+<p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dynsection">
+<p><center><img src="classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.png" border="0" usemap="#classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph_map" alt=""></center>
+<map name="classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph_map">
+<area shape="rect" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83" title="Adds a new watch." alt="" coords="204,5,289,32"><area shape="rect" href="classInotify.html#35dab56d3e10bf28b5e457871adddb58" title="Adds a new watch." alt="" coords="340,5,425,32"></map>
+</div>
</div>
</div><p>
-<a class="anchor" name="cbf0042d06841f9503405b104e4c35d0"></a><!-- doxytag: member="InotifyWatch::GetInotify" ref="cbf0042d06841f9503405b104e4c35d0" args="()" -->
+<a class="anchor" name="5ab551a912e5acff6a9c74baaf9ea324"></a><!-- doxytag: member="InotifyWatch::IsEnabled" ref="5ab551a912e5acff6a9c74baaf9ea324" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classInotify.html">Inotify</a>* InotifyWatch::GetInotify </td>
+ <td class="memname">bool InotifyWatch::IsEnabled </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"><code> [inline]</code></td>
+ <td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Returns the appropriate inotify class instance.
+Checks whether the watch is enabled.
<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>inotify instance </dd></dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>true = enables, false = disabled </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="222c911ef0e8d6f61570489ed6042e55"></a><!-- doxytag: member="InotifyWatch::IsRecursive" ref="222c911ef0e8d6f61570489ed6042e55" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool InotifyWatch::IsRecursive </td>
+ <td>(</td>
+ <td class="paramname"> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Checks whether the watch is recursive.
+<p>
+A recursive watch monitors a directory itself and all its subdirectories. This watch is a logical object which may have many underlying kernel watches.<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>currently always false (recursive watches not yet supported) </dd></dl>
+<dl class="attention" compact><dt><b>Attention:</b></dt><dd>Recursive watches are currently NOT supported. They are planned for future versions. </dd></dl>
</div>
</div><p>
@@ -263,7 +365,7 @@ Returns the appropriate inotify class instance.
<td class="paramtype">bool&nbsp;</td>
<td class="paramname"> <em>fEnabled</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
</tr>
</table>
</div>
@@ -272,7 +374,7 @@ Returns the appropriate inotify class instance.
<p>
Enables/disables the watch.
<p>
-If the watch is active (added to an instance of <a class="el" href="classInotify.html">Inotify</a>) this method may fail due to unsuccessful re-setting the watch in the kernel.<p>
+If the watch is active (added to an instance of <a class="el" href="classInotify.html" title="inotify class">Inotify</a>) this method may fail due to unsuccessful re-setting the watch in the kernel.<p>
Re-setting the current state has no effect.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
@@ -281,78 +383,151 @@ Re-setting the current state has no effect.<p>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em>&nbsp;</td><td>thrown if enabling/disabling fails </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if enabling/disabling fails </td></tr>
</table>
</dl>
</div>
</div><p>
-<a class="anchor" name="3d2a5c58a07449bc6ff192f6c14c4de0"></a><!-- doxytag: member="InotifyWatch::IsEnabled" ref="3d2a5c58a07449bc6ff192f6c14c4de0" args="() const" -->
+<a class="anchor" name="3ad7fbc55c21b3fcd08c2d1d388e14b6"></a><!-- doxytag: member="InotifyWatch::SetMask" ref="3ad7fbc55c21b3fcd08c2d1d388e14b6" args="(uint32_t uMask)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">bool InotifyWatch::IsEnabled </td>
+ <td class="memname">void InotifyWatch::SetMask </td>
<td>(</td>
- <td class="paramname"> </td>
+ <td class="paramtype">uint32_t&nbsp;</td>
+ <td class="paramname"> <em>uMask</em> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Checks whether the watch is enabled.
+Sets the watch event mask.
<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>true = enables, false = disabled </dd></dl>
+If the watch is active (added to an instance of <a class="el" href="classInotify.html" title="inotify class">Inotify</a>) this method may fail due to unsuccessful re-setting the watch in the kernel.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>uMask</em>&nbsp;</td><td>event mask</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if changing fails </td></tr>
+ </table>
+</dl>
</div>
</div><p>
-<a class="anchor" name="1c8ab316b54cb7d1d0b17cbbe6b7d2f8"></a><!-- doxytag: member="InotifyWatch::IsRecursive" ref="1c8ab316b54cb7d1d0b17cbbe6b7d2f8" args="() const" -->
+<hr><h2>Friends And Related Function Documentation</h2>
+<a class="anchor" name="94bfb861dc18ca5d16abfcff90db8c86"></a><!-- doxytag: member="InotifyWatch::Inotify" ref="94bfb861dc18ca5d16abfcff90db8c86" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">bool InotifyWatch::IsRecursive </td>
- <td>(</td>
- <td class="paramname"> </td>
- <td>&nbsp;)&nbsp;</td>
- <td width="100%"> const<code> [inline]</code></td>
+ <td class="memname">friend class <a class="el" href="classInotify.html">Inotify</a><code> [friend]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
-Checks whether the watch is recursive.
+
+</div>
+</div><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="b0c23c89cc2996bdf6f41b8ef1f1ed18"></a><!-- doxytag: member="InotifyWatch::m_fEnabled" ref="b0c23c89cc2996bdf6f41b8ef1f1ed18" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classInotifyWatch.html#b0c23c89cc2996bdf6f41b8ef1f1ed18">InotifyWatch::m_fEnabled</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+events enabled yes/no
<p>
-A recursive watch monitors a directory itself and all its subdirectories. This watch is a logical object which may have many underlying kernel watches.<p>
-<dl class="return" compact><dt><b>Returns:</b></dt><dd>currently always false (recursive watches not yet supported) </dd></dl>
-<dl class="attention" compact><dt><b>Attention:</b></dt><dd>Recursive watches are currently NOT supported. They are planned for future versions. </dd></dl>
</div>
</div><p>
-<hr><h2>Friends And Related Function Documentation</h2>
-<a class="anchor" name="94bfb861dc18ca5d16abfcff90db8c86"></a><!-- doxytag: member="InotifyWatch::Inotify" ref="94bfb861dc18ca5d16abfcff90db8c86" args="" -->
+<a class="anchor" name="a63ba30ffdb8b9db27970bb1099e4db5"></a><!-- doxytag: member="InotifyWatch::m_path" ref="a63ba30ffdb8b9db27970bb1099e4db5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">friend class <a class="el" href="classInotify.html">Inotify</a><code> [friend]</code> </td>
+ <td class="memname">std::string <a class="el" href="classInotifyWatch.html#a63ba30ffdb8b9db27970bb1099e4db5">InotifyWatch::m_path</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
+watched file path
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="ea695aa11f6105184df1ef265be3f1b9"></a><!-- doxytag: member="InotifyWatch::m_pInotify" ref="ea695aa11f6105184df1ef265be3f1b9" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classInotify.html">Inotify</a>* <a class="el" href="classInotifyWatch.html#ea695aa11f6105184df1ef265be3f1b9">InotifyWatch::m_pInotify</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+inotify object
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f725ea61e3252adae6153ecb80de23a8"></a><!-- doxytag: member="InotifyWatch::m_uMask" ref="f725ea61e3252adae6153ecb80de23a8" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t <a class="el" href="classInotifyWatch.html#f725ea61e3252adae6153ecb80de23a8">InotifyWatch::m_uMask</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+event mask
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="90a78898dc850b238e713e0db284fb0a"></a><!-- doxytag: member="InotifyWatch::m_wd" ref="90a78898dc850b238e713e0db284fb0a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int32_t <a class="el" href="classInotifyWatch.html#90a78898dc850b238e713e0db284fb0a">InotifyWatch::m_wd</a><code> [private]</code> </td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+watch descriptor
+<p>
</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a><li><a class="el" href="inotify-cxx_8cpp.html">inotify-cxx.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+<li><a class="el" href="inotify-cxx_8h_source.html">inotify-cxx.h</a><li><a class="el" href="inotify-cxx_8cpp.html">inotify-cxx.cpp</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.map b/shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.map
new file mode 100644
index 00000000..f27ca8a7
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.map
@@ -0,0 +1,2 @@
+<area shape="rect" href="$classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83" title="Adds a new watch." alt="" coords="204,5,289,32">
+<area shape="rect" href="$classInotify.html#35dab56d3e10bf28b5e457871adddb58" title="Adds a new watch." alt="" coords="340,5,425,32">
diff --git a/shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.md5 b/shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.md5
new file mode 100644
index 00000000..fbd2ff03
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.md5
@@ -0,0 +1 @@
+620e1e417c7b3a584d9a02e4d00e9a65 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.png b/shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.png
new file mode 100644
index 00000000..a8cfc58a
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_2e659c699e7d43bd0a218fe4905784d2_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.map b/shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.map
new file mode 100644
index 00000000..45f1c8f4
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotify.html#139c27c6643bb199619f3eae9b32e53b" title="Waits for inotify events." alt="" coords="215,5,361,32">
diff --git a/shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.md5 b/shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.md5
new file mode 100644
index 00000000..f49498f5
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.md5
@@ -0,0 +1 @@
+74fca07ef5cdde676f9befabdba3c390 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.png b/shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.png
new file mode 100644
index 00000000..9adcc985
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_804cdc1e9579a075a60c239b202559f4_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.map b/shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.map
new file mode 100644
index 00000000..dff1f4a3
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotifyEvent.html#463aacc1f660fbc1c39108feb2601341" title="Returns the event watch descriptor." alt="" coords="235,5,411,32">
diff --git a/shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.md5 b/shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.md5
new file mode 100644
index 00000000..17145c3b
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.md5
@@ -0,0 +1 @@
+9338607b3d3a0e2804e6ced197d5c9cc \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.png b/shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.png
new file mode 100644
index 00000000..5e7dd132
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_855f982421402dd63d064dde328f2a59_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotifyWatch__coll__graph.map b/shared/inotify/doc/html/classInotifyWatch__coll__graph.map
new file mode 100644
index 00000000..59ebb091
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch__coll__graph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotify.html" title="inotify class" alt="" coords="24,5,80,32">
diff --git a/shared/inotify/doc/html/classInotifyWatch__coll__graph.md5 b/shared/inotify/doc/html/classInotifyWatch__coll__graph.md5
new file mode 100644
index 00000000..f8ab3a5e
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch__coll__graph.md5
@@ -0,0 +1 @@
+4b0e82ffc859966b60e2fb5b19162d43 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotifyWatch__coll__graph.png b/shared/inotify/doc/html/classInotifyWatch__coll__graph.png
new file mode 100644
index 00000000..b2a5567f
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch__coll__graph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.map b/shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.map
new file mode 100644
index 00000000..ae5eb580
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.map
@@ -0,0 +1,3 @@
+<area shape="rect" href="$classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83" title="Adds a new watch." alt="" coords="240,5,325,32">
+<area shape="rect" href="$classInotify.html#139c27c6643bb199619f3eae9b32e53b" title="Waits for inotify events." alt="" coords="209,56,356,83">
+<area shape="rect" href="$classInotify.html#35dab56d3e10bf28b5e457871adddb58" title="Adds a new watch." alt="" coords="407,5,492,32">
diff --git a/shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.md5 b/shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.md5
new file mode 100644
index 00000000..30d2f7a4
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.md5
@@ -0,0 +1 @@
+126051def76cebe39a5ea1e3b30484e7 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.png b/shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.png
new file mode 100644
index 00000000..104b6dbb
--- /dev/null
+++ b/shared/inotify/doc/html/classInotifyWatch_f759f9baca6f4abbbaae57e076486009_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.map b/shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.map
new file mode 100644
index 00000000..c916a719
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotify.html#287dc0d238fa6edc3269441cb284f979" title="Extracts a queued inotify event (without removing)." alt="" coords="179,5,304,32">
diff --git a/shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.md5 b/shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.md5
new file mode 100644
index 00000000..4dc02268
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.md5
@@ -0,0 +1 @@
+867a37f8a90b3c381b26aff122c509e1 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.png b/shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.png
new file mode 100644
index 00000000..368ea909
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_19cde43d082ff92bd02654610019300d_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.map b/shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.map
new file mode 100644
index 00000000..ee280ed5
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotify.html#ac1a52b2ff6bfec07021a44e55d496a6" title="Removes a watch." alt="" coords="163,5,272,32">
diff --git a/shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.md5 b/shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.md5
new file mode 100644
index 00000000..631afbc4
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.md5
@@ -0,0 +1 @@
+587f8ec5057bea5f3b570a712828014d \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.png b/shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.png
new file mode 100644
index 00000000..0c72efe9
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_21c39bb8e5bbc1941b945c18f9005b84_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.map b/shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.map
new file mode 100644
index 00000000..57880c92
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotify.html#35dab56d3e10bf28b5e457871adddb58" title="Adds a new watch." alt="" coords="143,5,228,32">
diff --git a/shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.md5 b/shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.md5
new file mode 100644
index 00000000..44962c4b
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.md5
@@ -0,0 +1 @@
+8d7a6b2b3b84fb672bc0326258ff14f6 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.png b/shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.png
new file mode 100644
index 00000000..65078cda
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_2ef771ebaf982d76ebe19b3f5bc9cd83_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.map b/shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.map
new file mode 100644
index 00000000..dc7351fd
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotify.html#b028c8fa988f6bbb2ef773db3ea3a2d3" title="Extracts a queued inotify event." alt="" coords="172,5,287,32">
diff --git a/shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.md5 b/shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.md5
new file mode 100644
index 00000000..2cdfd2b4
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.md5
@@ -0,0 +1 @@
+04c6a964e2bb5f8eaec7dbb9c83b2bc7 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.png b/shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.png
new file mode 100644
index 00000000..fd43491a
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_490a3f824c6d041d31ccaabe9bd92008_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.map b/shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.map
new file mode 100644
index 00000000..30031126
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.map
@@ -0,0 +1,3 @@
+<area shape="rect" href="$classInotify.html#d8e4a4a87d005c71c0b5ea9c6dd53c42" title="Returns the maximum number of events in the kernel queue." alt="" coords="204,5,351,32">
+<area shape="rect" href="$classInotify.html#c18b7732f67832260fbbd47aebb8af51" title="Returns the maximum number of inotify instances per process." alt="" coords="195,56,360,83">
+<area shape="rect" href="$classInotify.html#86dae1b7a72c0d8fc2a632444a0f2f1f" title="Returns the maximum number of inotify watches per instance." alt="" coords="197,107,357,133">
diff --git a/shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.md5 b/shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.md5
new file mode 100644
index 00000000..cf32572b
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.md5
@@ -0,0 +1 @@
+d00e8e6b410a8b99056c20c2ae513bab \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.png b/shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.png
new file mode 100644
index 00000000..5102409d
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_70b3b57e8661fbb4c5bc404b86225c3b_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.map b/shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.map
new file mode 100644
index 00000000..37e43de7
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.map
@@ -0,0 +1,3 @@
+<area shape="rect" href="$classInotify.html#66d90ebfa516d4bd1463749def2b58f9" title="Sets the maximum number of events in the kernel queue." alt="" coords="204,5,351,32">
+<area shape="rect" href="$classInotify.html#620c891962fe5acd26485c64e9b28d19" title="Sets the maximum number of inotify instances per process." alt="" coords="196,56,359,83">
+<area shape="rect" href="$classInotify.html#5064380cdb4a726ab33f3fa18d15c77a" title="Sets the maximum number of inotify watches per instance." alt="" coords="197,107,357,133">
diff --git a/shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.md5 b/shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.md5
new file mode 100644
index 00000000..9017da9c
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.md5
@@ -0,0 +1 @@
+1d28be277b69710e355fb579217e5b78 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.png b/shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.png
new file mode 100644
index 00000000..a58ed2be
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_734538233ba2136164f76f4df6c3654e_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.map b/shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.map
new file mode 100644
index 00000000..9ddf26fa
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.map
@@ -0,0 +1 @@
+<area shape="rect" href="$classInotify.html#f19dd5e491395673e4798eb9dbf5f682" title="Destructor." alt="" coords="151,5,255,32">
diff --git a/shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.md5 b/shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.md5
new file mode 100644
index 00000000..5cb8482f
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.md5
@@ -0,0 +1 @@
+2ac402c3a1e1f917bb08f0f7203eb443 \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.png b/shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.png
new file mode 100644
index 00000000..83f1c6d4
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_86ae86c43ea1a72f562ca46393309635_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.map b/shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.map
new file mode 100644
index 00000000..0ab98b58
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.map
@@ -0,0 +1,2 @@
+<area shape="rect" href="$classInotify.html#86ae86c43ea1a72f562ca46393309635" title="Removes all watches and closes the inotify device." alt="" coords="179,5,275,32">
+<area shape="rect" href="$classInotify.html#f19dd5e491395673e4798eb9dbf5f682" title="Destructor." alt="" coords="324,5,428,32">
diff --git a/shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.md5 b/shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.md5
new file mode 100644
index 00000000..ca0e1018
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.md5
@@ -0,0 +1 @@
+d6ad52008b7d418d0c5f4e495df76a6f \ No newline at end of file
diff --git a/shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.png b/shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.png
new file mode 100644
index 00000000..edba755d
--- /dev/null
+++ b/shared/inotify/doc/html/classInotify_bc1fd5830ca561efb69bcd2283981741_icgraph.png
Binary files differ
diff --git a/shared/inotify/doc/html/classes.html b/shared/inotify/doc/html/classes.html
new file mode 100644
index 00000000..604cbade
--- /dev/null
+++ b/shared/inotify/doc/html/classes.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>inotify-cxx: Alphabetical List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>Class Index</h1><p><div class="qindex"><a class="qindex" href="#letter_I">I</a></div><p>
+<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classInotify.html">Inotify</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInotifyException.html">InotifyException</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInotifyWatch.html">InotifyWatch</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_I">I</a></div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
+</body>
+</html>
diff --git a/shared/inotify/doc/html/doxygen.css b/shared/inotify/doc/html/doxygen.css
index c7db1a8a..3767dc95 100644
--- a/shared/inotify/doc/html/doxygen.css
+++ b/shared/inotify/doc/html/doxygen.css
@@ -1,358 +1,441 @@
-BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
- font-family: Geneva, Arial, Helvetica, sans-serif;
+body, table, div, p, dl {
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size: 12px;
}
-BODY,TD {
- font-size: 90%;
-}
-H1 {
+
+/* @group Heading Levels */
+
+h1 {
text-align: center;
- font-size: 160%;
+ font-size: 150%;
}
-H2 {
- font-size: 120%;
+
+h2 {
+ font-size: 120%;
}
-H3 {
- font-size: 100%;
+
+h3 {
+ font-size: 100%;
}
-CAPTION { font-weight: bold }
-DIV.qindex {
- width: 100%;
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+div.qindex, div.navtab{
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
- line-height: 140%;
}
-DIV.nav {
+
+div.qindex, div.navpath {
width: 100%;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- padding: 2px;
line-height: 140%;
}
-DIV.navtab {
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
+
+div.navtab {
+ margin-right: 15px;
}
-TD.navtab {
- font-size: 70%;
+
+/* @group Link Styling */
+
+a {
+ color: #153788;
+ font-weight: normal;
+ text-decoration: none;
}
-A.qindex {
- text-decoration: none;
- font-weight: bold;
- color: #1A419D;
+
+.contents a:visited {
+ color: #1b77c5;
}
-A.qindex:visited {
- text-decoration: none;
- font-weight: bold;
- color: #1A419D
+
+a:hover {
+ text-decoration: underline;
}
-A.qindex:hover {
- text-decoration: none;
- background-color: #ddddff;
+
+a.qindex {
+ font-weight: bold;
}
-A.qindexHL {
- text-decoration: none;
+
+a.qindexHL {
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
-A.qindexHL:hover {
- text-decoration: none;
- background-color: #6666cc;
- color: #ffffff;
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
}
-A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
-A.el { text-decoration: none; font-weight: bold }
-A.elRef { font-weight: bold }
-A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
-A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
-A.codeRef:link { font-weight: normal; color: #0000FF}
-A.codeRef:visited { font-weight: normal; color: #0000FF}
-A:hover { text-decoration: none; background-color: #f2f2ff }
-DL.el { margin-left: -1cm }
+
+a.code {
+}
+
+a.codeRef {
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
.fragment {
- font-family: monospace, fixed;
- font-size: 95%;
+ font-family: monospace, fixed;
+ font-size: 105%;
}
-PRE.fragment {
+
+pre.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
- margin-top: 4px;
- margin-bottom: 4px;
- margin-left: 2px;
- margin-right: 8px;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 4px;
- padding-bottom: 4px;
-}
-DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
-
-DIV.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- margin-bottom: 6px;
- font-weight: bold;
-}
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
-BODY {
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ margin-bottom: 6px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
-TD.indexkey {
+
+td.indexkey {
background-color: #e8eef2;
font-weight: bold;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
border: 1px solid #CCCCCC;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
}
-TD.indexvalue {
+
+td.indexvalue {
background-color: #e8eef2;
- font-style: italic;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
border: 1px solid #CCCCCC;
+ padding: 2px 10px;
+ margin: 2px 0px;
}
-TR.memlist {
- background-color: #f0f0f0;
-}
-P.formulaDsp { text-align: center; }
-IMG.formulaDsp { }
-IMG.formulaInl { vertical-align: middle; }
-SPAN.keyword { color: #008000 }
-SPAN.keywordtype { color: #604020 }
-SPAN.keywordflow { color: #e08000 }
-SPAN.comment { color: #800000 }
-SPAN.preprocessor { color: #806020 }
-SPAN.stringliteral { color: #002080 }
-SPAN.charliteral { color: #008080 }
-.mdescLeft {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
+
+tr.memlist {
+ background-color: #f0f0f0;
}
-.mdescRight {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
+
+p.formulaDsp {
+ text-align: center;
}
-.memItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
+
+img.formulaDsp {
+
}
-.memItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
+
+img.formulaInl {
+ vertical-align: middle;
}
-.memTemplItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
}
-.memTemplItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
+
+span.keywordtype {
+ color: #604020
}
-.memTemplParams {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- color: #606060;
- background-color: #FAFAFA;
- font-size: 80%;
+
+span.keywordflow {
+ color: #e08000
}
-.search { color: #003399;
- font-weight: bold;
+
+span.comment {
+ color: #800000
}
-FORM.search {
- margin-bottom: 0px;
- margin-top: 0px;
+
+span.preprocessor {
+ color: #806020
}
-INPUT.search { font-size: 75%;
- color: #000080;
- font-weight: normal;
- background-color: #e8eef2;
+
+span.stringliteral {
+ color: #002080
}
-TD.tiny { font-size: 75%;
+
+span.charliteral {
+ color: #008080
}
-a {
- color: #1A41A8;
+
+span.vhdldigit {
+ color: #ff00ff
}
-a:visited {
- color: #2A3798;
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+/* @end */
+
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
}
-.dirtab { padding: 4px;
- border-collapse: collapse;
- border: 1px solid #84b0c7;
+
+td.tiny {
+ font-size: 75%;
}
-TH.dirtab { background: #e8eef2;
- font-weight: bold;
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #84b0c7;
+}
+
+th.dirtab {
+ background: #e8eef2;
+ font-weight: bold;
}
-HR { height: 1px;
- border: none;
- border-top: 1px solid black;
+
+hr {
+ height: 0;
+ border: none;
+ border-top: 1px solid #666;
+}
+
+/* @group Member Descriptions */
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #FAFAFA;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
}
-/* Style for detailed member documentation */
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+ border-top: 1px solid #ccc;
+}
+
+.memTemplParams {
+ color: #606060;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
.memtemplate {
- font-size: 80%;
- color: #606060;
- font-weight: normal;
-}
-.memnav {
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
+ font-size: 80%;
+ color: #606060;
+ font-weight: normal;
+ margin-left: 3px;
}
+
+.memnav {
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
.memitem {
- padding: 4px;
- background-color: #eef3f5;
- border-width: 1px;
- border-style: solid;
- border-color: #dedeee;
- -moz-border-radius: 8px 8px 8px 8px;
+ padding: 0;
}
+
.memname {
- white-space: nowrap;
- font-weight: bold;
+ white-space: nowrap;
+ font-weight: bold;
}
-.memdoc{
- padding-left: 10px;
+
+.memproto, .memdoc {
+ border: 1px solid #84b0c7;
}
+
.memproto {
- background-color: #d5e1e8;
- width: 100%;
- border-width: 1px;
- border-style: solid;
- border-color: #84b0c7;
- font-weight: bold;
- -moz-border-radius: 8px 8px 8px 8px;
+ padding: 0;
+ background-color: #d5e1e8;
+ font-weight: bold;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+ -moz-border-radius-topleft: 8px;
+ -moz-border-radius-topright: 8px;
}
+
+.memdoc {
+ padding: 2px 5px;
+ background-color: #eef3f5;
+ border-top-width: 0;
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+ -moz-border-radius-bottomleft: 8px;
+ -moz-border-radius-bottomright: 8px;
+}
+
.paramkey {
- text-align: right;
+ text-align: right;
}
+
.paramtype {
- white-space: nowrap;
+ white-space: nowrap;
}
+
.paramname {
- color: #602020;
- font-style: italic;
- white-space: nowrap;
+ color: #602020;
+ white-space: nowrap;
}
-/* End Styling for detailed member documentation */
+.paramname em {
+ font-style: normal;
+}
+
+/* @end */
+
+/* @group Directory (tree) */
/* for the tree view */
+
.ftvtree {
font-family: sans-serif;
- margin:0.5em;
-}
-.directory { font-size: 9pt; font-weight: bold; }
-.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
-.directory > h3 { margin-top: 0; }
-.directory p { margin: 0px; white-space: nowrap; }
-.directory div { display: none; margin: 0px; }
-.directory img { vertical-align: -30%; }
+ margin: 0.5em;
+}
+
+/* these are for tree view when used as main index */
+
+.directory {
+ font-size: 9pt;
+ font-weight: bold;
+}
+
+.directory h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+/*
+The following two styles can be used to replace the root node title
+with an image of your choice. Simply uncomment the next two styles,
+specify the name of your image and be sure to set 'height' to the
+proper pixel height of your image.
+*/
+
+/*
+.directory h3.swap {
+ height: 61px;
+ background-repeat: no-repeat;
+ background-image: url("yourimage.gif");
+}
+.directory h3.swap span {
+ display: none;
+}
+*/
+
+.directory > h3 {
+ margin-top: 0;
+}
+
+.directory p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory div {
+ display: none;
+ margin: 0px;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+/* these are for tree view when not used as main index */
+
+.directory-alt {
+ font-size: 100%;
+ font-weight: bold;
+}
+
+.directory-alt h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+.directory-alt > h3 {
+ margin-top: 0;
+}
+
+.directory-alt p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory-alt div {
+ display: none;
+ margin: 0px;
+}
+
+.directory-alt img {
+ vertical-align: -30%;
+}
+
+/* @end */
+
+address {
+ font-style: normal;
+ color: #333;
+}
diff --git a/shared/inotify/doc/html/files.html b/shared/inotify/doc/html/files.html
index de3d916f..5c6b0baf 100644
--- a/shared/inotify/doc/html/files.html
+++ b/shared/inotify/doc/html/files.html
@@ -1,27 +1,32 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: File Index</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li id="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul></div>
-<h1>inotify-cxx File List</h1>Here is a list of all files with brief descriptions:<table>
- <tr><td class="indexkey"><a class="el" href="inotify-cxx_8cpp.html">inotify-cxx.cpp</a></td><td class="indexvalue"><a class="el" href="classInotify.html">Inotify</a> C++ interface implementation </td></tr>
- <tr><td class="indexkey"><a class="el" href="inotify-cxx_8h.html">inotify-cxx.h</a> <a href="inotify-cxx_8h-source.html">[code]</a></td><td class="indexvalue"><a class="el" href="classInotify.html">Inotify</a> C++ interface header </td></tr>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li class="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
+ <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>File List</h1>Here is a list of all files with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="inotify-cxx_8cpp.html">inotify-cxx.cpp</a></td><td class="indexvalue"><a class="el" href="classInotify.html" title="inotify class">Inotify</a> C++ interface implementation </td></tr>
+ <tr><td class="indexkey"><a class="el" href="inotify-cxx_8h.html">inotify-cxx.h</a> <a href="inotify-cxx_8h_source.html">[code]</a></td><td class="indexvalue"><a class="el" href="classInotify.html" title="inotify class">Inotify</a> C++ interface header </td></tr>
</table>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/functions.html b/shared/inotify/doc/html/functions.html
index e6c66f90..00a99ed4 100644
--- a/shared/inotify/doc/html/functions.html
+++ b/shared/inotify/doc/html/functions.html
@@ -1,49 +1,57 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Class Members</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li id="current"><a href="functions.html"><span>All</span></a></li>
- <li><a href="functions_func.html"><span>Functions</span></a></li>
- <li><a href="functions_vars.html"><span>Variables</span></a></li>
- <li><a href="functions_rela.html"><span>Related&nbsp;Functions</span></a></li>
- </ul>
-</div>
-<div class="tabs">
- <ul>
- <li><a href="#index_a"><span>a</span></a></li>
- <li><a href="#index_c"><span>c</span></a></li>
- <li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_f"><span>f</span></a></li>
- <li><a href="#index_g"><span>g</span></a></li>
- <li><a href="#index_i"><span>i</span></a></li>
- <li><a href="#index_m"><span>m</span></a></li>
- <li><a href="#index_p"><span>p</span></a></li>
- <li><a href="#index_r"><span>r</span></a></li>
- <li><a href="#index_s"><span>s</span></a></li>
- <li><a href="#index_w"><span>w</span></a></li>
- <li><a href="#index_~"><span>~</span></a></li>
- </ul>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&nbsp;Functions</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="#index__"><span>_</span></a></li>
+ <li><a href="#index_a"><span>a</span></a></li>
+ <li><a href="#index_c"><span>c</span></a></li>
+ <li><a href="#index_d"><span>d</span></a></li>
+ <li><a href="#index_f"><span>f</span></a></li>
+ <li><a href="#index_g"><span>g</span></a></li>
+ <li><a href="#index_i"><span>i</span></a></li>
+ <li><a href="#index_m"><span>m</span></a></li>
+ <li><a href="#index_p"><span>p</span></a></li>
+ <li><a href="#index_r"><span>r</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ <li><a href="#index_w"><span>w</span></a></li>
+ <li><a href="#index_~"><span>~</span></a></li>
+ </ul>
+ </div>
</div>
-
-<p>
+<div class="contents">
Here is a list of all class members with links to the classes they belong to:
<p>
+<h3><a class="anchor" name="index__">- _ -</a></h3><ul>
+<li>__Disable()
+: <a class="el" href="classInotifyWatch.html#804cdc1e9579a075a60c239b202559f4">InotifyWatch</a>
+</ul>
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
<li>Add()
: <a class="el" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83">Inotify</a>
@@ -63,16 +71,18 @@ Here is a list of all class members with links to the classes they belong to:
<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
<li>GetCapability()
: <a class="el" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b">Inotify</a>
+<li>GetCapabilityPath()
+: <a class="el" href="classInotify.html#0233ddfe40844d729505fdfd709d22cc">Inotify</a>
<li>GetCookie()
-: <a class="el" href="classInotifyEvent.html#441dfd50abda0e81eb7e4f6d33c68e96">InotifyEvent</a>
+: <a class="el" href="classInotifyEvent.html#7e65e49f7d0f11c71442e31d688e4b17">InotifyEvent</a>
<li>GetDescriptor()
-: <a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">Inotify</a>
-, <a class="el" href="classInotifyEvent.html#83958af6b634d47173bde81b3bd5bbe6">InotifyEvent</a>
-, <a class="el" href="classInotifyWatch.html#df771e1f81e2a6cc2780c9d2470e34c6">InotifyWatch</a>
+: <a class="el" href="classInotifyEvent.html#463aacc1f660fbc1c39108feb2601341">InotifyEvent</a>
+, <a class="el" href="classInotifyWatch.html#855f982421402dd63d064dde328f2a59">InotifyWatch</a>
+, <a class="el" href="classInotify.html#abab7015203bf36d0256e75d4f4861f9">Inotify</a>
<li>GetEnabledCount()
-: <a class="el" href="classInotify.html#9bf5f7716649d5b5f468c2242fb5e099">Inotify</a>
+: <a class="el" href="classInotify.html#6f432affb46f85f7bc19661d5bc77063">Inotify</a>
<li>GetErrorNumber()
-: <a class="el" href="classInotifyException.html#3fda7827f1561f610e40bcd217bdc6fe">InotifyException</a>
+: <a class="el" href="classInotifyException.html#60d885f998a6cb97d06111e6aded155d">InotifyException</a>
<li>GetEvent()
: <a class="el" href="classInotify.html#490a3f824c6d041d31ccaabe9bd92008">Inotify</a>
<li>GetEventCount()
@@ -80,10 +90,10 @@ Here is a list of all class members with links to the classes they belong to:
<li>GetInotify()
: <a class="el" href="classInotifyWatch.html#cbf0042d06841f9503405b104e4c35d0">InotifyWatch</a>
<li>GetLength()
-: <a class="el" href="classInotifyEvent.html#111954d74f0320745a68ef030064e987">InotifyEvent</a>
+: <a class="el" href="classInotifyEvent.html#30c8c2e1e490b8968ab9cb3364fe579a">InotifyEvent</a>
<li>GetMask()
-: <a class="el" href="classInotifyEvent.html#2aadeb49530a62b06d98e22c335b1ec8">InotifyEvent</a>
-, <a class="el" href="classInotifyWatch.html#bab761a989c9fdf73aaad2a58e1ba7a0">InotifyWatch</a>
+: <a class="el" href="classInotifyWatch.html#f759f9baca6f4abbbaae57e076486009">InotifyWatch</a>
+, <a class="el" href="classInotifyEvent.html#c7160544f6f4f24611df57a4422ac47f">InotifyEvent</a>
<li>GetMaskByName()
: <a class="el" href="classInotifyEvent.html#eced3a88a6dea190c5df19c2a6599010">InotifyEvent</a>
<li>GetMaxEvents()
@@ -93,17 +103,17 @@ Here is a list of all class members with links to the classes they belong to:
<li>GetMaxWatches()
: <a class="el" href="classInotify.html#86dae1b7a72c0d8fc2a632444a0f2f1f">Inotify</a>
<li>GetMessage()
-: <a class="el" href="classInotifyException.html#1c19a6c919c76332c95970ce7983d016">InotifyException</a>
+: <a class="el" href="classInotifyException.html#6364ea375697356805d47cff957dd757">InotifyException</a>
<li>GetName()
-: <a class="el" href="classInotifyEvent.html#a0524029d360591567c88595cb31df66">InotifyEvent</a>
+: <a class="el" href="classInotifyEvent.html#3aea2437ba8553be703d91b45247a68f">InotifyEvent</a>
<li>GetPath()
-: <a class="el" href="classInotifyWatch.html#89f897a4d98fa54de27730dd8be67966">InotifyWatch</a>
+: <a class="el" href="classInotifyWatch.html#2e659c699e7d43bd0a218fe4905784d2">InotifyWatch</a>
<li>GetSource()
-: <a class="el" href="classInotifyException.html#568200b75da77cc24927922760b3a5d3">InotifyException</a>
+: <a class="el" href="classInotifyException.html#619e8b963faebdefb283d79b5ae5c408">InotifyException</a>
<li>GetWatch()
: <a class="el" href="classInotifyEvent.html#979cd46f53ed674331a5a6d47d1cde92">InotifyEvent</a>
<li>GetWatchCount()
-: <a class="el" href="classInotify.html#b53b7935bda7425b002946d78bfe5863">Inotify</a>
+: <a class="el" href="classInotify.html#716ae90a00dd4895709ea9b8f7959075">Inotify</a>
</ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>Inotify
@@ -113,23 +123,50 @@ Here is a list of all class members with links to the classes they belong to:
: <a class="el" href="classInotifyEvent.html#6d7f3fc0f51580da4a3ec2348609df64">InotifyEvent</a>
<li>InotifyException()
: <a class="el" href="classInotifyException.html#900dc29e5cfb3ece6c1651d04773b2bb">InotifyException</a>
-<li>InotifyWatch
-: <a class="el" href="classInotify.html#10880f490c33acd8bd24664fc7bce4ae">Inotify</a>
-, <a class="el" href="classInotifyWatch.html#c9c02f1dbd143eebd711eba03ac366e9">InotifyWatch</a>
+<li>InotifyWatch()
+: <a class="el" href="classInotifyWatch.html#c9c02f1dbd143eebd711eba03ac366e9">InotifyWatch</a>
+, <a class="el" href="classInotify.html#10880f490c33acd8bd24664fc7bce4ae">Inotify</a>
<li>IsEnabled()
-: <a class="el" href="classInotifyWatch.html#3d2a5c58a07449bc6ff192f6c14c4de0">InotifyWatch</a>
+: <a class="el" href="classInotifyWatch.html#5ab551a912e5acff6a9c74baaf9ea324">InotifyWatch</a>
<li>IsRecursive()
-: <a class="el" href="classInotifyWatch.html#1c8ab316b54cb7d1d0b17cbbe6b7d2f8">InotifyWatch</a>
+: <a class="el" href="classInotifyWatch.html#222c911ef0e8d6f61570489ed6042e55">InotifyWatch</a>
<li>IsType()
-: <a class="el" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb">InotifyEvent</a>
+: <a class="el" href="classInotifyEvent.html#477ae71116ec393434a1f62a7170a156">InotifyEvent</a>
</ul>
<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
+<li>m_buf
+: <a class="el" href="classInotify.html#eee7847efd93b681fddac56860fc7958">Inotify</a>
<li>m_err
: <a class="el" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854">InotifyException</a>
+<li>m_events
+: <a class="el" href="classInotify.html#0c1d6c969292dbb7c8c1283a3d8f55e0">Inotify</a>
+<li>m_fd
+: <a class="el" href="classInotify.html#95d6d0ecefff77bd3ee50f1586a4552b">Inotify</a>
+<li>m_fEnabled
+: <a class="el" href="classInotifyWatch.html#b0c23c89cc2996bdf6f41b8ef1f1ed18">InotifyWatch</a>
<li>m_msg
: <a class="el" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">InotifyException</a>
+<li>m_name
+: <a class="el" href="classInotifyEvent.html#6c507a3466515aedc266bdc267079604">InotifyEvent</a>
+<li>m_path
+: <a class="el" href="classInotifyWatch.html#a63ba30ffdb8b9db27970bb1099e4db5">InotifyWatch</a>
+<li>m_paths
+: <a class="el" href="classInotify.html#62f275db6375a366023b2e46f73e3ecc">Inotify</a>
+<li>m_pInotify
+: <a class="el" href="classInotifyWatch.html#ea695aa11f6105184df1ef265be3f1b9">InotifyWatch</a>
<li>m_pSrc
: <a class="el" href="classInotifyException.html#dd106c2255890025561245cf91fe1427">InotifyException</a>
+<li>m_pWatch
+: <a class="el" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac">InotifyEvent</a>
+<li>m_uCookie
+: <a class="el" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af">InotifyEvent</a>
+<li>m_uMask
+: <a class="el" href="classInotifyWatch.html#f725ea61e3252adae6153ecb80de23a8">InotifyWatch</a>
+, <a class="el" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa">InotifyEvent</a>
+<li>m_watches
+: <a class="el" href="classInotify.html#4d07f3a4412028d687936d2479d9a976">Inotify</a>
+<li>m_wd
+: <a class="el" href="classInotifyWatch.html#90a78898dc850b238e713e0db284fb0a">InotifyWatch</a>
</ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>PeekEvent()
@@ -171,8 +208,8 @@ Here is a list of all class members with links to the classes they belong to:
<li>~InotifyWatch()
: <a class="el" href="classInotifyWatch.html#871c16b01aa8841b36246e5b629ecaef">InotifyWatch</a>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/functions_func.html b/shared/inotify/doc/html/functions_func.html
index eee3f008..dad8c830 100644
--- a/shared/inotify/doc/html/functions_func.html
+++ b/shared/inotify/doc/html/functions_func.html
@@ -1,48 +1,56 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Class Members - Functions</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="functions.html"><span>All</span></a></li>
- <li id="current"><a href="functions_func.html"><span>Functions</span></a></li>
- <li><a href="functions_vars.html"><span>Variables</span></a></li>
- <li><a href="functions_rela.html"><span>Related&nbsp;Functions</span></a></li>
- </ul>
-</div>
-<div class="tabs">
- <ul>
- <li><a href="#index_a"><span>a</span></a></li>
- <li><a href="#index_c"><span>c</span></a></li>
- <li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_f"><span>f</span></a></li>
- <li><a href="#index_g"><span>g</span></a></li>
- <li><a href="#index_i"><span>i</span></a></li>
- <li><a href="#index_p"><span>p</span></a></li>
- <li><a href="#index_r"><span>r</span></a></li>
- <li><a href="#index_s"><span>s</span></a></li>
- <li><a href="#index_w"><span>w</span></a></li>
- <li><a href="#index_~"><span>~</span></a></li>
- </ul>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&nbsp;Functions</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="#index__"><span>_</span></a></li>
+ <li><a href="#index_a"><span>a</span></a></li>
+ <li><a href="#index_c"><span>c</span></a></li>
+ <li><a href="#index_d"><span>d</span></a></li>
+ <li><a href="#index_f"><span>f</span></a></li>
+ <li><a href="#index_g"><span>g</span></a></li>
+ <li><a href="#index_i"><span>i</span></a></li>
+ <li><a href="#index_p"><span>p</span></a></li>
+ <li><a href="#index_r"><span>r</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ <li><a href="#index_w"><span>w</span></a></li>
+ <li><a href="#index_~"><span>~</span></a></li>
+ </ul>
+ </div>
</div>
-
-<p>
+<div class="contents">
&nbsp;
<p>
+<h3><a class="anchor" name="index__">- _ -</a></h3><ul>
+<li>__Disable()
+: <a class="el" href="classInotifyWatch.html#804cdc1e9579a075a60c239b202559f4">InotifyWatch</a>
+</ul>
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
<li>Add()
: <a class="el" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83">Inotify</a>
@@ -62,16 +70,18 @@
<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
<li>GetCapability()
: <a class="el" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b">Inotify</a>
+<li>GetCapabilityPath()
+: <a class="el" href="classInotify.html#0233ddfe40844d729505fdfd709d22cc">Inotify</a>
<li>GetCookie()
-: <a class="el" href="classInotifyEvent.html#441dfd50abda0e81eb7e4f6d33c68e96">InotifyEvent</a>
+: <a class="el" href="classInotifyEvent.html#7e65e49f7d0f11c71442e31d688e4b17">InotifyEvent</a>
<li>GetDescriptor()
-: <a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">Inotify</a>
-, <a class="el" href="classInotifyEvent.html#83958af6b634d47173bde81b3bd5bbe6">InotifyEvent</a>
-, <a class="el" href="classInotifyWatch.html#df771e1f81e2a6cc2780c9d2470e34c6">InotifyWatch</a>
+: <a class="el" href="classInotifyEvent.html#463aacc1f660fbc1c39108feb2601341">InotifyEvent</a>
+, <a class="el" href="classInotifyWatch.html#855f982421402dd63d064dde328f2a59">InotifyWatch</a>
+, <a class="el" href="classInotify.html#abab7015203bf36d0256e75d4f4861f9">Inotify</a>
<li>GetEnabledCount()
-: <a class="el" href="classInotify.html#9bf5f7716649d5b5f468c2242fb5e099">Inotify</a>
+: <a class="el" href="classInotify.html#6f432affb46f85f7bc19661d5bc77063">Inotify</a>
<li>GetErrorNumber()
-: <a class="el" href="classInotifyException.html#3fda7827f1561f610e40bcd217bdc6fe">InotifyException</a>
+: <a class="el" href="classInotifyException.html#60d885f998a6cb97d06111e6aded155d">InotifyException</a>
<li>GetEvent()
: <a class="el" href="classInotify.html#490a3f824c6d041d31ccaabe9bd92008">Inotify</a>
<li>GetEventCount()
@@ -79,10 +89,10 @@
<li>GetInotify()
: <a class="el" href="classInotifyWatch.html#cbf0042d06841f9503405b104e4c35d0">InotifyWatch</a>
<li>GetLength()
-: <a class="el" href="classInotifyEvent.html#111954d74f0320745a68ef030064e987">InotifyEvent</a>
+: <a class="el" href="classInotifyEvent.html#30c8c2e1e490b8968ab9cb3364fe579a">InotifyEvent</a>
<li>GetMask()
-: <a class="el" href="classInotifyEvent.html#2aadeb49530a62b06d98e22c335b1ec8">InotifyEvent</a>
-, <a class="el" href="classInotifyWatch.html#bab761a989c9fdf73aaad2a58e1ba7a0">InotifyWatch</a>
+: <a class="el" href="classInotifyWatch.html#f759f9baca6f4abbbaae57e076486009">InotifyWatch</a>
+, <a class="el" href="classInotifyEvent.html#c7160544f6f4f24611df57a4422ac47f">InotifyEvent</a>
<li>GetMaskByName()
: <a class="el" href="classInotifyEvent.html#eced3a88a6dea190c5df19c2a6599010">InotifyEvent</a>
<li>GetMaxEvents()
@@ -92,17 +102,17 @@
<li>GetMaxWatches()
: <a class="el" href="classInotify.html#86dae1b7a72c0d8fc2a632444a0f2f1f">Inotify</a>
<li>GetMessage()
-: <a class="el" href="classInotifyException.html#1c19a6c919c76332c95970ce7983d016">InotifyException</a>
+: <a class="el" href="classInotifyException.html#6364ea375697356805d47cff957dd757">InotifyException</a>
<li>GetName()
-: <a class="el" href="classInotifyEvent.html#a0524029d360591567c88595cb31df66">InotifyEvent</a>
+: <a class="el" href="classInotifyEvent.html#3aea2437ba8553be703d91b45247a68f">InotifyEvent</a>
<li>GetPath()
-: <a class="el" href="classInotifyWatch.html#89f897a4d98fa54de27730dd8be67966">InotifyWatch</a>
+: <a class="el" href="classInotifyWatch.html#2e659c699e7d43bd0a218fe4905784d2">InotifyWatch</a>
<li>GetSource()
-: <a class="el" href="classInotifyException.html#568200b75da77cc24927922760b3a5d3">InotifyException</a>
+: <a class="el" href="classInotifyException.html#619e8b963faebdefb283d79b5ae5c408">InotifyException</a>
<li>GetWatch()
: <a class="el" href="classInotifyEvent.html#979cd46f53ed674331a5a6d47d1cde92">InotifyEvent</a>
<li>GetWatchCount()
-: <a class="el" href="classInotify.html#b53b7935bda7425b002946d78bfe5863">Inotify</a>
+: <a class="el" href="classInotify.html#716ae90a00dd4895709ea9b8f7959075">Inotify</a>
</ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>Inotify()
@@ -114,9 +124,9 @@
<li>InotifyWatch()
: <a class="el" href="classInotifyWatch.html#c9c02f1dbd143eebd711eba03ac366e9">InotifyWatch</a>
<li>IsEnabled()
-: <a class="el" href="classInotifyWatch.html#3d2a5c58a07449bc6ff192f6c14c4de0">InotifyWatch</a>
+: <a class="el" href="classInotifyWatch.html#5ab551a912e5acff6a9c74baaf9ea324">InotifyWatch</a>
<li>IsRecursive()
-: <a class="el" href="classInotifyWatch.html#1c8ab316b54cb7d1d0b17cbbe6b7d2f8">InotifyWatch</a>
+: <a class="el" href="classInotifyWatch.html#222c911ef0e8d6f61570489ed6042e55">InotifyWatch</a>
<li>IsType()
: <a class="el" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb">InotifyEvent</a>
</ul>
@@ -160,8 +170,8 @@
<li>~InotifyWatch()
: <a class="el" href="classInotifyWatch.html#871c16b01aa8841b36246e5b629ecaef">InotifyWatch</a>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/functions_rela.html b/shared/inotify/doc/html/functions_rela.html
index c7108d04..c59a2852 100644
--- a/shared/inotify/doc/html/functions_rela.html
+++ b/shared/inotify/doc/html/functions_rela.html
@@ -1,29 +1,34 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Class Members - Related Functions</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="functions.html"><span>All</span></a></li>
- <li><a href="functions_func.html"><span>Functions</span></a></li>
- <li><a href="functions_vars.html"><span>Variables</span></a></li>
- <li id="current"><a href="functions_rela.html"><span>Related&nbsp;Functions</span></a></li>
- </ul>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li class="current"><a href="functions_rela.html"><span>Related&nbsp;Functions</span></a></li>
+ </ul>
+ </div>
</div>
+<div class="contents">
&nbsp;
<p>
<ul>
@@ -32,8 +37,8 @@
<li>InotifyWatch
: <a class="el" href="classInotify.html#10880f490c33acd8bd24664fc7bce4ae">Inotify</a>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/functions_vars.html b/shared/inotify/doc/html/functions_vars.html
index 56dfc9b5..c6f76bf7 100644
--- a/shared/inotify/doc/html/functions_vars.html
+++ b/shared/inotify/doc/html/functions_vars.html
@@ -1,41 +1,73 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Class Members - Variables</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
- <li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="functions.html"><span>All</span></a></li>
- <li><a href="functions_func.html"><span>Functions</span></a></li>
- <li id="current"><a href="functions_vars.html"><span>Variables</span></a></li>
- <li><a href="functions_rela.html"><span>Related&nbsp;Functions</span></a></li>
- </ul>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_rela.html"><span>Related&nbsp;Functions</span></a></li>
+ </ul>
+ </div>
</div>
+<div class="contents">
&nbsp;
<p>
<ul>
+<li>m_buf
+: <a class="el" href="classInotify.html#eee7847efd93b681fddac56860fc7958">Inotify</a>
<li>m_err
: <a class="el" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854">InotifyException</a>
+<li>m_events
+: <a class="el" href="classInotify.html#0c1d6c969292dbb7c8c1283a3d8f55e0">Inotify</a>
+<li>m_fd
+: <a class="el" href="classInotify.html#95d6d0ecefff77bd3ee50f1586a4552b">Inotify</a>
+<li>m_fEnabled
+: <a class="el" href="classInotifyWatch.html#b0c23c89cc2996bdf6f41b8ef1f1ed18">InotifyWatch</a>
<li>m_msg
: <a class="el" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">InotifyException</a>
+<li>m_name
+: <a class="el" href="classInotifyEvent.html#6c507a3466515aedc266bdc267079604">InotifyEvent</a>
+<li>m_path
+: <a class="el" href="classInotifyWatch.html#a63ba30ffdb8b9db27970bb1099e4db5">InotifyWatch</a>
+<li>m_paths
+: <a class="el" href="classInotify.html#62f275db6375a366023b2e46f73e3ecc">Inotify</a>
+<li>m_pInotify
+: <a class="el" href="classInotifyWatch.html#ea695aa11f6105184df1ef265be3f1b9">InotifyWatch</a>
<li>m_pSrc
: <a class="el" href="classInotifyException.html#dd106c2255890025561245cf91fe1427">InotifyException</a>
+<li>m_pWatch
+: <a class="el" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac">InotifyEvent</a>
+<li>m_uCookie
+: <a class="el" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af">InotifyEvent</a>
+<li>m_uMask
+: <a class="el" href="classInotifyWatch.html#f725ea61e3252adae6153ecb80de23a8">InotifyWatch</a>
+, <a class="el" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa">InotifyEvent</a>
+<li>m_watches
+: <a class="el" href="classInotify.html#4d07f3a4412028d687936d2479d9a976">Inotify</a>
+<li>m_wd
+: <a class="el" href="classInotifyWatch.html#90a78898dc850b238e713e0db284fb0a">InotifyWatch</a>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/globals.html b/shared/inotify/doc/html/globals.html
index c7601336..52989e59 100644
--- a/shared/inotify/doc/html/globals.html
+++ b/shared/inotify/doc/html/globals.html
@@ -1,30 +1,35 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Class Members</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li id="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Defines</span></a></li>
- </ul>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Defines</span></a></li>
+ </ul>
+ </div>
</div>
+<div class="contents">
Here is a list of all file members with links to the files they belong to:
<p>
<ul>
@@ -69,8 +74,8 @@ Here is a list of all file members with links to the files they belong to:
<li>PROCFS_INOTIFY_BASE
: <a class="el" href="inotify-cxx_8cpp.html#481097f28678020b2cbb26dd071a0085">inotify-cxx.cpp</a>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/globals_defs.html b/shared/inotify/doc/html/globals_defs.html
index 33cb5703..6b434a97 100644
--- a/shared/inotify/doc/html/globals_defs.html
+++ b/shared/inotify/doc/html/globals_defs.html
@@ -1,30 +1,35 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Class Members</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li id="current"><a href="globals_defs.html"><span>Defines</span></a></li>
- </ul>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
+ </ul>
+ </div>
</div>
+<div class="contents">
&nbsp;
<p>
<ul>
@@ -57,8 +62,8 @@
<li>PROCFS_INOTIFY_BASE
: <a class="el" href="inotify-cxx_8cpp.html#481097f28678020b2cbb26dd071a0085">inotify-cxx.cpp</a>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/globals_enum.html b/shared/inotify/doc/html/globals_enum.html
index f5505c8a..58f68878 100644
--- a/shared/inotify/doc/html/globals_enum.html
+++ b/shared/inotify/doc/html/globals_enum.html
@@ -1,38 +1,43 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Class Members</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li id="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Defines</span></a></li>
- </ul>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Defines</span></a></li>
+ </ul>
+ </div>
</div>
+<div class="contents">
&nbsp;
<p>
<ul>
<li>InotifyCapability_t
: <a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">inotify-cxx.h</a>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/globals_eval.html b/shared/inotify/doc/html/globals_eval.html
index 3e27eec9..53cb2d59 100644
--- a/shared/inotify/doc/html/globals_eval.html
+++ b/shared/inotify/doc/html/globals_eval.html
@@ -1,30 +1,35 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Class Members</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li id="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Defines</span></a></li>
- </ul>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Defines</span></a></li>
+ </ul>
+ </div>
</div>
+<div class="contents">
&nbsp;
<p>
<ul>
@@ -35,8 +40,8 @@
<li>IN_MAX_WATCHES
: <a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429">inotify-cxx.h</a>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/globals_type.html b/shared/inotify/doc/html/globals_type.html
index 1e371ed2..3e2f0b63 100644
--- a/shared/inotify/doc/html/globals_type.html
+++ b/shared/inotify/doc/html/globals_type.html
@@ -1,30 +1,35 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Class Members</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li id="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="globals.html"><span>All</span></a></li>
- <li id="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Defines</span></a></li>
- </ul>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Defines</span></a></li>
+ </ul>
+ </div>
</div>
+<div class="contents">
&nbsp;
<p>
<ul>
@@ -33,8 +38,8 @@
<li>IN_WP_MAP
: <a class="el" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6">inotify-cxx.h</a>
</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/graph_legend.dot b/shared/inotify/doc/html/graph_legend.dot
new file mode 100644
index 00000000..9a09018a
--- /dev/null
+++ b/shared/inotify/doc/html/graph_legend.dot
@@ -0,0 +1,22 @@
+digraph G
+{
+ edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
+ node [fontname="FreeSans",fontsize="10",shape=record];
+ Node9 [shape="box",label="Inherited",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",fillcolor="grey75",style="filled" fontcolor="black"];
+ Node10 -> Node9 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+ Node10 [shape="box",label="PublicBase",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classPublicBase.html"];
+ Node11 -> Node10 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+ Node11 [shape="box",label="Truncated",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="red",URL="$classTruncated.html"];
+ Node13 -> Node9 [dir=back,color="darkgreen",fontsize="10",style="solid",fontname="FreeSans"];
+ Node13 [shape="box",label="ProtectedBase",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classProtectedBase.html"];
+ Node14 -> Node9 [dir=back,color="firebrick4",fontsize="10",style="solid",fontname="FreeSans"];
+ Node14 [shape="box",label="PrivateBase",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classPrivateBase.html"];
+ Node15 -> Node9 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+ Node15 [shape="box",label="Undocumented",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="grey75"];
+ Node16 -> Node9 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
+ Node16 [shape="box",label="Templ< int >",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classTempl.html"];
+ Node17 -> Node16 [dir=back,color="orange",fontsize="10",style="dashed",label="< int >",fontname="FreeSans"];
+ Node17 [shape="box",label="Templ< T >",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classTempl.html"];
+ Node18 -> Node9 [dir=back,color="darkorchid3",fontsize="10",style="dashed",label="m_usedClass",fontname="FreeSans"];
+ Node18 [shape="box",label="Used",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classUsed.html"];
+}
diff --git a/shared/inotify/doc/html/graph_legend.html b/shared/inotify/doc/html/graph_legend.html
new file mode 100644
index 00000000..e86c0cf9
--- /dev/null
+++ b/shared/inotify/doc/html/graph_legend.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>inotify-cxx: Graph Legend</title>
+<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>Graph Legend</h1>This page explains how to interpret the graphs that are generated by doxygen.<p>
+Consider the following example: <div class="fragment"><pre class="fragment"><span class="comment">/*! Invisible class because of truncation */</span>
+<span class="keyword">class </span>Invisible { };
+<span class="comment"></span>
+<span class="comment">/*! Truncated class, inheritance relation is hidden */</span>
+<span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };
+
+<span class="comment">/* Class not documented with doxygen comments */</span>
+<span class="keyword">class </span>Undocumented { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is inherited using public inheritance */</span>
+<span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };
+<span class="comment"></span>
+<span class="comment">/*! A template class */</span>
+<span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is inherited using protected inheritance */</span>
+<span class="keyword">class </span>ProtectedBase { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is inherited using private inheritance */</span>
+<span class="keyword">class </span>PrivateBase { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is used by the Inherited class */</span>
+<span class="keyword">class </span>Used { };
+<span class="comment"></span>
+<span class="comment">/*! Super class that inherits a number of other classes */</span>
+<span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,
+ <span class="keyword">protected</span> ProtectedBase,
+ <span class="keyword">private</span> PrivateBase,
+ <span class="keyword">public</span> Undocumented,
+ <span class="keyword">public</span> Templ&lt;int&gt;
+{
+ <span class="keyword">private</span>:
+ Used *m_usedClass;
+};
+</pre></div> This will result in the following graph:<p>
+<center><div align="center">
+<img src="graph_legend.png" alt="graph_legend.png">
+</div>
+</center> <p>
+The boxes in the above graph have the following meaning: <ul>
+<li>
+A filled gray box represents the struct or class for which the graph is generated. </li>
+<li>
+A box with a black border denotes a documented struct or class. </li>
+<li>
+A box with a grey border denotes an undocumented struct or class. </li>
+<li>
+A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
+</ul>
+The arrows have the following meaning: <ul>
+<li>
+A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
+<li>
+A dark green arrow is used for protected inheritance. </li>
+<li>
+A dark red arrow is used for private inheritance. </li>
+<li>
+A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
+<li>
+A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
+</body>
+</html>
diff --git a/shared/inotify/doc/html/graph_legend.png b/shared/inotify/doc/html/graph_legend.png
new file mode 100644
index 00000000..67057ca1
--- /dev/null
+++ b/shared/inotify/doc/html/graph_legend.png
Binary files differ
diff --git a/shared/inotify/doc/html/index.html b/shared/inotify/doc/html/index.html
index aa2d9b87..94cae8a5 100644
--- a/shared/inotify/doc/html/index.html
+++ b/shared/inotify/doc/html/index.html
@@ -1,20 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li id="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul></div>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
<h1>inotify-cxx Documentation</h1>
<p>
-<h3 align="center">0.7.2 </h3><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+<h3 align="center">0.7.3 </h3></div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/inotify-cxx_8cpp.html b/shared/inotify/doc/html/inotify-cxx_8cpp.html
index 3fdd5140..c307e1ca 100644
--- a/shared/inotify/doc/html/inotify-cxx_8cpp.html
+++ b/shared/inotify/doc/html/inotify-cxx_8cpp.html
@@ -1,27 +1,45 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: inotify-cxx.cpp File Reference</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul></div>
-<h1>inotify-cxx.cpp File Reference</h1>inotify C++ interface implementation <a href="#_details">More...</a>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+ <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>inotify-cxx.cpp File Reference</h1>inotify C++ interface implementation
+<a href="#_details">More...</a>
<p>
<code>#include &lt;errno.h&gt;</code><br>
<code>#include &lt;unistd.h&gt;</code><br>
<code>#include &lt;fcntl.h&gt;</code><br>
-<code>#include &quot;<a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a>&quot;</code><br>
+<code>#include &lt;fstream&gt;</code><br>
+<code>#include &lt;sys/syscall.h&gt;</code><br>
+<code>#include &lt;sys/inotify-syscalls.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="inotify-cxx_8h_source.html">inotify-cxx.h</a>&quot;</code><br>
+
+<p>
+<div class="dynheader">
+Include dependency graph for inotify-cxx.cpp:</div>
+<div class="dynsection">
+<p><center><img src="inotify-cxx_8cpp__incl.png" border="0" usemap="#inotify-cxx.cpp_map" alt=""></center>
+<map name="inotify-cxx.cpp_map">
+<area shape="rect" href="inotify-cxx_8h.html" title="inotify C++ interface header" alt="" coords="640,80,731,107"></map>
+</div>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
@@ -32,19 +50,20 @@
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">dump separator (between particular entries) <a href="#6e5d8f74743466e712bbaf3b1de1e93d"></a><br></td></tr>
</table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
+<hr><h2>Detailed Description</h2>
inotify C++ interface implementation
<p>
inotify C++ interface<p>
-Copyright (C) 2006, 2007 Lukas Jelinek &lt;<a href="mailto:lukas@aiken.cz">lukas@aiken.cz</a>&gt;<p>
+Copyright (C) 2006, 2007, 2009 Lukas Jelinek &lt;<a href="mailto:lukas@aiken.cz">lukas@aiken.cz</a>&gt;<p>
This program is free software; you can redistribute it and/or modify it under the terms of one of the following licenses:<p>
<ul>
<li>1. X11-style license (see LICENSE-X11) </li>
<li>2. GNU Lesser General Public License, version 2.1 (see LICENSE-LGPL) </li>
<li>3. GNU General Public License, version 2 (see LICENSE-GPL)</li>
</ul>
-If you want to help with choosing the best license for you, please visit <a href="http://www.gnu.org/licenses/license-list.html.">http://www.gnu.org/licenses/license-list.html.</a> <hr><h2>Define Documentation</h2>
-<a class="anchor" name="6e5d8f74743466e712bbaf3b1de1e93d"></a><!-- doxytag: member="inotify-cxx.cpp::DUMP_SEP" ref="6e5d8f74743466e712bbaf3b1de1e93d" args="" -->
+If you want to help with choosing the best license for you, please visit <a href="http://www.gnu.org/licenses/license-list.html.">http://www.gnu.org/licenses/license-list.html.</a><p>
+Credits: Mike Frysinger (cleanup of includes) <hr><h2>Define Documentation</h2>
+<a class="anchor" name="6e5d8f74743466e712bbaf3b1de1e93d"></a><!-- doxytag: member="inotify&#45;cxx.cpp::DUMP_SEP" ref="6e5d8f74743466e712bbaf3b1de1e93d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -66,7 +85,7 @@ If you want to help with choosing the best license for you, please visit <a href
</div>
</div><p>
-<a class="anchor" name="481097f28678020b2cbb26dd071a0085"></a><!-- doxytag: member="inotify-cxx.cpp::PROCFS_INOTIFY_BASE" ref="481097f28678020b2cbb26dd071a0085" args="" -->
+<a class="anchor" name="481097f28678020b2cbb26dd071a0085"></a><!-- doxytag: member="inotify&#45;cxx.cpp::PROCFS_INOTIFY_BASE" ref="481097f28678020b2cbb26dd071a0085" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -83,8 +102,8 @@ procfs inotify base path
</div>
</div><p>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/inotify-cxx_8cpp__incl.map b/shared/inotify/doc/html/inotify-cxx_8cpp__incl.map
new file mode 100644
index 00000000..7f997b6b
--- /dev/null
+++ b/shared/inotify/doc/html/inotify-cxx_8cpp__incl.map
@@ -0,0 +1 @@
+<area shape="rect" href="$inotify-cxx_8h.html" title="inotify C++ interface header" alt="" coords="640,80,731,107">
diff --git a/shared/inotify/doc/html/inotify-cxx_8cpp__incl.md5 b/shared/inotify/doc/html/inotify-cxx_8cpp__incl.md5
new file mode 100644
index 00000000..9c28c7ef
--- /dev/null
+++ b/shared/inotify/doc/html/inotify-cxx_8cpp__incl.md5
@@ -0,0 +1 @@
+579c4ee16d330d2021fb9eb25831f079 \ No newline at end of file
diff --git a/shared/inotify/doc/html/inotify-cxx_8cpp__incl.png b/shared/inotify/doc/html/inotify-cxx_8cpp__incl.png
new file mode 100644
index 00000000..ce7631c7
--- /dev/null
+++ b/shared/inotify/doc/html/inotify-cxx_8cpp__incl.png
Binary files differ
diff --git a/shared/inotify/doc/html/inotify-cxx_8h-source.html b/shared/inotify/doc/html/inotify-cxx_8h-source.html
deleted file mode 100644
index 5500b217..00000000
--- a/shared/inotify/doc/html/inotify-cxx_8h-source.html
+++ /dev/null
@@ -1,505 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>inotify-cxx: inotify-cxx.h Source File</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul></div>
-<h1>inotify-cxx.h</h1><a href="inotify-cxx_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
-<a name="l00003"></a>00003
-<a name="l00026"></a>00026 <span class="preprocessor">#ifndef _INOTIFYCXX_H_</span>
-<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#define _INOTIFYCXX_H_</span>
-<a name="l00028"></a>00028 <span class="preprocessor"></span>
-<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
-<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;string&gt;</span>
-<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;deque&gt;</span>
-<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;map&gt;</span>
-<a name="l00033"></a>00033
-<a name="l00034"></a>00034 <span class="comment">// Please ensure that the following headers take the right place</span>
-<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;sys/syscall.h&gt;</span>
-<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;sys/inotify.h&gt;</span>
-<a name="l00037"></a>00037
-<a name="l00038"></a>00038 <span class="comment">// Use this if syscalls not defined</span>
-<a name="l00039"></a>00039 <span class="preprocessor">#ifndef __NR_inotify_init</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/inotify-syscalls.h&gt;</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#endif // __NR_inotify_init</span>
-<a name="l00042"></a>00042 <span class="preprocessor"></span>
-<a name="l00044"></a><a class="code" href="inotify-cxx_8h.html#f64b4cc985ba26f31a9cb242153a5014">00044</a> <span class="preprocessor">#define INOTIFY_EVENT_SIZE (sizeof(struct inotify_event))</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span>
-<a name="l00047"></a><a class="code" href="inotify-cxx_8h.html#a84911f8e42d71161b60d4a28940abb4">00047</a> <span class="preprocessor">#define INOTIFY_BUFLEN (1024 * (INOTIFY_EVENT_SIZE + 16))</span>
-<a name="l00048"></a>00048 <span class="preprocessor"></span>
-<a name="l00050"></a>00050
-<a name="l00053"></a><a class="code" href="inotify-cxx_8h.html#fe6b93f7e09db7022f1f9dd102932e12">00053</a> <span class="preprocessor">#define IN_EXC_MSG(msg) (std::string(__PRETTY_FUNCTION__) + ": " + msg)</span>
-<a name="l00054"></a>00054 <span class="preprocessor"></span>
-<a name="l00056"></a><a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">00056</a> <span class="keyword">typedef</span> <span class="keyword">enum</span>
-<a name="l00057"></a>00057 {
-<a name="l00058"></a>00058 <a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d18e969c9c44523b38a13b0a207286dd1">IN_MAX_EVENTS</a> = 0,
-<a name="l00059"></a>00059 <a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d43cc45296a9afe5cb68f568176608dd9">IN_MAX_INSTANCES</a> = 1,
-<a name="l00060"></a><a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429">00060</a> <a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429">IN_MAX_WATCHES</a> = 2
-<a name="l00061"></a>00061 } <a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a>;
-<a name="l00062"></a>00062
-<a name="l00064"></a>00064
-<a name="l00082"></a>00082 <span class="preprocessor">#ifdef INOTIFY_THREAD_SAFE</span>
-<a name="l00083"></a>00083 <span class="preprocessor"></span>
-<a name="l00084"></a>00084 <span class="preprocessor">#include &lt;pthread.h&gt;</span>
-<a name="l00085"></a>00085
-<a name="l00086"></a>00086 <span class="preprocessor">#define IN_LOCK_DECL mutable pthread_rwlock_t __m_lock;</span>
-<a name="l00087"></a>00087 <span class="preprocessor"></span>
-<a name="l00088"></a>00088 <span class="preprocessor">#define IN_LOCK_INIT \</span>
-<a name="l00089"></a>00089 <span class="preprocessor"> { \</span>
-<a name="l00090"></a>00090 <span class="preprocessor"> pthread_rwlockattr_t attr; \</span>
-<a name="l00091"></a>00091 <span class="preprocessor"> int res = 0; \</span>
-<a name="l00092"></a>00092 <span class="preprocessor"> if ((res = pthread_rwlockattr_init(&amp;attr)) != 0) \</span>
-<a name="l00093"></a>00093 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("cannot initialize lock attributes"), res, this); \</span>
-<a name="l00094"></a>00094 <span class="preprocessor"> if ((res = pthread_rwlockattr_setkind_np(&amp;attr, PTHREAD_RWLOCK_PREFER_WRITER_NP)) != 0) \</span>
-<a name="l00095"></a>00095 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("cannot set lock kind"), res, this); \</span>
-<a name="l00096"></a>00096 <span class="preprocessor"> if ((res = pthread_rwlock_init(&amp;__m_lock, &amp;attr)) != 0) \</span>
-<a name="l00097"></a>00097 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("cannot initialize lock"), res, this); \</span>
-<a name="l00098"></a>00098 <span class="preprocessor"> pthread_rwlockattr_destroy(&amp;attr); \</span>
-<a name="l00099"></a>00099 <span class="preprocessor"> }</span>
-<a name="l00100"></a>00100 <span class="preprocessor"></span>
-<a name="l00101"></a>00101 <span class="preprocessor">#define IN_LOCK_DONE pthread_rwlock_destroy(&amp;__m_lock);</span>
-<a name="l00102"></a>00102 <span class="preprocessor"></span>
-<a name="l00103"></a>00103 <span class="preprocessor">#define IN_READ_BEGIN \</span>
-<a name="l00104"></a>00104 <span class="preprocessor"> { \</span>
-<a name="l00105"></a>00105 <span class="preprocessor"> int res = pthread_rwlock_rdlock(&amp;__m_lock); \</span>
-<a name="l00106"></a>00106 <span class="preprocessor"> if (res != 0) \</span>
-<a name="l00107"></a>00107 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("locking for reading failed"), res, (void*) this); \</span>
-<a name="l00108"></a>00108 <span class="preprocessor"> }</span>
-<a name="l00109"></a>00109 <span class="preprocessor"></span>
-<a name="l00110"></a>00110 <span class="preprocessor">#define IN_READ_END \</span>
-<a name="l00111"></a>00111 <span class="preprocessor"> { \</span>
-<a name="l00112"></a>00112 <span class="preprocessor"> int res = pthread_rwlock_unlock(&amp;__m_lock); \</span>
-<a name="l00113"></a>00113 <span class="preprocessor"> if (res != 0) \</span>
-<a name="l00114"></a>00114 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("unlocking failed"), res, (void*) this); \</span>
-<a name="l00115"></a>00115 <span class="preprocessor"> }</span>
-<a name="l00116"></a>00116 <span class="preprocessor"></span>
-<a name="l00117"></a>00117 <span class="preprocessor">#define IN_READ_END_NOTHROW pthread_rwlock_unlock(&amp;__m_lock);</span>
-<a name="l00118"></a>00118 <span class="preprocessor"></span>
-<a name="l00119"></a>00119 <span class="preprocessor">#define IN_WRITE_BEGIN \</span>
-<a name="l00120"></a>00120 <span class="preprocessor"> { \</span>
-<a name="l00121"></a>00121 <span class="preprocessor"> int res = pthread_rwlock_wrlock(&amp;__m_lock); \</span>
-<a name="l00122"></a>00122 <span class="preprocessor"> if (res != 0) \</span>
-<a name="l00123"></a>00123 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("locking for writing failed"), res, (void*) this); \</span>
-<a name="l00124"></a>00124 <span class="preprocessor"> }</span>
-<a name="l00125"></a>00125 <span class="preprocessor"></span>
-<a name="l00126"></a>00126 <span class="preprocessor">#define IN_WRITE_END IN_READ_END</span>
-<a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor">#define IN_WRITE_END_NOTHROW IN_READ_END_NOTHROW</span>
-<a name="l00128"></a>00128 <span class="preprocessor"></span>
-<a name="l00129"></a>00129 <span class="preprocessor">#else // INOTIFY_THREAD_SAFE</span>
-<a name="l00130"></a>00130 <span class="preprocessor"></span>
-<a name="l00131"></a><a class="code" href="inotify-cxx_8h.html#904d25c0fd931e1bad4f9d5cd346a766">00131</a> <span class="preprocessor">#define IN_LOCK_DECL</span>
-<a name="l00132"></a><a class="code" href="inotify-cxx_8h.html#981aa546075fba39715fd2f63a41f575">00132</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_LOCK_INIT</span>
-<a name="l00133"></a><a class="code" href="inotify-cxx_8h.html#08422ec66fb587c1684afbaa575a53dd">00133</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_LOCK_DONE</span>
-<a name="l00134"></a><a class="code" href="inotify-cxx_8h.html#963a97dc42487e86715b4e04639b0db8">00134</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_READ_BEGIN</span>
-<a name="l00135"></a><a class="code" href="inotify-cxx_8h.html#0b82080ab6709175341b97e1f3c3955d">00135</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_READ_END</span>
-<a name="l00136"></a><a class="code" href="inotify-cxx_8h.html#5c6a5be1898ef17662795cc4b420c851">00136</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_READ_END_NOTHROW</span>
-<a name="l00137"></a><a class="code" href="inotify-cxx_8h.html#c3a6d87ace9403f7ac58f931bbcd9599">00137</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_WRITE_BEGIN</span>
-<a name="l00138"></a><a class="code" href="inotify-cxx_8h.html#f8aeac51b3b4ef56f1791c5c1a2e9cf5">00138</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_WRITE_END</span>
-<a name="l00139"></a><a class="code" href="inotify-cxx_8h.html#7e68c4884137939c5e3301f40c198dc7">00139</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_WRITE_END_NOTHROW</span>
-<a name="l00140"></a>00140 <span class="preprocessor"></span>
-<a name="l00141"></a>00141 <span class="preprocessor">#endif // INOTIFY_THREAD_SAFE</span>
-<a name="l00142"></a>00142 <span class="preprocessor"></span>
-<a name="l00143"></a>00143
-<a name="l00144"></a>00144
-<a name="l00145"></a>00145
-<a name="l00146"></a>00146 <span class="comment">// forward declaration</span>
-<a name="l00147"></a>00147 <span class="keyword">class </span><a class="code" href="classInotifyWatch.html">InotifyWatch</a>;
-<a name="l00148"></a>00148 <span class="keyword">class </span><a class="code" href="classInotify.html">Inotify</a>;
-<a name="l00149"></a>00149
-<a name="l00150"></a>00150
-<a name="l00152"></a>00152
-<a name="l00160"></a><a class="code" href="classInotifyException.html">00160</a> <span class="keyword">class </span><a class="code" href="classInotifyException.html">InotifyException</a>
-<a name="l00161"></a>00161 {
-<a name="l00162"></a>00162 <span class="keyword">public</span>:
-<a name="l00164"></a>00164
-<a name="l00169"></a><a class="code" href="classInotifyException.html#900dc29e5cfb3ece6c1651d04773b2bb">00169</a> <a class="code" href="classInotifyException.html#900dc29e5cfb3ece6c1651d04773b2bb">InotifyException</a>(<span class="keyword">const</span> std::string&amp; rMsg = <span class="stringliteral">""</span>, <span class="keywordtype">int</span> iErr = 0, <span class="keywordtype">void</span>* pSrc = NULL)
-<a name="l00170"></a>00170 : <a class="code" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">m_msg</a>(rMsg),
-<a name="l00171"></a>00171 <a class="code" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854">m_err</a>(iErr)
-<a name="l00172"></a>00172 {
-<a name="l00173"></a>00173 <a class="code" href="classInotifyException.html#dd106c2255890025561245cf91fe1427">m_pSrc</a> = pSrc;
-<a name="l00174"></a>00174 }
-<a name="l00175"></a>00175
-<a name="l00177"></a>00177
-<a name="l00180"></a><a class="code" href="classInotifyException.html#1c19a6c919c76332c95970ce7983d016">00180</a> <span class="keyword">inline</span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classInotifyException.html#1c19a6c919c76332c95970ce7983d016">GetMessage</a>()<span class="keyword"> const</span>
-<a name="l00181"></a>00181 <span class="keyword"> </span>{
-<a name="l00182"></a>00182 <span class="keywordflow">return</span> <a class="code" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">m_msg</a>;
-<a name="l00183"></a>00183 }
-<a name="l00184"></a>00184
-<a name="l00186"></a>00186
-<a name="l00191"></a><a class="code" href="classInotifyException.html#3fda7827f1561f610e40bcd217bdc6fe">00191</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classInotifyException.html#3fda7827f1561f610e40bcd217bdc6fe">GetErrorNumber</a>()<span class="keyword"> const</span>
-<a name="l00192"></a>00192 <span class="keyword"> </span>{
-<a name="l00193"></a>00193 <span class="keywordflow">return</span> <a class="code" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854">m_err</a>;
-<a name="l00194"></a>00194 }
-<a name="l00195"></a>00195
-<a name="l00197"></a>00197
-<a name="l00200"></a><a class="code" href="classInotifyException.html#568200b75da77cc24927922760b3a5d3">00200</a> <span class="keyword">inline</span> <span class="keywordtype">void</span>* <a class="code" href="classInotifyException.html#568200b75da77cc24927922760b3a5d3">GetSource</a>()<span class="keyword"> const</span>
-<a name="l00201"></a>00201 <span class="keyword"> </span>{
-<a name="l00202"></a>00202 <span class="keywordflow">return</span> <a class="code" href="classInotifyException.html#dd106c2255890025561245cf91fe1427">m_pSrc</a>;
-<a name="l00203"></a>00203 }
-<a name="l00204"></a>00204
-<a name="l00205"></a>00205 <span class="keyword">protected</span>:
-<a name="l00206"></a><a class="code" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">00206</a> std::string <a class="code" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">m_msg</a>;
-<a name="l00207"></a><a class="code" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854">00207</a> <span class="keywordtype">int</span> <a class="code" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854">m_err</a>;
-<a name="l00208"></a><a class="code" href="classInotifyException.html#dd106c2255890025561245cf91fe1427">00208</a> <span class="keyword">mutable</span> <span class="keywordtype">void</span>* <a class="code" href="classInotifyException.html#dd106c2255890025561245cf91fe1427">m_pSrc</a>;
-<a name="l00209"></a>00209 };
-<a name="l00210"></a>00210
-<a name="l00211"></a>00211
-<a name="l00213"></a>00213
-<a name="l00221"></a><a class="code" href="classInotifyEvent.html">00221</a> <span class="keyword">class </span><a class="code" href="classInotifyEvent.html">InotifyEvent</a>
-<a name="l00222"></a>00222 {
-<a name="l00223"></a>00223 <span class="keyword">public</span>:
-<a name="l00225"></a>00225
-<a name="l00228"></a><a class="code" href="classInotifyEvent.html#f416dbbd4e6ddd3c0eea6cb540f0b046">00228</a> <a class="code" href="classInotifyEvent.html#f416dbbd4e6ddd3c0eea6cb540f0b046">InotifyEvent</a>()
-<a name="l00229"></a>00229 : m_uMask(0),
-<a name="l00230"></a>00230 m_uCookie(0)
-<a name="l00231"></a>00231 {
-<a name="l00232"></a>00232 m_pWatch = NULL;
-<a name="l00233"></a>00233 }
-<a name="l00234"></a>00234
-<a name="l00236"></a>00236
-<a name="l00243"></a><a class="code" href="classInotifyEvent.html#6d7f3fc0f51580da4a3ec2348609df64">00243</a> <a class="code" href="classInotifyEvent.html#f416dbbd4e6ddd3c0eea6cb540f0b046">InotifyEvent</a>(<span class="keyword">const</span> <span class="keyword">struct</span> inotify_event* pEvt, <a class="code" href="classInotifyWatch.html">InotifyWatch</a>* pWatch)
-<a name="l00244"></a>00244 : m_uMask(0),
-<a name="l00245"></a>00245 m_uCookie(0)
-<a name="l00246"></a>00246 {
-<a name="l00247"></a>00247 <span class="keywordflow">if</span> (pEvt != NULL) {
-<a name="l00248"></a>00248 m_uMask = (uint32_t) pEvt-&gt;mask;
-<a name="l00249"></a>00249 m_uCookie = (uint32_t) pEvt-&gt;cookie;
-<a name="l00250"></a>00250 <span class="keywordflow">if</span> (pEvt-&gt;name != NULL) {
-<a name="l00251"></a>00251 m_name = pEvt-&gt;len &gt; 0
-<a name="l00252"></a>00252 ? pEvt-&gt;name
-<a name="l00253"></a>00253 : <span class="stringliteral">""</span>;
-<a name="l00254"></a>00254 }
-<a name="l00255"></a>00255 m_pWatch = pWatch;
-<a name="l00256"></a>00256 }
-<a name="l00257"></a>00257 <span class="keywordflow">else</span> {
-<a name="l00258"></a>00258 m_pWatch = NULL;
-<a name="l00259"></a>00259 }
-<a name="l00260"></a>00260 }
-<a name="l00261"></a>00261
-<a name="l00263"></a><a class="code" href="classInotifyEvent.html#a48030da1d3a1b1741ca791c9e129888">00263</a> <a class="code" href="classInotifyEvent.html#a48030da1d3a1b1741ca791c9e129888">~InotifyEvent</a>() {}
-<a name="l00264"></a>00264
-<a name="l00266"></a>00266
-<a name="l00271"></a>00271 int32_t <a class="code" href="classInotifyEvent.html#83958af6b634d47173bde81b3bd5bbe6">GetDescriptor</a>() <span class="keyword">const</span>;
-<a name="l00272"></a>00272
-<a name="l00274"></a>00274
-<a name="l00279"></a><a class="code" href="classInotifyEvent.html#2aadeb49530a62b06d98e22c335b1ec8">00279</a> <span class="keyword">inline</span> uint32_t <a class="code" href="classInotifyEvent.html#2aadeb49530a62b06d98e22c335b1ec8">GetMask</a>()<span class="keyword"> const</span>
-<a name="l00280"></a>00280 <span class="keyword"> </span>{
-<a name="l00281"></a>00281 <span class="keywordflow">return</span> m_uMask;
-<a name="l00282"></a>00282 }
-<a name="l00283"></a>00283
-<a name="l00285"></a>00285
-<a name="l00290"></a><a class="code" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb">00290</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb">IsType</a>(uint32_t uValue, uint32_t uType)
-<a name="l00291"></a>00291 {
-<a name="l00292"></a>00292 <span class="keywordflow">return</span> ((uValue &amp; uType) != 0) &amp;&amp; ((~uValue &amp; uType) == 0);
-<a name="l00293"></a>00293 }
-<a name="l00294"></a>00294
-<a name="l00296"></a>00296
-<a name="l00300"></a><a class="code" href="classInotifyEvent.html#7fdee6664ec63ccc87ff1221abba9abc">00300</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb">IsType</a>(uint32_t uType)<span class="keyword"> const</span>
-<a name="l00301"></a>00301 <span class="keyword"> </span>{
-<a name="l00302"></a>00302 <span class="keywordflow">return</span> <a class="code" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb">IsType</a>(m_uMask, uType);
-<a name="l00303"></a>00303 }
-<a name="l00304"></a>00304
-<a name="l00306"></a>00306
-<a name="l00309"></a><a class="code" href="classInotifyEvent.html#441dfd50abda0e81eb7e4f6d33c68e96">00309</a> <span class="keyword">inline</span> uint32_t <a class="code" href="classInotifyEvent.html#441dfd50abda0e81eb7e4f6d33c68e96">GetCookie</a>()<span class="keyword"> const</span>
-<a name="l00310"></a>00310 <span class="keyword"> </span>{
-<a name="l00311"></a>00311 <span class="keywordflow">return</span> m_uCookie;
-<a name="l00312"></a>00312 }
-<a name="l00313"></a>00313
-<a name="l00315"></a>00315
-<a name="l00318"></a><a class="code" href="classInotifyEvent.html#111954d74f0320745a68ef030064e987">00318</a> <span class="keyword">inline</span> uint32_t <a class="code" href="classInotifyEvent.html#111954d74f0320745a68ef030064e987">GetLength</a>()<span class="keyword"> const</span>
-<a name="l00319"></a>00319 <span class="keyword"> </span>{
-<a name="l00320"></a>00320 <span class="keywordflow">return</span> (uint32_t) m_name.length();
-<a name="l00321"></a>00321 }
-<a name="l00322"></a>00322
-<a name="l00324"></a>00324
-<a name="l00327"></a><a class="code" href="classInotifyEvent.html#a0524029d360591567c88595cb31df66">00327</a> <span class="keyword">inline</span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classInotifyEvent.html#a0524029d360591567c88595cb31df66">GetName</a>()<span class="keyword"> const</span>
-<a name="l00328"></a>00328 <span class="keyword"> </span>{
-<a name="l00329"></a>00329 <span class="keywordflow">return</span> m_name;
-<a name="l00330"></a>00330 }
-<a name="l00331"></a>00331
-<a name="l00333"></a>00333
-<a name="l00336"></a><a class="code" href="classInotifyEvent.html#e053c52feebf6dae5a762e6baeba93db">00336</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classInotifyEvent.html#a0524029d360591567c88595cb31df66">GetName</a>(std::string&amp; rName)<span class="keyword"> const</span>
-<a name="l00337"></a>00337 <span class="keyword"> </span>{
-<a name="l00338"></a>00338 rName = <a class="code" href="classInotifyEvent.html#a0524029d360591567c88595cb31df66">GetName</a>();
-<a name="l00339"></a>00339 }
-<a name="l00340"></a>00340
-<a name="l00342"></a>00342
-<a name="l00345"></a><a class="code" href="classInotifyEvent.html#979cd46f53ed674331a5a6d47d1cde92">00345</a> <span class="keyword">inline</span> <a class="code" href="classInotifyWatch.html">InotifyWatch</a>* <a class="code" href="classInotifyEvent.html#979cd46f53ed674331a5a6d47d1cde92">GetWatch</a>()
-<a name="l00346"></a>00346 {
-<a name="l00347"></a>00347 <span class="keywordflow">return</span> m_pWatch;
-<a name="l00348"></a>00348 }
-<a name="l00349"></a>00349
-<a name="l00351"></a>00351
-<a name="l00355"></a>00355 <span class="keyword">static</span> uint32_t <a class="code" href="classInotifyEvent.html#eced3a88a6dea190c5df19c2a6599010">GetMaskByName</a>(<span class="keyword">const</span> std::string&amp; rName);
-<a name="l00356"></a>00356
-<a name="l00358"></a>00358
-<a name="l00362"></a>00362 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classInotifyEvent.html#c08a0a26ea33dbe94aaf1ac830c103a5">DumpTypes</a>(uint32_t uValue, std::string&amp; rStr);
-<a name="l00363"></a>00363
-<a name="l00365"></a>00365
-<a name="l00368"></a>00368 <span class="keywordtype">void</span> <a class="code" href="classInotifyEvent.html#c08a0a26ea33dbe94aaf1ac830c103a5">DumpTypes</a>(std::string&amp; rStr) <span class="keyword">const</span>;
-<a name="l00369"></a>00369
-<a name="l00370"></a>00370 <span class="keyword">private</span>:
-<a name="l00371"></a>00371 uint32_t m_uMask;
-<a name="l00372"></a>00372 uint32_t m_uCookie;
-<a name="l00373"></a>00373 std::string m_name;
-<a name="l00374"></a>00374 <a class="code" href="classInotifyWatch.html">InotifyWatch</a>* m_pWatch;
-<a name="l00375"></a>00375 };
-<a name="l00376"></a>00376
-<a name="l00377"></a>00377
-<a name="l00378"></a>00378
-<a name="l00380"></a>00380
-<a name="l00386"></a><a class="code" href="classInotifyWatch.html">00386</a> <span class="keyword">class </span><a class="code" href="classInotifyWatch.html">InotifyWatch</a>
-<a name="l00387"></a>00387 {
-<a name="l00388"></a>00388 <span class="keyword">public</span>:
-<a name="l00390"></a>00390
-<a name="l00398"></a><a class="code" href="classInotifyWatch.html#c9c02f1dbd143eebd711eba03ac366e9">00398</a> <a class="code" href="classInotifyWatch.html#c9c02f1dbd143eebd711eba03ac366e9">InotifyWatch</a>(<span class="keyword">const</span> std::string&amp; rPath, int32_t uMask, <span class="keywordtype">bool</span> fEnabled = <span class="keyword">true</span>)
-<a name="l00399"></a>00399 : m_path(rPath),
-<a name="l00400"></a>00400 m_uMask(uMask),
-<a name="l00401"></a>00401 m_wd((int32_t) -1),
-<a name="l00402"></a>00402 m_fEnabled(fEnabled)
-<a name="l00403"></a>00403 {
-<a name="l00404"></a>00404 <a class="code" href="inotify-cxx_8h.html#981aa546075fba39715fd2f63a41f575">IN_LOCK_INIT</a>
-<a name="l00405"></a>00405 }
-<a name="l00406"></a>00406
-<a name="l00408"></a><a class="code" href="classInotifyWatch.html#871c16b01aa8841b36246e5b629ecaef">00408</a> <a class="code" href="classInotifyWatch.html#871c16b01aa8841b36246e5b629ecaef">~InotifyWatch</a>()
-<a name="l00409"></a>00409 {
-<a name="l00410"></a>00410 <a class="code" href="inotify-cxx_8h.html#08422ec66fb587c1684afbaa575a53dd">IN_LOCK_DONE</a>
-<a name="l00411"></a>00411 }
-<a name="l00412"></a>00412
-<a name="l00414"></a>00414
-<a name="l00417"></a><a class="code" href="classInotifyWatch.html#df771e1f81e2a6cc2780c9d2470e34c6">00417</a> <span class="keyword">inline</span> int32_t <a class="code" href="classInotifyWatch.html#df771e1f81e2a6cc2780c9d2470e34c6">GetDescriptor</a>()<span class="keyword"> const</span>
-<a name="l00418"></a>00418 <span class="keyword"> </span>{
-<a name="l00419"></a>00419 <span class="keywordflow">return</span> m_wd;
-<a name="l00420"></a>00420 }
-<a name="l00421"></a>00421
-<a name="l00423"></a>00423
-<a name="l00426"></a><a class="code" href="classInotifyWatch.html#89f897a4d98fa54de27730dd8be67966">00426</a> <span class="keyword">inline</span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classInotifyWatch.html#89f897a4d98fa54de27730dd8be67966">GetPath</a>()<span class="keyword"> const</span>
-<a name="l00427"></a>00427 <span class="keyword"> </span>{
-<a name="l00428"></a>00428 <span class="keywordflow">return</span> m_path;
-<a name="l00429"></a>00429 }
-<a name="l00430"></a>00430
-<a name="l00432"></a>00432
-<a name="l00435"></a><a class="code" href="classInotifyWatch.html#bab761a989c9fdf73aaad2a58e1ba7a0">00435</a> <span class="keyword">inline</span> uint32_t <a class="code" href="classInotifyWatch.html#bab761a989c9fdf73aaad2a58e1ba7a0">GetMask</a>()<span class="keyword"> const</span>
-<a name="l00436"></a>00436 <span class="keyword"> </span>{
-<a name="l00437"></a>00437 <span class="keywordflow">return</span> (uint32_t) m_uMask;
-<a name="l00438"></a>00438 }
-<a name="l00439"></a>00439
-<a name="l00441"></a>00441
-<a name="l00450"></a>00450 <span class="keywordtype">void</span> <a class="code" href="classInotifyWatch.html#3ad7fbc55c21b3fcd08c2d1d388e14b6">SetMask</a>(uint32_t uMask) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00451"></a>00451
-<a name="l00453"></a>00453
-<a name="l00456"></a><a class="code" href="classInotifyWatch.html#cbf0042d06841f9503405b104e4c35d0">00456</a> <span class="keyword">inline</span> <a class="code" href="classInotify.html">Inotify</a>* <a class="code" href="classInotifyWatch.html#cbf0042d06841f9503405b104e4c35d0">GetInotify</a>()
-<a name="l00457"></a>00457 {
-<a name="l00458"></a>00458 <span class="keywordflow">return</span> m_pInotify;
-<a name="l00459"></a>00459 }
-<a name="l00460"></a>00460
-<a name="l00462"></a>00462
-<a name="l00473"></a>00473 <span class="keywordtype">void</span> <a class="code" href="classInotifyWatch.html#a71aff8650fadff32a3c655ca50945f1">SetEnabled</a>(<span class="keywordtype">bool</span> fEnabled) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00474"></a>00474
-<a name="l00476"></a>00476
-<a name="l00479"></a><a class="code" href="classInotifyWatch.html#3d2a5c58a07449bc6ff192f6c14c4de0">00479</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classInotifyWatch.html#3d2a5c58a07449bc6ff192f6c14c4de0">IsEnabled</a>()<span class="keyword"> const</span>
-<a name="l00480"></a>00480 <span class="keyword"> </span>{
-<a name="l00481"></a>00481 <span class="keywordflow">return</span> m_fEnabled;
-<a name="l00482"></a>00482 }
-<a name="l00483"></a>00483
-<a name="l00485"></a>00485
-<a name="l00494"></a><a class="code" href="classInotifyWatch.html#1c8ab316b54cb7d1d0b17cbbe6b7d2f8">00494</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classInotifyWatch.html#1c8ab316b54cb7d1d0b17cbbe6b7d2f8">IsRecursive</a>()<span class="keyword"> const</span>
-<a name="l00495"></a>00495 <span class="keyword"> </span>{
-<a name="l00496"></a>00496 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00497"></a>00497 }
-<a name="l00498"></a>00498
-<a name="l00499"></a>00499 <span class="keyword">private</span>:
-<a name="l00500"></a><a class="code" href="classInotifyWatch.html#94bfb861dc18ca5d16abfcff90db8c86">00500</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classInotify.html">Inotify</a>;
-<a name="l00501"></a>00501
-<a name="l00502"></a>00502 std::string m_path;
-<a name="l00503"></a>00503 uint32_t m_uMask;
-<a name="l00504"></a>00504 int32_t m_wd;
-<a name="l00505"></a>00505 <a class="code" href="classInotify.html">Inotify</a>* m_pInotify;
-<a name="l00506"></a>00506 <span class="keywordtype">bool</span> m_fEnabled;
-<a name="l00507"></a>00507
-<a name="l00508"></a>00508 <a class="code" href="inotify-cxx_8h.html#904d25c0fd931e1bad4f9d5cd346a766">IN_LOCK_DECL</a>
-<a name="l00509"></a>00509
-<a name="l00511"></a>00511
-<a name="l00516"></a>00516 <span class="keywordtype">void</span> __Disable();
-<a name="l00517"></a>00517 };
-<a name="l00518"></a>00518
-<a name="l00519"></a>00519
-<a name="l00521"></a><a class="code" href="inotify-cxx_8h.html#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a">00521</a> <span class="keyword">typedef</span> std::map&lt;int32_t, InotifyWatch*&gt; <a class="code" href="inotify-cxx_8h.html#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a">IN_WATCH_MAP</a>;
-<a name="l00522"></a>00522
-<a name="l00524"></a><a class="code" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6">00524</a> <span class="keyword">typedef</span> std::map&lt;std::string, InotifyWatch*&gt; <a class="code" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6">IN_WP_MAP</a>;
-<a name="l00525"></a>00525
-<a name="l00526"></a>00526
-<a name="l00528"></a>00528
-<a name="l00534"></a><a class="code" href="classInotify.html">00534</a> <span class="keyword">class </span><a class="code" href="classInotify.html">Inotify</a>
-<a name="l00535"></a>00535 {
-<a name="l00536"></a>00536 <span class="keyword">public</span>:
-<a name="l00538"></a>00538
-<a name="l00544"></a>00544 <a class="code" href="classInotify.html#a6fe6e9cb3343665eb968fcd5170cfb9">Inotify</a>() <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00545"></a>00545
-<a name="l00547"></a>00547
-<a name="l00550"></a>00550 <a class="code" href="classInotify.html#f19dd5e491395673e4798eb9dbf5f682">~Inotify</a>();
-<a name="l00551"></a>00551
-<a name="l00553"></a>00553 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#86ae86c43ea1a72f562ca46393309635">Close</a>();
-<a name="l00554"></a>00554
-<a name="l00556"></a>00556
-<a name="l00561"></a>00561 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83">Add</a>(<a class="code" href="classInotifyWatch.html">InotifyWatch</a>* pWatch) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00562"></a>00562
-<a name="l00564"></a>00564
-<a name="l00569"></a><a class="code" href="classInotify.html#35dab56d3e10bf28b5e457871adddb58">00569</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83">Add</a>(<a class="code" href="classInotifyWatch.html">InotifyWatch</a>&amp; rWatch) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>)
-<a name="l00570"></a>00570 {
-<a name="l00571"></a>00571 <a class="code" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83">Add</a>(&amp;rWatch);
-<a name="l00572"></a>00572 }
-<a name="l00573"></a>00573
-<a name="l00575"></a>00575
-<a name="l00582"></a>00582 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#21c39bb8e5bbc1941b945c18f9005b84">Remove</a>(<a class="code" href="classInotifyWatch.html">InotifyWatch</a>* pWatch) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00583"></a>00583
-<a name="l00585"></a>00585
-<a name="l00592"></a><a class="code" href="classInotify.html#ac1a52b2ff6bfec07021a44e55d496a6">00592</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#21c39bb8e5bbc1941b945c18f9005b84">Remove</a>(<a class="code" href="classInotifyWatch.html">InotifyWatch</a>&amp; rWatch) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>)
-<a name="l00593"></a>00593 {
-<a name="l00594"></a>00594 <a class="code" href="classInotify.html#21c39bb8e5bbc1941b945c18f9005b84">Remove</a>(&amp;rWatch);
-<a name="l00595"></a>00595 }
-<a name="l00596"></a>00596
-<a name="l00598"></a>00598 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#bc1fd5830ca561efb69bcd2283981741">RemoveAll</a>();
-<a name="l00599"></a>00599
-<a name="l00601"></a>00601
-<a name="l00609"></a><a class="code" href="classInotify.html#b53b7935bda7425b002946d78bfe5863">00609</a> <span class="keyword">inline</span> size_t <a class="code" href="classInotify.html#b53b7935bda7425b002946d78bfe5863">GetWatchCount</a>()<span class="keyword"> const</span>
-<a name="l00610"></a>00610 <span class="keyword"> </span>{
-<a name="l00611"></a>00611 <a class="code" href="inotify-cxx_8h.html#963a97dc42487e86715b4e04639b0db8">IN_READ_BEGIN</a>
-<a name="l00612"></a>00612 size_t n = (size_t) m_paths.size();
-<a name="l00613"></a>00613 <a class="code" href="inotify-cxx_8h.html#0b82080ab6709175341b97e1f3c3955d">IN_READ_END</a>
-<a name="l00614"></a>00614 <span class="keywordflow">return</span> n;
-<a name="l00615"></a>00615 }
-<a name="l00616"></a>00616
-<a name="l00618"></a>00618
-<a name="l00623"></a><a class="code" href="classInotify.html#9bf5f7716649d5b5f468c2242fb5e099">00623</a> <span class="keyword">inline</span> size_t <a class="code" href="classInotify.html#9bf5f7716649d5b5f468c2242fb5e099">GetEnabledCount</a>()<span class="keyword"> const</span>
-<a name="l00624"></a>00624 <span class="keyword"> </span>{
-<a name="l00625"></a>00625 <a class="code" href="inotify-cxx_8h.html#963a97dc42487e86715b4e04639b0db8">IN_READ_BEGIN</a>
-<a name="l00626"></a>00626 size_t n = (size_t) m_watches.size();
-<a name="l00627"></a>00627 <a class="code" href="inotify-cxx_8h.html#0b82080ab6709175341b97e1f3c3955d">IN_READ_END</a>
-<a name="l00628"></a>00628 <span class="keywordflow">return</span> n;
-<a name="l00629"></a>00629 }
-<a name="l00630"></a>00630
-<a name="l00632"></a>00632
-<a name="l00643"></a>00643 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#139c27c6643bb199619f3eae9b32e53b">WaitForEvents</a>(<span class="keywordtype">bool</span> fNoIntr = <span class="keyword">false</span>) throw (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00644"></a>00644
-<a name="l00646"></a>00646
-<a name="l00652"></a><a class="code" href="classInotify.html#a3c533f956871f904949832ac8f5fbde">00652</a> inline size_t <a class="code" href="classInotify.html#a3c533f956871f904949832ac8f5fbde">GetEventCount</a>()
-<a name="l00653"></a>00653 {
-<a name="l00654"></a>00654 <a class="code" href="inotify-cxx_8h.html#963a97dc42487e86715b4e04639b0db8">IN_READ_BEGIN</a>
-<a name="l00655"></a>00655 size_t n = (size_t) m_events.size();
-<a name="l00656"></a>00656 <a class="code" href="inotify-cxx_8h.html#0b82080ab6709175341b97e1f3c3955d">IN_READ_END</a>
-<a name="l00657"></a>00657 <span class="keywordflow">return</span> n;
-<a name="l00658"></a>00658 }
-<a name="l00659"></a>00659
-<a name="l00661"></a>00661
-<a name="l00669"></a>00669 <span class="keywordtype">bool</span> <a class="code" href="classInotify.html#490a3f824c6d041d31ccaabe9bd92008">GetEvent</a>(<a class="code" href="classInotifyEvent.html">InotifyEvent</a>* pEvt) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00670"></a>00670
-<a name="l00672"></a>00672
-<a name="l00679"></a><a class="code" href="classInotify.html#b028c8fa988f6bbb2ef773db3ea3a2d3">00679</a> <span class="keywordtype">bool</span> <a class="code" href="classInotify.html#490a3f824c6d041d31ccaabe9bd92008">GetEvent</a>(<a class="code" href="classInotifyEvent.html">InotifyEvent</a>&amp; rEvt) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>)
-<a name="l00680"></a>00680 {
-<a name="l00681"></a>00681 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#490a3f824c6d041d31ccaabe9bd92008">GetEvent</a>(&amp;rEvt);
-<a name="l00682"></a>00682 }
-<a name="l00683"></a>00683
-<a name="l00685"></a>00685
-<a name="l00693"></a>00693 <span class="keywordtype">bool</span> <a class="code" href="classInotify.html#19cde43d082ff92bd02654610019300d">PeekEvent</a>(<a class="code" href="classInotifyEvent.html">InotifyEvent</a>* pEvt) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00694"></a>00694
-<a name="l00696"></a>00696
-<a name="l00703"></a><a class="code" href="classInotify.html#287dc0d238fa6edc3269441cb284f979">00703</a> <span class="keywordtype">bool</span> <a class="code" href="classInotify.html#19cde43d082ff92bd02654610019300d">PeekEvent</a>(<a class="code" href="classInotifyEvent.html">InotifyEvent</a>&amp; rEvt) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>)
-<a name="l00704"></a>00704 {
-<a name="l00705"></a>00705 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#19cde43d082ff92bd02654610019300d">PeekEvent</a>(&amp;rEvt);
-<a name="l00706"></a>00706 }
-<a name="l00707"></a>00707
-<a name="l00709"></a>00709
-<a name="l00715"></a>00715 <a class="code" href="classInotifyWatch.html">InotifyWatch</a>* <a class="code" href="classInotify.html#182d19b667c9e0899802b70a579eff40">FindWatch</a>(<span class="keywordtype">int</span> iDescriptor);
-<a name="l00716"></a>00716
-<a name="l00718"></a>00718
-<a name="l00728"></a>00728 <a class="code" href="classInotifyWatch.html">InotifyWatch</a>* <a class="code" href="classInotify.html#182d19b667c9e0899802b70a579eff40">FindWatch</a>(<span class="keyword">const</span> std::string&amp; rPath);
-<a name="l00729"></a>00729
-<a name="l00731"></a>00731
-<a name="l00739"></a><a class="code" href="classInotify.html#678271faf4799840ad71805163a24b13">00739</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classInotify.html#678271faf4799840ad71805163a24b13">GetDescriptor</a>()<span class="keyword"> const</span>
-<a name="l00740"></a>00740 <span class="keyword"> </span>{
-<a name="l00741"></a>00741 <span class="keywordflow">return</span> m_fd;
-<a name="l00742"></a>00742 }
-<a name="l00743"></a>00743
-<a name="l00745"></a>00745
-<a name="l00758"></a>00758 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b">SetNonBlock</a>(<span class="keywordtype">bool</span> fNonBlock) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00759"></a>00759
-<a name="l00761"></a>00761
-<a name="l00774"></a>00774 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#124dd5816205900af61034d47ae65255">SetCloseOnExec</a>(<span class="keywordtype">bool</span> fClOnEx) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00775"></a>00775
-<a name="l00777"></a>00777
-<a name="l00782"></a>00782 <span class="keyword">static</span> uint32_t <a class="code" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b">GetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a> cap) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00783"></a>00783
-<a name="l00785"></a>00785
-<a name="l00793"></a>00793 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#734538233ba2136164f76f4df6c3654e">SetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a> cap, uint32_t val) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00794"></a>00794
-<a name="l00796"></a>00796
-<a name="l00800"></a><a class="code" href="classInotify.html#d8e4a4a87d005c71c0b5ea9c6dd53c42">00800</a> <span class="keyword">inline</span> <span class="keyword">static</span> uint32_t <a class="code" href="classInotify.html#d8e4a4a87d005c71c0b5ea9c6dd53c42">GetMaxEvents</a>() throw (<a class="code" href="classInotifyException.html">InotifyException</a>)
-<a name="l00801"></a>00801 {
-<a name="l00802"></a>00802 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b">GetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d18e969c9c44523b38a13b0a207286dd1">IN_MAX_EVENTS</a>);
-<a name="l00803"></a>00803 }
-<a name="l00804"></a>00804
-<a name="l00806"></a>00806
-<a name="l00814"></a><a class="code" href="classInotify.html#66d90ebfa516d4bd1463749def2b58f9">00814</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#66d90ebfa516d4bd1463749def2b58f9">SetMaxEvents</a>(uint32_t val) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>)
-<a name="l00815"></a>00815 {
-<a name="l00816"></a>00816 <a class="code" href="classInotify.html#734538233ba2136164f76f4df6c3654e">SetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d18e969c9c44523b38a13b0a207286dd1">IN_MAX_EVENTS</a>, val);
-<a name="l00817"></a>00817 }
-<a name="l00818"></a>00818
-<a name="l00820"></a>00820
-<a name="l00827"></a><a class="code" href="classInotify.html#c18b7732f67832260fbbd47aebb8af51">00827</a> <span class="keyword">inline</span> <span class="keyword">static</span> uint32_t <a class="code" href="classInotify.html#c18b7732f67832260fbbd47aebb8af51">GetMaxInstances</a>() throw (<a class="code" href="classInotifyException.html">InotifyException</a>)
-<a name="l00828"></a>00828 {
-<a name="l00829"></a>00829 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b">GetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d43cc45296a9afe5cb68f568176608dd9">IN_MAX_INSTANCES</a>);
-<a name="l00830"></a>00830 }
-<a name="l00831"></a>00831
-<a name="l00833"></a>00833
-<a name="l00841"></a><a class="code" href="classInotify.html#620c891962fe5acd26485c64e9b28d19">00841</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#620c891962fe5acd26485c64e9b28d19">SetMaxInstances</a>(uint32_t val) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>)
-<a name="l00842"></a>00842 {
-<a name="l00843"></a>00843 <a class="code" href="classInotify.html#734538233ba2136164f76f4df6c3654e">SetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d43cc45296a9afe5cb68f568176608dd9">IN_MAX_INSTANCES</a>, val);
-<a name="l00844"></a>00844 }
-<a name="l00845"></a>00845
-<a name="l00847"></a>00847
-<a name="l00854"></a><a class="code" href="classInotify.html#86dae1b7a72c0d8fc2a632444a0f2f1f">00854</a> <span class="keyword">inline</span> <span class="keyword">static</span> uint32_t <a class="code" href="classInotify.html#86dae1b7a72c0d8fc2a632444a0f2f1f">GetMaxWatches</a>() throw (<a class="code" href="classInotifyException.html">InotifyException</a>)
-<a name="l00855"></a>00855 {
-<a name="l00856"></a>00856 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b">GetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429">IN_MAX_WATCHES</a>);
-<a name="l00857"></a>00857 }
-<a name="l00858"></a>00858
-<a name="l00860"></a>00860
-<a name="l00868"></a><a class="code" href="classInotify.html#5064380cdb4a726ab33f3fa18d15c77a">00868</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#5064380cdb4a726ab33f3fa18d15c77a">SetMaxWatches</a>(uint32_t val) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>)
-<a name="l00869"></a>00869 {
-<a name="l00870"></a>00870 <a class="code" href="classInotify.html#734538233ba2136164f76f4df6c3654e">SetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429">IN_MAX_WATCHES</a>, val);
-<a name="l00871"></a>00871 }
-<a name="l00872"></a>00872
-<a name="l00873"></a>00873 <span class="keyword">private</span>:
-<a name="l00874"></a>00874 <span class="keywordtype">int</span> m_fd;
-<a name="l00875"></a>00875 IN_WATCH_MAP m_watches;
-<a name="l00876"></a>00876 IN_WP_MAP m_paths;
-<a name="l00877"></a>00877 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> m_buf[<a class="code" href="inotify-cxx_8h.html#a84911f8e42d71161b60d4a28940abb4">INOTIFY_BUFLEN</a>];
-<a name="l00878"></a>00878 std::deque&lt;InotifyEvent&gt; m_events;
-<a name="l00879"></a>00879
-<a name="l00880"></a>00880 <a class="code" href="inotify-cxx_8h.html#904d25c0fd931e1bad4f9d5cd346a766">IN_LOCK_DECL</a>
-<a name="l00881"></a>00881
-<a name="l00882"></a><a class="code" href="classInotify.html#10880f490c33acd8bd24664fc7bce4ae">00882</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classInotifyWatch.html">InotifyWatch</a>;
-<a name="l00883"></a>00883
-<a name="l00884"></a>00884 <span class="keyword">static</span> std::string GetCapabilityPath(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a> cap) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html">InotifyException</a>);
-<a name="l00885"></a>00885 };
-<a name="l00886"></a>00886
-<a name="l00887"></a>00887
-<a name="l00888"></a>00888 <span class="preprocessor">#endif //_INOTIFYCXX_H_</span>
-<a name="l00889"></a>00889 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
-</body>
-</html>
diff --git a/shared/inotify/doc/html/inotify-cxx_8h.html b/shared/inotify/doc/html/inotify-cxx_8h.html
index 1d6f065e..e189937d 100644
--- a/shared/inotify/doc/html/inotify-cxx_8h.html
+++ b/shared/inotify/doc/html/inotify-cxx_8h.html
@@ -1,33 +1,53 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>inotify-cxx: inotify-cxx.h File Reference</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
-<!-- Generated by Doxygen 1.5.1 -->
-<div class="tabs">
- <ul>
- <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
- </ul></div>
-<h1>inotify-cxx.h File Reference</h1>inotify C++ interface header <a href="#_details">More...</a>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+ <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<h1>inotify-cxx.h File Reference</h1>inotify C++ interface header
+<a href="#_details">More...</a>
<p>
<code>#include &lt;stdint.h&gt;</code><br>
<code>#include &lt;string&gt;</code><br>
<code>#include &lt;deque&gt;</code><br>
<code>#include &lt;map&gt;</code><br>
-<code>#include &lt;sys/syscall.h&gt;</code><br>
<code>#include &lt;sys/inotify.h&gt;</code><br>
-<code>#include &lt;sys/inotify-syscalls.h&gt;</code><br>
<p>
-<a href="inotify-cxx_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<div class="dynheader">
+Include dependency graph for inotify-cxx.h:</div>
+<div class="dynsection">
+<p><center><img src="inotify-cxx_8h__incl.png" border="0" usemap="#inotify-cxx.h_map" alt=""></center>
+</div>
+
+<p>
+<div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dynsection">
+<p><center><img src="inotify-cxx_8h__dep__incl.png" border="0" usemap="#inotify-cxx.hdep_map" alt=""></center>
+<map name="inotify-cxx.hdep_map">
+<area shape="rect" href="inotify-cxx_8cpp.html" title="inotify C++ interface implementation" alt="" coords="5,80,109,107"></map>
+</div>
+
+<p>
+<a href="inotify-cxx_8h_source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyException.html">InotifyException</a></td></tr>
@@ -72,12 +92,12 @@
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#7e68c4884137939c5e3301f40c198dc7">IN_WRITE_END_NOTHROW</a></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; int32_t,<br>
- <a class="el" href="classInotifyWatch.html">InotifyWatch</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a">IN_WATCH_MAP</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; int32_t, <br class="typebreak">
+<a class="el" href="classInotifyWatch.html">InotifyWatch</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a">IN_WATCH_MAP</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mapping from watch descriptors to watch objects. <a href="#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; std::string,<br>
- <a class="el" href="classInotifyWatch.html">InotifyWatch</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6">IN_WP_MAP</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; std::string, <br class="typebreak">
+<a class="el" href="classInotifyWatch.html">InotifyWatch</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6">IN_WP_MAP</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mapping from paths to watch objects. <a href="#5dd7761ff5a6b7cc7271950aebb7ddf6"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
@@ -88,19 +108,20 @@
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">inotify capability/limit identifiers <a href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">More...</a><br></td></tr>
</table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
+<hr><h2>Detailed Description</h2>
inotify C++ interface header
<p>
inotify C++ interface<p>
-Copyright (C) 2006, 2007 Lukas Jelinek, &lt;<a href="mailto:lukas@aiken.cz">lukas@aiken.cz</a>&gt;<p>
+Copyright (C) 2006, 2007, 2009 Lukas Jelinek, &lt;<a href="mailto:lukas@aiken.cz">lukas@aiken.cz</a>&gt;<p>
This program is free software; you can redistribute it and/or modify it under the terms of one of the following licenses:<p>
<ul>
<li>1. X11-style license (see LICENSE-X11) </li>
<li>2. GNU Lesser General Public License, version 2.1 (see LICENSE-LGPL) </li>
<li>3. GNU General Public License, version 2 (see LICENSE-GPL)</li>
</ul>
-If you want to help with choosing the best license for you, please visit <a href="http://www.gnu.org/licenses/license-list.html.">http://www.gnu.org/licenses/license-list.html.</a> <hr><h2>Define Documentation</h2>
-<a class="anchor" name="fe6b93f7e09db7022f1f9dd102932e12"></a><!-- doxytag: member="inotify-cxx.h::IN_EXC_MSG" ref="fe6b93f7e09db7022f1f9dd102932e12" args="(msg)" -->
+If you want to help with choosing the best license for you, please visit <a href="http://www.gnu.org/licenses/license-list.html.">http://www.gnu.org/licenses/license-list.html.</a><p>
+Credits: Mike Frysinger (cleanup of includes) <hr><h2>Define Documentation</h2>
+<a class="anchor" name="fe6b93f7e09db7022f1f9dd102932e12"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_EXC_MSG" ref="fe6b93f7e09db7022f1f9dd102932e12" args="(msg)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -110,7 +131,7 @@ If you want to help with choosing the best license for you, please visit <a href
<td class="paramtype">msg&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
- <td width="100%">&nbsp;&nbsp;&nbsp;(std::string(__PRETTY_FUNCTION__) + &quot;: &quot; + msg)</td>
+ <td>&nbsp;&nbsp;&nbsp;(std::string(__PRETTY_FUNCTION__) + &quot;: &quot; + msg)</td>
</tr>
</table>
</div>
@@ -122,7 +143,7 @@ Helper macro for creating exception messages.
It prepends the message by the function name.
</div>
</div><p>
-<a class="anchor" name="904d25c0fd931e1bad4f9d5cd346a766"></a><!-- doxytag: member="inotify-cxx.h::IN_LOCK_DECL" ref="904d25c0fd931e1bad4f9d5cd346a766" args="" -->
+<a class="anchor" name="904d25c0fd931e1bad4f9d5cd346a766"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_LOCK_DECL" ref="904d25c0fd931e1bad4f9d5cd346a766" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -142,7 +163,7 @@ You need not to define INOTIFY_THREAD_SAFE in that cases where the application i
Locking may fail (it is very rare but not impossible). In this case an exception is thrown. But if unlocking fails in case of an error it does nothing (this failure is ignored).
</div>
</div><p>
-<a class="anchor" name="08422ec66fb587c1684afbaa575a53dd"></a><!-- doxytag: member="inotify-cxx.h::IN_LOCK_DONE" ref="08422ec66fb587c1684afbaa575a53dd" args="" -->
+<a class="anchor" name="08422ec66fb587c1684afbaa575a53dd"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_LOCK_DONE" ref="08422ec66fb587c1684afbaa575a53dd" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -157,7 +178,7 @@ Locking may fail (it is very rare but not impossible). In this case an exception
</div>
</div><p>
-<a class="anchor" name="981aa546075fba39715fd2f63a41f575"></a><!-- doxytag: member="inotify-cxx.h::IN_LOCK_INIT" ref="981aa546075fba39715fd2f63a41f575" args="" -->
+<a class="anchor" name="981aa546075fba39715fd2f63a41f575"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_LOCK_INIT" ref="981aa546075fba39715fd2f63a41f575" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -172,7 +193,7 @@ Locking may fail (it is very rare but not impossible). In this case an exception
</div>
</div><p>
-<a class="anchor" name="963a97dc42487e86715b4e04639b0db8"></a><!-- doxytag: member="inotify-cxx.h::IN_READ_BEGIN" ref="963a97dc42487e86715b4e04639b0db8" args="" -->
+<a class="anchor" name="963a97dc42487e86715b4e04639b0db8"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_READ_BEGIN" ref="963a97dc42487e86715b4e04639b0db8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -187,7 +208,7 @@ Locking may fail (it is very rare but not impossible). In this case an exception
</div>
</div><p>
-<a class="anchor" name="0b82080ab6709175341b97e1f3c3955d"></a><!-- doxytag: member="inotify-cxx.h::IN_READ_END" ref="0b82080ab6709175341b97e1f3c3955d" args="" -->
+<a class="anchor" name="0b82080ab6709175341b97e1f3c3955d"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_READ_END" ref="0b82080ab6709175341b97e1f3c3955d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -202,7 +223,7 @@ Locking may fail (it is very rare but not impossible). In this case an exception
</div>
</div><p>
-<a class="anchor" name="5c6a5be1898ef17662795cc4b420c851"></a><!-- doxytag: member="inotify-cxx.h::IN_READ_END_NOTHROW" ref="5c6a5be1898ef17662795cc4b420c851" args="" -->
+<a class="anchor" name="5c6a5be1898ef17662795cc4b420c851"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_READ_END_NOTHROW" ref="5c6a5be1898ef17662795cc4b420c851" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -217,7 +238,7 @@ Locking may fail (it is very rare but not impossible). In this case an exception
</div>
</div><p>
-<a class="anchor" name="c3a6d87ace9403f7ac58f931bbcd9599"></a><!-- doxytag: member="inotify-cxx.h::IN_WRITE_BEGIN" ref="c3a6d87ace9403f7ac58f931bbcd9599" args="" -->
+<a class="anchor" name="c3a6d87ace9403f7ac58f931bbcd9599"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_WRITE_BEGIN" ref="c3a6d87ace9403f7ac58f931bbcd9599" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -232,7 +253,7 @@ Locking may fail (it is very rare but not impossible). In this case an exception
</div>
</div><p>
-<a class="anchor" name="f8aeac51b3b4ef56f1791c5c1a2e9cf5"></a><!-- doxytag: member="inotify-cxx.h::IN_WRITE_END" ref="f8aeac51b3b4ef56f1791c5c1a2e9cf5" args="" -->
+<a class="anchor" name="f8aeac51b3b4ef56f1791c5c1a2e9cf5"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_WRITE_END" ref="f8aeac51b3b4ef56f1791c5c1a2e9cf5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -247,7 +268,7 @@ Locking may fail (it is very rare but not impossible). In this case an exception
</div>
</div><p>
-<a class="anchor" name="7e68c4884137939c5e3301f40c198dc7"></a><!-- doxytag: member="inotify-cxx.h::IN_WRITE_END_NOTHROW" ref="7e68c4884137939c5e3301f40c198dc7" args="" -->
+<a class="anchor" name="7e68c4884137939c5e3301f40c198dc7"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_WRITE_END_NOTHROW" ref="7e68c4884137939c5e3301f40c198dc7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -262,7 +283,7 @@ Locking may fail (it is very rare but not impossible). In this case an exception
</div>
</div><p>
-<a class="anchor" name="a84911f8e42d71161b60d4a28940abb4"></a><!-- doxytag: member="inotify-cxx.h::INOTIFY_BUFLEN" ref="a84911f8e42d71161b60d4a28940abb4" args="" -->
+<a class="anchor" name="a84911f8e42d71161b60d4a28940abb4"></a><!-- doxytag: member="inotify&#45;cxx.h::INOTIFY_BUFLEN" ref="a84911f8e42d71161b60d4a28940abb4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -279,7 +300,7 @@ Event buffer length.
</div>
</div><p>
-<a class="anchor" name="f64b4cc985ba26f31a9cb242153a5014"></a><!-- doxytag: member="inotify-cxx.h::INOTIFY_EVENT_SIZE" ref="f64b4cc985ba26f31a9cb242153a5014" args="" -->
+<a class="anchor" name="f64b4cc985ba26f31a9cb242153a5014"></a><!-- doxytag: member="inotify&#45;cxx.h::INOTIFY_EVENT_SIZE" ref="f64b4cc985ba26f31a9cb242153a5014" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -297,7 +318,7 @@ Event struct size.
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
-<a class="anchor" name="e6b5ebcb4e0d6a9f5ca8da26bc00cc2a"></a><!-- doxytag: member="inotify-cxx.h::IN_WATCH_MAP" ref="e6b5ebcb4e0d6a9f5ca8da26bc00cc2a" args="" -->
+<a class="anchor" name="e6b5ebcb4e0d6a9f5ca8da26bc00cc2a"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_WATCH_MAP" ref="e6b5ebcb4e0d6a9f5ca8da26bc00cc2a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -314,7 +335,7 @@ Mapping from watch descriptors to watch objects.
</div>
</div><p>
-<a class="anchor" name="5dd7761ff5a6b7cc7271950aebb7ddf6"></a><!-- doxytag: member="inotify-cxx.h::IN_WP_MAP" ref="5dd7761ff5a6b7cc7271950aebb7ddf6" args="" -->
+<a class="anchor" name="5dd7761ff5a6b7cc7271950aebb7ddf6"></a><!-- doxytag: member="inotify&#45;cxx.h::IN_WP_MAP" ref="5dd7761ff5a6b7cc7271950aebb7ddf6" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -332,7 +353,7 @@ Mapping from paths to watch objects.
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
-<a class="anchor" name="bccd39d32dd83905178cf42edaae5c4d"></a><!-- doxytag: member="inotify-cxx.h::InotifyCapability_t" ref="bccd39d32dd83905178cf42edaae5c4d" args="" -->
+<a class="anchor" name="bccd39d32dd83905178cf42edaae5c4d"></a><!-- doxytag: member="inotify&#45;cxx.h::InotifyCapability_t" ref="bccd39d32dd83905178cf42edaae5c4d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -359,8 +380,8 @@ max. watches per file descriptor </td></tr>
</div>
</div><p>
-<hr size="1"><address style="align: right;"><small>Generated on Wed Apr 18 18:26:40 2007 for inotify-cxx by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
+</div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
</body>
</html>
diff --git a/shared/inotify/doc/html/inotify-cxx_8h__dep__incl.map b/shared/inotify/doc/html/inotify-cxx_8h__dep__incl.map
new file mode 100644
index 00000000..4ed3629d
--- /dev/null
+++ b/shared/inotify/doc/html/inotify-cxx_8h__dep__incl.map
@@ -0,0 +1 @@
+<area shape="rect" href="$inotify-cxx_8cpp.html" title="inotify C++ interface implementation" alt="" coords="5,80,109,107">
diff --git a/shared/inotify/doc/html/inotify-cxx_8h__dep__incl.md5 b/shared/inotify/doc/html/inotify-cxx_8h__dep__incl.md5
new file mode 100644
index 00000000..c00ff796
--- /dev/null
+++ b/shared/inotify/doc/html/inotify-cxx_8h__dep__incl.md5
@@ -0,0 +1 @@
+4b9719ddb81e282b353a01d00e7fc79f \ No newline at end of file
diff --git a/shared/inotify/doc/html/inotify-cxx_8h__dep__incl.png b/shared/inotify/doc/html/inotify-cxx_8h__dep__incl.png
new file mode 100644
index 00000000..85d373cf
--- /dev/null
+++ b/shared/inotify/doc/html/inotify-cxx_8h__dep__incl.png
Binary files differ
diff --git a/shared/inotify/doc/html/inotify-cxx_8h__incl.map b/shared/inotify/doc/html/inotify-cxx_8h__incl.map
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/shared/inotify/doc/html/inotify-cxx_8h__incl.map
diff --git a/shared/inotify/doc/html/inotify-cxx_8h__incl.md5 b/shared/inotify/doc/html/inotify-cxx_8h__incl.md5
new file mode 100644
index 00000000..c9425ce6
--- /dev/null
+++ b/shared/inotify/doc/html/inotify-cxx_8h__incl.md5
@@ -0,0 +1 @@
+98ce5d48dec51633b940ca16d76c825f \ No newline at end of file
diff --git a/shared/inotify/doc/html/inotify-cxx_8h__incl.png b/shared/inotify/doc/html/inotify-cxx_8h__incl.png
new file mode 100644
index 00000000..ae9be329
--- /dev/null
+++ b/shared/inotify/doc/html/inotify-cxx_8h__incl.png
Binary files differ
diff --git a/shared/inotify/doc/html/inotify-cxx_8h_source.html b/shared/inotify/doc/html/inotify-cxx_8h_source.html
new file mode 100644
index 00000000..99b4b37a
--- /dev/null
+++ b/shared/inotify/doc/html/inotify-cxx_8h_source.html
@@ -0,0 +1,503 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>inotify-cxx: inotify-cxx.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css">
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.9 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+ <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+ </ul>
+ </div>
+<h1>inotify-cxx.h</h1><a href="inotify-cxx_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00003"></a>00003
+<a name="l00029"></a>00029 <span class="preprocessor">#ifndef _INOTIFYCXX_H_</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define _INOTIFYCXX_H_</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
+<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;deque&gt;</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;map&gt;</span>
+<a name="l00036"></a>00036
+<a name="l00037"></a>00037 <span class="comment">// Please ensure that the following header file takes the right place</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;sys/inotify.h&gt;</span>
+<a name="l00039"></a>00039
+<a name="l00040"></a>00040
+<a name="l00042"></a><a class="code" href="inotify-cxx_8h.html#f64b4cc985ba26f31a9cb242153a5014">00042</a> <span class="preprocessor">#define INOTIFY_EVENT_SIZE (sizeof(struct inotify_event))</span>
+<a name="l00043"></a>00043 <span class="preprocessor"></span>
+<a name="l00045"></a><a class="code" href="inotify-cxx_8h.html#a84911f8e42d71161b60d4a28940abb4">00045</a> <span class="preprocessor">#define INOTIFY_BUFLEN (1024 * (INOTIFY_EVENT_SIZE + 16))</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span>
+<a name="l00048"></a>00048
+<a name="l00051"></a><a class="code" href="inotify-cxx_8h.html#fe6b93f7e09db7022f1f9dd102932e12">00051</a> <span class="preprocessor">#define IN_EXC_MSG(msg) (std::string(__PRETTY_FUNCTION__) + ": " + msg)</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span>
+<a name="l00054"></a><a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">00054</a> <span class="keyword">typedef</span> <span class="keyword">enum</span>
+<a name="l00055"></a>00055 {
+<a name="l00056"></a><a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d18e969c9c44523b38a13b0a207286dd1">00056</a> <a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d18e969c9c44523b38a13b0a207286dd1" title="max. events in the kernel queue">IN_MAX_EVENTS</a> = 0,
+<a name="l00057"></a><a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d43cc45296a9afe5cb68f568176608dd9">00057</a> <a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d43cc45296a9afe5cb68f568176608dd9" title="max. inotify file descriptors per process">IN_MAX_INSTANCES</a> = 1,
+<a name="l00058"></a><a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429">00058</a> <a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429" title="max. watches per file descriptor">IN_MAX_WATCHES</a> = 2
+<a name="l00059"></a>00059 } <a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d" title="inotify capability/limit identifiers">InotifyCapability_t</a>;
+<a name="l00060"></a>00060
+<a name="l00062"></a>00062
+<a name="l00080"></a>00080 <span class="preprocessor">#ifdef INOTIFY_THREAD_SAFE</span>
+<a name="l00081"></a>00081 <span class="preprocessor"></span>
+<a name="l00082"></a>00082 <span class="preprocessor">#include &lt;pthread.h&gt;</span>
+<a name="l00083"></a>00083
+<a name="l00084"></a>00084 <span class="preprocessor">#define IN_LOCK_DECL mutable pthread_rwlock_t __m_lock;</span>
+<a name="l00085"></a>00085 <span class="preprocessor"></span>
+<a name="l00086"></a>00086 <span class="preprocessor">#define IN_LOCK_INIT \</span>
+<a name="l00087"></a>00087 <span class="preprocessor"> { \</span>
+<a name="l00088"></a>00088 <span class="preprocessor"> pthread_rwlockattr_t attr; \</span>
+<a name="l00089"></a>00089 <span class="preprocessor"> int res = 0; \</span>
+<a name="l00090"></a>00090 <span class="preprocessor"> if ((res = pthread_rwlockattr_init(&amp;attr)) != 0) \</span>
+<a name="l00091"></a>00091 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("cannot initialize lock attributes"), res, this); \</span>
+<a name="l00092"></a>00092 <span class="preprocessor"> if ((res = pthread_rwlockattr_setkind_np(&amp;attr, PTHREAD_RWLOCK_PREFER_WRITER_NP)) != 0) \</span>
+<a name="l00093"></a>00093 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("cannot set lock kind"), res, this); \</span>
+<a name="l00094"></a>00094 <span class="preprocessor"> if ((res = pthread_rwlock_init(&amp;__m_lock, &amp;attr)) != 0) \</span>
+<a name="l00095"></a>00095 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("cannot initialize lock"), res, this); \</span>
+<a name="l00096"></a>00096 <span class="preprocessor"> pthread_rwlockattr_destroy(&amp;attr); \</span>
+<a name="l00097"></a>00097 <span class="preprocessor"> }</span>
+<a name="l00098"></a>00098 <span class="preprocessor"></span>
+<a name="l00099"></a>00099 <span class="preprocessor">#define IN_LOCK_DONE pthread_rwlock_destroy(&amp;__m_lock);</span>
+<a name="l00100"></a>00100 <span class="preprocessor"></span>
+<a name="l00101"></a>00101 <span class="preprocessor">#define IN_READ_BEGIN \</span>
+<a name="l00102"></a>00102 <span class="preprocessor"> { \</span>
+<a name="l00103"></a>00103 <span class="preprocessor"> int res = pthread_rwlock_rdlock(&amp;__m_lock); \</span>
+<a name="l00104"></a>00104 <span class="preprocessor"> if (res != 0) \</span>
+<a name="l00105"></a>00105 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("locking for reading failed"), res, (void*) this); \</span>
+<a name="l00106"></a>00106 <span class="preprocessor"> }</span>
+<a name="l00107"></a>00107 <span class="preprocessor"></span>
+<a name="l00108"></a>00108 <span class="preprocessor">#define IN_READ_END \</span>
+<a name="l00109"></a>00109 <span class="preprocessor"> { \</span>
+<a name="l00110"></a>00110 <span class="preprocessor"> int res = pthread_rwlock_unlock(&amp;__m_lock); \</span>
+<a name="l00111"></a>00111 <span class="preprocessor"> if (res != 0) \</span>
+<a name="l00112"></a>00112 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("unlocking failed"), res, (void*) this); \</span>
+<a name="l00113"></a>00113 <span class="preprocessor"> }</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span>
+<a name="l00115"></a>00115 <span class="preprocessor">#define IN_READ_END_NOTHROW pthread_rwlock_unlock(&amp;__m_lock);</span>
+<a name="l00116"></a>00116 <span class="preprocessor"></span>
+<a name="l00117"></a>00117 <span class="preprocessor">#define IN_WRITE_BEGIN \</span>
+<a name="l00118"></a>00118 <span class="preprocessor"> { \</span>
+<a name="l00119"></a>00119 <span class="preprocessor"> int res = pthread_rwlock_wrlock(&amp;__m_lock); \</span>
+<a name="l00120"></a>00120 <span class="preprocessor"> if (res != 0) \</span>
+<a name="l00121"></a>00121 <span class="preprocessor"> throw InotifyException(IN_EXC_MSG("locking for writing failed"), res, (void*) this); \</span>
+<a name="l00122"></a>00122 <span class="preprocessor"> }</span>
+<a name="l00123"></a>00123 <span class="preprocessor"></span>
+<a name="l00124"></a>00124 <span class="preprocessor">#define IN_WRITE_END IN_READ_END</span>
+<a name="l00125"></a>00125 <span class="preprocessor"></span><span class="preprocessor">#define IN_WRITE_END_NOTHROW IN_READ_END_NOTHROW</span>
+<a name="l00126"></a>00126 <span class="preprocessor"></span>
+<a name="l00127"></a>00127 <span class="preprocessor">#else // INOTIFY_THREAD_SAFE</span>
+<a name="l00128"></a>00128 <span class="preprocessor"></span>
+<a name="l00129"></a><a class="code" href="inotify-cxx_8h.html#904d25c0fd931e1bad4f9d5cd346a766">00129</a> <span class="preprocessor">#define IN_LOCK_DECL</span>
+<a name="l00130"></a><a class="code" href="inotify-cxx_8h.html#981aa546075fba39715fd2f63a41f575">00130</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_LOCK_INIT</span>
+<a name="l00131"></a><a class="code" href="inotify-cxx_8h.html#08422ec66fb587c1684afbaa575a53dd">00131</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_LOCK_DONE</span>
+<a name="l00132"></a><a class="code" href="inotify-cxx_8h.html#963a97dc42487e86715b4e04639b0db8">00132</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_READ_BEGIN</span>
+<a name="l00133"></a><a class="code" href="inotify-cxx_8h.html#0b82080ab6709175341b97e1f3c3955d">00133</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_READ_END</span>
+<a name="l00134"></a><a class="code" href="inotify-cxx_8h.html#5c6a5be1898ef17662795cc4b420c851">00134</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_READ_END_NOTHROW</span>
+<a name="l00135"></a><a class="code" href="inotify-cxx_8h.html#c3a6d87ace9403f7ac58f931bbcd9599">00135</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_WRITE_BEGIN</span>
+<a name="l00136"></a><a class="code" href="inotify-cxx_8h.html#f8aeac51b3b4ef56f1791c5c1a2e9cf5">00136</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_WRITE_END</span>
+<a name="l00137"></a><a class="code" href="inotify-cxx_8h.html#7e68c4884137939c5e3301f40c198dc7">00137</a> <span class="preprocessor"></span><span class="preprocessor">#define IN_WRITE_END_NOTHROW</span>
+<a name="l00138"></a>00138 <span class="preprocessor"></span>
+<a name="l00139"></a>00139 <span class="preprocessor">#endif // INOTIFY_THREAD_SAFE</span>
+<a name="l00140"></a>00140 <span class="preprocessor"></span>
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142
+<a name="l00143"></a>00143
+<a name="l00144"></a>00144 <span class="comment">// forward declaration</span>
+<a name="l00145"></a>00145 <span class="keyword">class </span><a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>;
+<a name="l00146"></a>00146 <span class="keyword">class </span><a class="code" href="classInotify.html" title="inotify class">Inotify</a>;
+<a name="l00147"></a>00147
+<a name="l00148"></a>00148
+<a name="l00150"></a>00150
+<a name="l00158"></a><a class="code" href="classInotifyException.html">00158</a> <span class="keyword">class </span><a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>
+<a name="l00159"></a>00159 {
+<a name="l00160"></a>00160 <span class="keyword">public</span>:
+<a name="l00162"></a>00162
+<a name="l00167"></a><a class="code" href="classInotifyException.html#900dc29e5cfb3ece6c1651d04773b2bb">00167</a> <a class="code" href="classInotifyException.html#900dc29e5cfb3ece6c1651d04773b2bb" title="Constructor.">InotifyException</a>(<span class="keyword">const</span> std::string&amp; rMsg = <span class="stringliteral">""</span>, <span class="keywordtype">int</span> iErr = 0, <span class="keywordtype">void</span>* pSrc = NULL)
+<a name="l00168"></a>00168 : <a class="code" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c" title="message">m_msg</a>(rMsg),
+<a name="l00169"></a>00169 <a class="code" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854" title="error number">m_err</a>(iErr)
+<a name="l00170"></a>00170 {
+<a name="l00171"></a>00171 <a class="code" href="classInotifyException.html#dd106c2255890025561245cf91fe1427" title="source">m_pSrc</a> = pSrc;
+<a name="l00172"></a>00172 }
+<a name="l00173"></a>00173
+<a name="l00175"></a>00175
+<a name="l00178"></a><a class="code" href="classInotifyException.html#6364ea375697356805d47cff957dd757">00178</a> <span class="keyword">inline</span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classInotifyException.html#6364ea375697356805d47cff957dd757" title="Returns the exception message.">GetMessage</a>()<span class="keyword"> const</span>
+<a name="l00179"></a>00179 <span class="keyword"> </span>{
+<a name="l00180"></a>00180 <span class="keywordflow">return</span> <a class="code" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c" title="message">m_msg</a>;
+<a name="l00181"></a>00181 }
+<a name="l00182"></a>00182
+<a name="l00184"></a>00184
+<a name="l00189"></a><a class="code" href="classInotifyException.html#60d885f998a6cb97d06111e6aded155d">00189</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classInotifyException.html#60d885f998a6cb97d06111e6aded155d" title="Returns the exception error number.">GetErrorNumber</a>()<span class="keyword"> const</span>
+<a name="l00190"></a>00190 <span class="keyword"> </span>{
+<a name="l00191"></a>00191 <span class="keywordflow">return</span> <a class="code" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854" title="error number">m_err</a>;
+<a name="l00192"></a>00192 }
+<a name="l00193"></a>00193
+<a name="l00195"></a>00195
+<a name="l00198"></a><a class="code" href="classInotifyException.html#619e8b963faebdefb283d79b5ae5c408">00198</a> <span class="keyword">inline</span> <span class="keywordtype">void</span>* <a class="code" href="classInotifyException.html#619e8b963faebdefb283d79b5ae5c408" title="Returns the exception source.">GetSource</a>()<span class="keyword"> const</span>
+<a name="l00199"></a>00199 <span class="keyword"> </span>{
+<a name="l00200"></a>00200 <span class="keywordflow">return</span> <a class="code" href="classInotifyException.html#dd106c2255890025561245cf91fe1427" title="source">m_pSrc</a>;
+<a name="l00201"></a>00201 }
+<a name="l00202"></a>00202
+<a name="l00203"></a>00203 <span class="keyword">protected</span>:
+<a name="l00204"></a><a class="code" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c">00204</a> std::string <a class="code" href="classInotifyException.html#c113719bd6f4352e12876b2322f1c92c" title="message">m_msg</a>;
+<a name="l00205"></a><a class="code" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854">00205</a> <span class="keywordtype">int</span> <a class="code" href="classInotifyException.html#aa8a163c661ce70e34b3e3e7ad700854" title="error number">m_err</a>;
+<a name="l00206"></a><a class="code" href="classInotifyException.html#dd106c2255890025561245cf91fe1427">00206</a> <span class="keyword">mutable</span> <span class="keywordtype">void</span>* <a class="code" href="classInotifyException.html#dd106c2255890025561245cf91fe1427" title="source">m_pSrc</a>;
+<a name="l00207"></a>00207 };
+<a name="l00208"></a>00208
+<a name="l00209"></a>00209
+<a name="l00211"></a>00211
+<a name="l00219"></a><a class="code" href="classInotifyEvent.html">00219</a> <span class="keyword">class </span><a class="code" href="classInotifyEvent.html" title="inotify event class">InotifyEvent</a>
+<a name="l00220"></a>00220 {
+<a name="l00221"></a>00221 <span class="keyword">public</span>:
+<a name="l00223"></a>00223
+<a name="l00226"></a><a class="code" href="classInotifyEvent.html#f416dbbd4e6ddd3c0eea6cb540f0b046">00226</a> <a class="code" href="classInotifyEvent.html#f416dbbd4e6ddd3c0eea6cb540f0b046" title="Constructor.">InotifyEvent</a>()
+<a name="l00227"></a>00227 : <a class="code" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa" title="mask">m_uMask</a>(0),
+<a name="l00228"></a>00228 <a class="code" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af" title="cookie">m_uCookie</a>(0)
+<a name="l00229"></a>00229 {
+<a name="l00230"></a>00230 <a class="code" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac" title="source watch">m_pWatch</a> = NULL;
+<a name="l00231"></a>00231 }
+<a name="l00232"></a>00232
+<a name="l00234"></a>00234
+<a name="l00241"></a><a class="code" href="classInotifyEvent.html#6d7f3fc0f51580da4a3ec2348609df64">00241</a> <a class="code" href="classInotifyEvent.html#f416dbbd4e6ddd3c0eea6cb540f0b046" title="Constructor.">InotifyEvent</a>(<span class="keyword">const</span> <span class="keyword">struct</span> inotify_event* pEvt, <a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>* pWatch)
+<a name="l00242"></a>00242 : <a class="code" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa" title="mask">m_uMask</a>(0),
+<a name="l00243"></a>00243 <a class="code" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af" title="cookie">m_uCookie</a>(0)
+<a name="l00244"></a>00244 {
+<a name="l00245"></a>00245 <span class="keywordflow">if</span> (pEvt != NULL) {
+<a name="l00246"></a>00246 <a class="code" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa" title="mask">m_uMask</a> = (uint32_t) pEvt-&gt;mask;
+<a name="l00247"></a>00247 <a class="code" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af" title="cookie">m_uCookie</a> = (uint32_t) pEvt-&gt;cookie;
+<a name="l00248"></a>00248 <span class="keywordflow">if</span> (pEvt-&gt;name != NULL) {
+<a name="l00249"></a>00249 <a class="code" href="classInotifyEvent.html#6c507a3466515aedc266bdc267079604" title="name">m_name</a> = pEvt-&gt;len &gt; 0
+<a name="l00250"></a>00250 ? pEvt-&gt;name
+<a name="l00251"></a>00251 : <span class="stringliteral">""</span>;
+<a name="l00252"></a>00252 }
+<a name="l00253"></a>00253 <a class="code" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac" title="source watch">m_pWatch</a> = pWatch;
+<a name="l00254"></a>00254 }
+<a name="l00255"></a>00255 <span class="keywordflow">else</span> {
+<a name="l00256"></a>00256 <a class="code" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac" title="source watch">m_pWatch</a> = NULL;
+<a name="l00257"></a>00257 }
+<a name="l00258"></a>00258 }
+<a name="l00259"></a>00259
+<a name="l00261"></a><a class="code" href="classInotifyEvent.html#a48030da1d3a1b1741ca791c9e129888">00261</a> <a class="code" href="classInotifyEvent.html#a48030da1d3a1b1741ca791c9e129888" title="Destructor.">~InotifyEvent</a>() {}
+<a name="l00262"></a>00262
+<a name="l00264"></a>00264
+<a name="l00269"></a>00269 int32_t <a class="code" href="classInotifyEvent.html#463aacc1f660fbc1c39108feb2601341" title="Returns the event watch descriptor.">GetDescriptor</a>() <span class="keyword">const</span>;
+<a name="l00270"></a>00270
+<a name="l00272"></a>00272
+<a name="l00277"></a><a class="code" href="classInotifyEvent.html#c7160544f6f4f24611df57a4422ac47f">00277</a> <span class="keyword">inline</span> uint32_t <a class="code" href="classInotifyEvent.html#c7160544f6f4f24611df57a4422ac47f" title="Returns the event mask.">GetMask</a>()<span class="keyword"> const</span>
+<a name="l00278"></a>00278 <span class="keyword"> </span>{
+<a name="l00279"></a>00279 <span class="keywordflow">return</span> <a class="code" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa" title="mask">m_uMask</a>;
+<a name="l00280"></a>00280 }
+<a name="l00281"></a>00281
+<a name="l00283"></a>00283
+<a name="l00288"></a><a class="code" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb">00288</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb" title="Checks a value for the event type.">IsType</a>(uint32_t uValue, uint32_t uType)
+<a name="l00289"></a>00289 {
+<a name="l00290"></a>00290 <span class="keywordflow">return</span> ((uValue &amp; uType) != 0) &amp;&amp; ((~uValue &amp; uType) == 0);
+<a name="l00291"></a>00291 }
+<a name="l00292"></a>00292
+<a name="l00294"></a>00294
+<a name="l00298"></a><a class="code" href="classInotifyEvent.html#477ae71116ec393434a1f62a7170a156">00298</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb" title="Checks a value for the event type.">IsType</a>(uint32_t uType)<span class="keyword"> const</span>
+<a name="l00299"></a>00299 <span class="keyword"> </span>{
+<a name="l00300"></a>00300 <span class="keywordflow">return</span> <a class="code" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb" title="Checks a value for the event type.">IsType</a>(<a class="code" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa" title="mask">m_uMask</a>, uType);
+<a name="l00301"></a>00301 }
+<a name="l00302"></a>00302
+<a name="l00304"></a>00304
+<a name="l00307"></a><a class="code" href="classInotifyEvent.html#7e65e49f7d0f11c71442e31d688e4b17">00307</a> <span class="keyword">inline</span> uint32_t <a class="code" href="classInotifyEvent.html#7e65e49f7d0f11c71442e31d688e4b17" title="Returns the event cookie.">GetCookie</a>()<span class="keyword"> const</span>
+<a name="l00308"></a>00308 <span class="keyword"> </span>{
+<a name="l00309"></a>00309 <span class="keywordflow">return</span> <a class="code" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af" title="cookie">m_uCookie</a>;
+<a name="l00310"></a>00310 }
+<a name="l00311"></a>00311
+<a name="l00313"></a>00313
+<a name="l00316"></a><a class="code" href="classInotifyEvent.html#30c8c2e1e490b8968ab9cb3364fe579a">00316</a> <span class="keyword">inline</span> uint32_t <a class="code" href="classInotifyEvent.html#30c8c2e1e490b8968ab9cb3364fe579a" title="Returns the event name length.">GetLength</a>()<span class="keyword"> const</span>
+<a name="l00317"></a>00317 <span class="keyword"> </span>{
+<a name="l00318"></a>00318 <span class="keywordflow">return</span> (uint32_t) <a class="code" href="classInotifyEvent.html#6c507a3466515aedc266bdc267079604" title="name">m_name</a>.length();
+<a name="l00319"></a>00319 }
+<a name="l00320"></a>00320
+<a name="l00322"></a>00322
+<a name="l00325"></a><a class="code" href="classInotifyEvent.html#5ab91d587bdc7ab3c18c6cdff73f3097">00325</a> <span class="keyword">inline</span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classInotifyEvent.html#5ab91d587bdc7ab3c18c6cdff73f3097" title="Returns the event name.">GetName</a>()<span class="keyword"> const</span>
+<a name="l00326"></a>00326 <span class="keyword"> </span>{
+<a name="l00327"></a>00327 <span class="keywordflow">return</span> <a class="code" href="classInotifyEvent.html#6c507a3466515aedc266bdc267079604" title="name">m_name</a>;
+<a name="l00328"></a>00328 }
+<a name="l00329"></a>00329
+<a name="l00331"></a>00331
+<a name="l00334"></a><a class="code" href="classInotifyEvent.html#3aea2437ba8553be703d91b45247a68f">00334</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classInotifyEvent.html#5ab91d587bdc7ab3c18c6cdff73f3097" title="Returns the event name.">GetName</a>(std::string&amp; rName)<span class="keyword"> const</span>
+<a name="l00335"></a>00335 <span class="keyword"> </span>{
+<a name="l00336"></a>00336 rName = <a class="code" href="classInotifyEvent.html#5ab91d587bdc7ab3c18c6cdff73f3097" title="Returns the event name.">GetName</a>();
+<a name="l00337"></a>00337 }
+<a name="l00338"></a>00338
+<a name="l00340"></a>00340
+<a name="l00343"></a><a class="code" href="classInotifyEvent.html#979cd46f53ed674331a5a6d47d1cde92">00343</a> <span class="keyword">inline</span> <a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>* <a class="code" href="classInotifyEvent.html#979cd46f53ed674331a5a6d47d1cde92" title="Returns the source watch.">GetWatch</a>()
+<a name="l00344"></a>00344 {
+<a name="l00345"></a>00345 <span class="keywordflow">return</span> <a class="code" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac" title="source watch">m_pWatch</a>;
+<a name="l00346"></a>00346 }
+<a name="l00347"></a>00347
+<a name="l00349"></a>00349
+<a name="l00353"></a>00353 <span class="keyword">static</span> uint32_t <a class="code" href="classInotifyEvent.html#eced3a88a6dea190c5df19c2a6599010" title="Finds the appropriate mask for a name.">GetMaskByName</a>(<span class="keyword">const</span> std::string&amp; rName);
+<a name="l00354"></a>00354
+<a name="l00356"></a>00356
+<a name="l00360"></a>00360 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classInotifyEvent.html#c08a0a26ea33dbe94aaf1ac830c103a5" title="Fills the string with all types contained in an event mask value.">DumpTypes</a>(uint32_t uValue, std::string&amp; rStr);
+<a name="l00361"></a>00361
+<a name="l00363"></a>00363
+<a name="l00366"></a>00366 <span class="keywordtype">void</span> <a class="code" href="classInotifyEvent.html#c08a0a26ea33dbe94aaf1ac830c103a5" title="Fills the string with all types contained in an event mask value.">DumpTypes</a>(std::string&amp; rStr) <span class="keyword">const</span>;
+<a name="l00367"></a>00367
+<a name="l00368"></a>00368 <span class="keyword">private</span>:
+<a name="l00369"></a><a class="code" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa">00369</a> uint32_t <a class="code" href="classInotifyEvent.html#739a943357af0c3fafd58466803e04fa" title="mask">m_uMask</a>;
+<a name="l00370"></a><a class="code" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af">00370</a> uint32_t <a class="code" href="classInotifyEvent.html#bf417d466fb0173d337cc66539ee55af" title="cookie">m_uCookie</a>;
+<a name="l00371"></a><a class="code" href="classInotifyEvent.html#6c507a3466515aedc266bdc267079604">00371</a> std::string <a class="code" href="classInotifyEvent.html#6c507a3466515aedc266bdc267079604" title="name">m_name</a>;
+<a name="l00372"></a><a class="code" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac">00372</a> <a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>* <a class="code" href="classInotifyEvent.html#2d151cdcc547ee4ce49cfd44328d87ac" title="source watch">m_pWatch</a>;
+<a name="l00373"></a>00373 };
+<a name="l00374"></a>00374
+<a name="l00375"></a>00375
+<a name="l00376"></a>00376
+<a name="l00378"></a>00378
+<a name="l00384"></a><a class="code" href="classInotifyWatch.html">00384</a> <span class="keyword">class </span><a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>
+<a name="l00385"></a>00385 {
+<a name="l00386"></a>00386 <span class="keyword">public</span>:
+<a name="l00388"></a>00388
+<a name="l00396"></a><a class="code" href="classInotifyWatch.html#c9c02f1dbd143eebd711eba03ac366e9">00396</a> <a class="code" href="classInotifyWatch.html#c9c02f1dbd143eebd711eba03ac366e9" title="Constructor.">InotifyWatch</a>(<span class="keyword">const</span> std::string&amp; rPath, int32_t uMask, <span class="keywordtype">bool</span> fEnabled = <span class="keyword">true</span>)
+<a name="l00397"></a>00397 : <a class="code" href="classInotifyWatch.html#a63ba30ffdb8b9db27970bb1099e4db5" title="watched file path">m_path</a>(rPath),
+<a name="l00398"></a>00398 <a class="code" href="classInotifyWatch.html#f725ea61e3252adae6153ecb80de23a8" title="event mask">m_uMask</a>(uMask),
+<a name="l00399"></a>00399 <a class="code" href="classInotifyWatch.html#90a78898dc850b238e713e0db284fb0a" title="watch descriptor">m_wd</a>((int32_t) -1),
+<a name="l00400"></a>00400 <a class="code" href="classInotifyWatch.html#b0c23c89cc2996bdf6f41b8ef1f1ed18" title="events enabled yes/no">m_fEnabled</a>(fEnabled)
+<a name="l00401"></a>00401 {
+<a name="l00402"></a>00402 <a class="code" href="inotify-cxx_8h.html#981aa546075fba39715fd2f63a41f575">IN_LOCK_INIT</a>
+<a name="l00403"></a>00403 }
+<a name="l00404"></a>00404
+<a name="l00406"></a><a class="code" href="classInotifyWatch.html#871c16b01aa8841b36246e5b629ecaef">00406</a> <a class="code" href="classInotifyWatch.html#871c16b01aa8841b36246e5b629ecaef" title="Destructor.">~InotifyWatch</a>()
+<a name="l00407"></a>00407 {
+<a name="l00408"></a>00408 <a class="code" href="inotify-cxx_8h.html#08422ec66fb587c1684afbaa575a53dd">IN_LOCK_DONE</a>
+<a name="l00409"></a>00409 }
+<a name="l00410"></a>00410
+<a name="l00412"></a>00412
+<a name="l00415"></a><a class="code" href="classInotifyWatch.html#855f982421402dd63d064dde328f2a59">00415</a> <span class="keyword">inline</span> int32_t <a class="code" href="classInotifyWatch.html#855f982421402dd63d064dde328f2a59" title="Returns the watch descriptor.">GetDescriptor</a>()<span class="keyword"> const</span>
+<a name="l00416"></a>00416 <span class="keyword"> </span>{
+<a name="l00417"></a>00417 <span class="keywordflow">return</span> <a class="code" href="classInotifyWatch.html#90a78898dc850b238e713e0db284fb0a" title="watch descriptor">m_wd</a>;
+<a name="l00418"></a>00418 }
+<a name="l00419"></a>00419
+<a name="l00421"></a>00421
+<a name="l00424"></a><a class="code" href="classInotifyWatch.html#2e659c699e7d43bd0a218fe4905784d2">00424</a> <span class="keyword">inline</span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classInotifyWatch.html#2e659c699e7d43bd0a218fe4905784d2" title="Returns the watched file path.">GetPath</a>()<span class="keyword"> const</span>
+<a name="l00425"></a>00425 <span class="keyword"> </span>{
+<a name="l00426"></a>00426 <span class="keywordflow">return</span> <a class="code" href="classInotifyWatch.html#a63ba30ffdb8b9db27970bb1099e4db5" title="watched file path">m_path</a>;
+<a name="l00427"></a>00427 }
+<a name="l00428"></a>00428
+<a name="l00430"></a>00430
+<a name="l00433"></a><a class="code" href="classInotifyWatch.html#f759f9baca6f4abbbaae57e076486009">00433</a> <span class="keyword">inline</span> uint32_t <a class="code" href="classInotifyWatch.html#f759f9baca6f4abbbaae57e076486009" title="Returns the watch event mask.">GetMask</a>()<span class="keyword"> const</span>
+<a name="l00434"></a>00434 <span class="keyword"> </span>{
+<a name="l00435"></a>00435 <span class="keywordflow">return</span> (uint32_t) <a class="code" href="classInotifyWatch.html#f725ea61e3252adae6153ecb80de23a8" title="event mask">m_uMask</a>;
+<a name="l00436"></a>00436 }
+<a name="l00437"></a>00437
+<a name="l00439"></a>00439
+<a name="l00448"></a>00448 <span class="keywordtype">void</span> <a class="code" href="classInotifyWatch.html#3ad7fbc55c21b3fcd08c2d1d388e14b6" title="Sets the watch event mask.">SetMask</a>(uint32_t uMask) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00449"></a>00449
+<a name="l00451"></a>00451
+<a name="l00454"></a><a class="code" href="classInotifyWatch.html#cbf0042d06841f9503405b104e4c35d0">00454</a> <span class="keyword">inline</span> <a class="code" href="classInotify.html" title="inotify class">Inotify</a>* <a class="code" href="classInotifyWatch.html#cbf0042d06841f9503405b104e4c35d0" title="Returns the appropriate inotify class instance.">GetInotify</a>()
+<a name="l00455"></a>00455 {
+<a name="l00456"></a>00456 <span class="keywordflow">return</span> <a class="code" href="classInotifyWatch.html#ea695aa11f6105184df1ef265be3f1b9" title="inotify object">m_pInotify</a>;
+<a name="l00457"></a>00457 }
+<a name="l00458"></a>00458
+<a name="l00460"></a>00460
+<a name="l00471"></a>00471 <span class="keywordtype">void</span> <a class="code" href="classInotifyWatch.html#a71aff8650fadff32a3c655ca50945f1" title="Enables/disables the watch.">SetEnabled</a>(<span class="keywordtype">bool</span> fEnabled) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00472"></a>00472
+<a name="l00474"></a>00474
+<a name="l00477"></a><a class="code" href="classInotifyWatch.html#5ab551a912e5acff6a9c74baaf9ea324">00477</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classInotifyWatch.html#5ab551a912e5acff6a9c74baaf9ea324" title="Checks whether the watch is enabled.">IsEnabled</a>()<span class="keyword"> const</span>
+<a name="l00478"></a>00478 <span class="keyword"> </span>{
+<a name="l00479"></a>00479 <span class="keywordflow">return</span> <a class="code" href="classInotifyWatch.html#b0c23c89cc2996bdf6f41b8ef1f1ed18" title="events enabled yes/no">m_fEnabled</a>;
+<a name="l00480"></a>00480 }
+<a name="l00481"></a>00481
+<a name="l00483"></a>00483
+<a name="l00492"></a><a class="code" href="classInotifyWatch.html#222c911ef0e8d6f61570489ed6042e55">00492</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classInotifyWatch.html#222c911ef0e8d6f61570489ed6042e55" title="Checks whether the watch is recursive.">IsRecursive</a>()<span class="keyword"> const</span>
+<a name="l00493"></a>00493 <span class="keyword"> </span>{
+<a name="l00494"></a>00494 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00495"></a>00495 }
+<a name="l00496"></a>00496
+<a name="l00497"></a>00497 <span class="keyword">private</span>:
+<a name="l00498"></a><a class="code" href="classInotifyWatch.html#94bfb861dc18ca5d16abfcff90db8c86">00498</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classInotify.html" title="inotify class">Inotify</a>;
+<a name="l00499"></a>00499
+<a name="l00500"></a><a class="code" href="classInotifyWatch.html#a63ba30ffdb8b9db27970bb1099e4db5">00500</a> std::string <a class="code" href="classInotifyWatch.html#a63ba30ffdb8b9db27970bb1099e4db5" title="watched file path">m_path</a>;
+<a name="l00501"></a><a class="code" href="classInotifyWatch.html#f725ea61e3252adae6153ecb80de23a8">00501</a> uint32_t <a class="code" href="classInotifyWatch.html#f725ea61e3252adae6153ecb80de23a8" title="event mask">m_uMask</a>;
+<a name="l00502"></a><a class="code" href="classInotifyWatch.html#90a78898dc850b238e713e0db284fb0a">00502</a> int32_t <a class="code" href="classInotifyWatch.html#90a78898dc850b238e713e0db284fb0a" title="watch descriptor">m_wd</a>;
+<a name="l00503"></a><a class="code" href="classInotifyWatch.html#ea695aa11f6105184df1ef265be3f1b9">00503</a> <a class="code" href="classInotify.html" title="inotify class">Inotify</a>* <a class="code" href="classInotifyWatch.html#ea695aa11f6105184df1ef265be3f1b9" title="inotify object">m_pInotify</a>;
+<a name="l00504"></a><a class="code" href="classInotifyWatch.html#b0c23c89cc2996bdf6f41b8ef1f1ed18">00504</a> <span class="keywordtype">bool</span> <a class="code" href="classInotifyWatch.html#b0c23c89cc2996bdf6f41b8ef1f1ed18" title="events enabled yes/no">m_fEnabled</a>;
+<a name="l00505"></a>00505
+<a name="l00506"></a>00506 <a class="code" href="inotify-cxx_8h.html#904d25c0fd931e1bad4f9d5cd346a766" title="inotify-cxx thread safety">IN_LOCK_DECL</a>
+<a name="l00507"></a>00507
+<a name="l00509"></a>00509
+<a name="l00514"></a>00514 <span class="keywordtype">void</span> <a class="code" href="classInotifyWatch.html#804cdc1e9579a075a60c239b202559f4" title="Disables the watch (due to removing by the kernel).">__Disable</a>();
+<a name="l00515"></a>00515 };
+<a name="l00516"></a>00516
+<a name="l00517"></a>00517
+<a name="l00519"></a><a class="code" href="inotify-cxx_8h.html#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a">00519</a> <span class="keyword">typedef</span> std::map&lt;int32_t, InotifyWatch*&gt; <a class="code" href="inotify-cxx_8h.html#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a" title="Mapping from watch descriptors to watch objects.">IN_WATCH_MAP</a>;
+<a name="l00520"></a>00520
+<a name="l00522"></a><a class="code" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6">00522</a> <span class="keyword">typedef</span> std::map&lt;std::string, InotifyWatch*&gt; <a class="code" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6" title="Mapping from paths to watch objects.">IN_WP_MAP</a>;
+<a name="l00523"></a>00523
+<a name="l00524"></a>00524
+<a name="l00526"></a>00526
+<a name="l00532"></a><a class="code" href="classInotify.html">00532</a> <span class="keyword">class </span><a class="code" href="classInotify.html" title="inotify class">Inotify</a>
+<a name="l00533"></a>00533 {
+<a name="l00534"></a>00534 <span class="keyword">public</span>:
+<a name="l00536"></a>00536
+<a name="l00542"></a>00542 <a class="code" href="classInotify.html#a6fe6e9cb3343665eb968fcd5170cfb9" title="Constructor.">Inotify</a>() <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00543"></a>00543
+<a name="l00545"></a>00545
+<a name="l00548"></a>00548 <a class="code" href="classInotify.html#f19dd5e491395673e4798eb9dbf5f682" title="Destructor.">~Inotify</a>();
+<a name="l00549"></a>00549
+<a name="l00551"></a>00551 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#86ae86c43ea1a72f562ca46393309635" title="Removes all watches and closes the inotify device.">Close</a>();
+<a name="l00552"></a>00552
+<a name="l00554"></a>00554
+<a name="l00559"></a>00559 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83" title="Adds a new watch.">Add</a>(<a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>* pWatch) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00560"></a>00560
+<a name="l00562"></a>00562
+<a name="l00567"></a><a class="code" href="classInotify.html#35dab56d3e10bf28b5e457871adddb58">00567</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83" title="Adds a new watch.">Add</a>(<a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>&amp; rWatch) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>)
+<a name="l00568"></a>00568 {
+<a name="l00569"></a>00569 <a class="code" href="classInotify.html#2ef771ebaf982d76ebe19b3f5bc9cd83" title="Adds a new watch.">Add</a>(&amp;rWatch);
+<a name="l00570"></a>00570 }
+<a name="l00571"></a>00571
+<a name="l00573"></a>00573
+<a name="l00580"></a>00580 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#21c39bb8e5bbc1941b945c18f9005b84" title="Removes a watch.">Remove</a>(<a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>* pWatch) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00581"></a>00581
+<a name="l00583"></a>00583
+<a name="l00590"></a><a class="code" href="classInotify.html#ac1a52b2ff6bfec07021a44e55d496a6">00590</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#21c39bb8e5bbc1941b945c18f9005b84" title="Removes a watch.">Remove</a>(<a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>&amp; rWatch) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>)
+<a name="l00591"></a>00591 {
+<a name="l00592"></a>00592 <a class="code" href="classInotify.html#21c39bb8e5bbc1941b945c18f9005b84" title="Removes a watch.">Remove</a>(&amp;rWatch);
+<a name="l00593"></a>00593 }
+<a name="l00594"></a>00594
+<a name="l00596"></a>00596 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#bc1fd5830ca561efb69bcd2283981741" title="Removes all watches.">RemoveAll</a>();
+<a name="l00597"></a>00597
+<a name="l00599"></a>00599
+<a name="l00607"></a><a class="code" href="classInotify.html#716ae90a00dd4895709ea9b8f7959075">00607</a> <span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="classInotify.html#716ae90a00dd4895709ea9b8f7959075" title="Returns the count of watches.">GetWatchCount</a>()<span class="keyword"> const</span>
+<a name="l00608"></a>00608 <span class="keyword"> </span>{
+<a name="l00609"></a>00609 <a class="code" href="inotify-cxx_8h.html#963a97dc42487e86715b4e04639b0db8">IN_READ_BEGIN</a>
+<a name="l00610"></a>00610 <span class="keywordtype">size_t</span> n = (size_t) <a class="code" href="classInotify.html#62f275db6375a366023b2e46f73e3ecc" title="watches (by paths)">m_paths</a>.size();
+<a name="l00611"></a>00611 <a class="code" href="inotify-cxx_8h.html#0b82080ab6709175341b97e1f3c3955d">IN_READ_END</a>
+<a name="l00612"></a>00612 <span class="keywordflow">return</span> n;
+<a name="l00613"></a>00613 }
+<a name="l00614"></a>00614
+<a name="l00616"></a>00616
+<a name="l00621"></a><a class="code" href="classInotify.html#6f432affb46f85f7bc19661d5bc77063">00621</a> <span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="classInotify.html#6f432affb46f85f7bc19661d5bc77063" title="Returns the count of enabled watches.">GetEnabledCount</a>()<span class="keyword"> const</span>
+<a name="l00622"></a>00622 <span class="keyword"> </span>{
+<a name="l00623"></a>00623 <a class="code" href="inotify-cxx_8h.html#963a97dc42487e86715b4e04639b0db8">IN_READ_BEGIN</a>
+<a name="l00624"></a>00624 <span class="keywordtype">size_t</span> n = (size_t) <a class="code" href="classInotify.html#4d07f3a4412028d687936d2479d9a976" title="watches (by descriptors)">m_watches</a>.size();
+<a name="l00625"></a>00625 <a class="code" href="inotify-cxx_8h.html#0b82080ab6709175341b97e1f3c3955d">IN_READ_END</a>
+<a name="l00626"></a>00626 <span class="keywordflow">return</span> n;
+<a name="l00627"></a>00627 }
+<a name="l00628"></a>00628
+<a name="l00630"></a>00630
+<a name="l00641"></a>00641 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#139c27c6643bb199619f3eae9b32e53b" title="Waits for inotify events.">WaitForEvents</a>(<span class="keywordtype">bool</span> fNoIntr = <span class="keyword">false</span>) throw (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00642"></a>00642
+<a name="l00644"></a>00644
+<a name="l00650"></a><a class="code" href="classInotify.html#a3c533f956871f904949832ac8f5fbde">00650</a> inline <span class="keywordtype">size_t</span> <a class="code" href="classInotify.html#a3c533f956871f904949832ac8f5fbde" title="Returns the count of received and queued events.">GetEventCount</a>()
+<a name="l00651"></a>00651 {
+<a name="l00652"></a>00652 <a class="code" href="inotify-cxx_8h.html#963a97dc42487e86715b4e04639b0db8">IN_READ_BEGIN</a>
+<a name="l00653"></a>00653 <span class="keywordtype">size_t</span> n = (size_t) <a class="code" href="classInotify.html#0c1d6c969292dbb7c8c1283a3d8f55e0" title="event queue">m_events</a>.size();
+<a name="l00654"></a>00654 <a class="code" href="inotify-cxx_8h.html#0b82080ab6709175341b97e1f3c3955d">IN_READ_END</a>
+<a name="l00655"></a>00655 <span class="keywordflow">return</span> n;
+<a name="l00656"></a>00656 }
+<a name="l00657"></a>00657
+<a name="l00659"></a>00659
+<a name="l00667"></a>00667 <span class="keywordtype">bool</span> <a class="code" href="classInotify.html#490a3f824c6d041d31ccaabe9bd92008" title="Extracts a queued inotify event.">GetEvent</a>(<a class="code" href="classInotifyEvent.html" title="inotify event class">InotifyEvent</a>* pEvt) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00668"></a>00668
+<a name="l00670"></a>00670
+<a name="l00677"></a><a class="code" href="classInotify.html#b028c8fa988f6bbb2ef773db3ea3a2d3">00677</a> <span class="keywordtype">bool</span> <a class="code" href="classInotify.html#490a3f824c6d041d31ccaabe9bd92008" title="Extracts a queued inotify event.">GetEvent</a>(<a class="code" href="classInotifyEvent.html" title="inotify event class">InotifyEvent</a>&amp; rEvt) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>)
+<a name="l00678"></a>00678 {
+<a name="l00679"></a>00679 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#490a3f824c6d041d31ccaabe9bd92008" title="Extracts a queued inotify event.">GetEvent</a>(&amp;rEvt);
+<a name="l00680"></a>00680 }
+<a name="l00681"></a>00681
+<a name="l00683"></a>00683
+<a name="l00691"></a>00691 <span class="keywordtype">bool</span> <a class="code" href="classInotify.html#19cde43d082ff92bd02654610019300d" title="Extracts a queued inotify event (without removing).">PeekEvent</a>(<a class="code" href="classInotifyEvent.html" title="inotify event class">InotifyEvent</a>* pEvt) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00692"></a>00692
+<a name="l00694"></a>00694
+<a name="l00701"></a><a class="code" href="classInotify.html#287dc0d238fa6edc3269441cb284f979">00701</a> <span class="keywordtype">bool</span> <a class="code" href="classInotify.html#19cde43d082ff92bd02654610019300d" title="Extracts a queued inotify event (without removing).">PeekEvent</a>(<a class="code" href="classInotifyEvent.html" title="inotify event class">InotifyEvent</a>&amp; rEvt) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>)
+<a name="l00702"></a>00702 {
+<a name="l00703"></a>00703 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#19cde43d082ff92bd02654610019300d" title="Extracts a queued inotify event (without removing).">PeekEvent</a>(&amp;rEvt);
+<a name="l00704"></a>00704 }
+<a name="l00705"></a>00705
+<a name="l00707"></a>00707
+<a name="l00713"></a>00713 <a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>* <a class="code" href="classInotify.html#182d19b667c9e0899802b70a579eff40" title="Searches for a watch by a watch descriptor.">FindWatch</a>(<span class="keywordtype">int</span> iDescriptor);
+<a name="l00714"></a>00714
+<a name="l00716"></a>00716
+<a name="l00726"></a>00726 <a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>* <a class="code" href="classInotify.html#182d19b667c9e0899802b70a579eff40" title="Searches for a watch by a watch descriptor.">FindWatch</a>(<span class="keyword">const</span> std::string&amp; rPath);
+<a name="l00727"></a>00727
+<a name="l00729"></a>00729
+<a name="l00737"></a><a class="code" href="classInotify.html#abab7015203bf36d0256e75d4f4861f9">00737</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classInotify.html#abab7015203bf36d0256e75d4f4861f9" title="Returns the file descriptor.">GetDescriptor</a>()<span class="keyword"> const</span>
+<a name="l00738"></a>00738 <span class="keyword"> </span>{
+<a name="l00739"></a>00739 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#95d6d0ecefff77bd3ee50f1586a4552b" title="file descriptor">m_fd</a>;
+<a name="l00740"></a>00740 }
+<a name="l00741"></a>00741
+<a name="l00743"></a>00743
+<a name="l00756"></a>00756 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b" title="Enables/disables non-blocking mode.">SetNonBlock</a>(<span class="keywordtype">bool</span> fNonBlock) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00757"></a>00757
+<a name="l00759"></a>00759
+<a name="l00772"></a>00772 <span class="keywordtype">void</span> <a class="code" href="classInotify.html#124dd5816205900af61034d47ae65255" title="Enables/disables closing on exec.">SetCloseOnExec</a>(<span class="keywordtype">bool</span> fClOnEx) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00773"></a>00773
+<a name="l00775"></a>00775
+<a name="l00780"></a>00780 <span class="keyword">static</span> uint32_t <a class="code" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b" title="Acquires a particular inotify capability/limit.">GetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d" title="inotify capability/limit identifiers">InotifyCapability_t</a> cap) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00781"></a>00781
+<a name="l00783"></a>00783
+<a name="l00791"></a>00791 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#734538233ba2136164f76f4df6c3654e" title="Modifies a particular inotify capability/limit.">SetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d" title="inotify capability/limit identifiers">InotifyCapability_t</a> cap, uint32_t val) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00792"></a>00792
+<a name="l00794"></a>00794
+<a name="l00798"></a><a class="code" href="classInotify.html#d8e4a4a87d005c71c0b5ea9c6dd53c42">00798</a> <span class="keyword">inline</span> <span class="keyword">static</span> uint32_t <a class="code" href="classInotify.html#d8e4a4a87d005c71c0b5ea9c6dd53c42" title="Returns the maximum number of events in the kernel queue.">GetMaxEvents</a>() throw (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>)
+<a name="l00799"></a>00799 {
+<a name="l00800"></a>00800 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b" title="Acquires a particular inotify capability/limit.">GetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d18e969c9c44523b38a13b0a207286dd1" title="max. events in the kernel queue">IN_MAX_EVENTS</a>);
+<a name="l00801"></a>00801 }
+<a name="l00802"></a>00802
+<a name="l00804"></a>00804
+<a name="l00812"></a><a class="code" href="classInotify.html#66d90ebfa516d4bd1463749def2b58f9">00812</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#66d90ebfa516d4bd1463749def2b58f9" title="Sets the maximum number of events in the kernel queue.">SetMaxEvents</a>(uint32_t val) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>)
+<a name="l00813"></a>00813 {
+<a name="l00814"></a>00814 <a class="code" href="classInotify.html#734538233ba2136164f76f4df6c3654e" title="Modifies a particular inotify capability/limit.">SetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d18e969c9c44523b38a13b0a207286dd1" title="max. events in the kernel queue">IN_MAX_EVENTS</a>, val);
+<a name="l00815"></a>00815 }
+<a name="l00816"></a>00816
+<a name="l00818"></a>00818
+<a name="l00825"></a><a class="code" href="classInotify.html#c18b7732f67832260fbbd47aebb8af51">00825</a> <span class="keyword">inline</span> <span class="keyword">static</span> uint32_t <a class="code" href="classInotify.html#c18b7732f67832260fbbd47aebb8af51" title="Returns the maximum number of inotify instances per process.">GetMaxInstances</a>() throw (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>)
+<a name="l00826"></a>00826 {
+<a name="l00827"></a>00827 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b" title="Acquires a particular inotify capability/limit.">GetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d43cc45296a9afe5cb68f568176608dd9" title="max. inotify file descriptors per process">IN_MAX_INSTANCES</a>);
+<a name="l00828"></a>00828 }
+<a name="l00829"></a>00829
+<a name="l00831"></a>00831
+<a name="l00839"></a><a class="code" href="classInotify.html#620c891962fe5acd26485c64e9b28d19">00839</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#620c891962fe5acd26485c64e9b28d19" title="Sets the maximum number of inotify instances per process.">SetMaxInstances</a>(uint32_t val) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>)
+<a name="l00840"></a>00840 {
+<a name="l00841"></a>00841 <a class="code" href="classInotify.html#734538233ba2136164f76f4df6c3654e" title="Modifies a particular inotify capability/limit.">SetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d43cc45296a9afe5cb68f568176608dd9" title="max. inotify file descriptors per process">IN_MAX_INSTANCES</a>, val);
+<a name="l00842"></a>00842 }
+<a name="l00843"></a>00843
+<a name="l00845"></a>00845
+<a name="l00852"></a><a class="code" href="classInotify.html#86dae1b7a72c0d8fc2a632444a0f2f1f">00852</a> <span class="keyword">inline</span> <span class="keyword">static</span> uint32_t <a class="code" href="classInotify.html#86dae1b7a72c0d8fc2a632444a0f2f1f" title="Returns the maximum number of inotify watches per instance.">GetMaxWatches</a>() throw (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>)
+<a name="l00853"></a>00853 {
+<a name="l00854"></a>00854 <span class="keywordflow">return</span> <a class="code" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b" title="Acquires a particular inotify capability/limit.">GetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429" title="max. watches per file descriptor">IN_MAX_WATCHES</a>);
+<a name="l00855"></a>00855 }
+<a name="l00856"></a>00856
+<a name="l00858"></a>00858
+<a name="l00866"></a><a class="code" href="classInotify.html#5064380cdb4a726ab33f3fa18d15c77a">00866</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classInotify.html#5064380cdb4a726ab33f3fa18d15c77a" title="Sets the maximum number of inotify watches per instance.">SetMaxWatches</a>(uint32_t val) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>)
+<a name="l00867"></a>00867 {
+<a name="l00868"></a>00868 <a class="code" href="classInotify.html#734538233ba2136164f76f4df6c3654e" title="Modifies a particular inotify capability/limit.">SetCapability</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429" title="max. watches per file descriptor">IN_MAX_WATCHES</a>, val);
+<a name="l00869"></a>00869 }
+<a name="l00870"></a>00870
+<a name="l00871"></a>00871 <span class="keyword">private</span>:
+<a name="l00872"></a><a class="code" href="classInotify.html#95d6d0ecefff77bd3ee50f1586a4552b">00872</a> <span class="keywordtype">int</span> <a class="code" href="classInotify.html#95d6d0ecefff77bd3ee50f1586a4552b" title="file descriptor">m_fd</a>;
+<a name="l00873"></a><a class="code" href="classInotify.html#4d07f3a4412028d687936d2479d9a976">00873</a> IN_WATCH_MAP <a class="code" href="classInotify.html#4d07f3a4412028d687936d2479d9a976" title="watches (by descriptors)">m_watches</a>;
+<a name="l00874"></a><a class="code" href="classInotify.html#62f275db6375a366023b2e46f73e3ecc">00874</a> IN_WP_MAP <a class="code" href="classInotify.html#62f275db6375a366023b2e46f73e3ecc" title="watches (by paths)">m_paths</a>;
+<a name="l00875"></a><a class="code" href="classInotify.html#eee7847efd93b681fddac56860fc7958">00875</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="classInotify.html#eee7847efd93b681fddac56860fc7958" title="buffer for events">m_buf</a>[<a class="code" href="inotify-cxx_8h.html#a84911f8e42d71161b60d4a28940abb4" title="Event buffer length.">INOTIFY_BUFLEN</a>];
+<a name="l00876"></a><a class="code" href="classInotify.html#0c1d6c969292dbb7c8c1283a3d8f55e0">00876</a> std::deque&lt;InotifyEvent&gt; <a class="code" href="classInotify.html#0c1d6c969292dbb7c8c1283a3d8f55e0" title="event queue">m_events</a>;
+<a name="l00877"></a>00877
+<a name="l00878"></a>00878 <a class="code" href="inotify-cxx_8h.html#904d25c0fd931e1bad4f9d5cd346a766" title="inotify-cxx thread safety">IN_LOCK_DECL</a>
+<a name="l00879"></a>00879
+<a name="l00880"></a><a class="code" href="classInotify.html#10880f490c33acd8bd24664fc7bce4ae">00880</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classInotifyWatch.html" title="inotify watch class">InotifyWatch</a>;
+<a name="l00881"></a>00881
+<a name="l00882"></a>00882 <span class="keyword">static</span> std::string <a class="code" href="classInotify.html#0233ddfe40844d729505fdfd709d22cc">GetCapabilityPath</a>(<a class="code" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d" title="inotify capability/limit identifiers">InotifyCapability_t</a> cap) <span class="keywordflow">throw</span> (<a class="code" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a>);
+<a name="l00883"></a>00883 };
+<a name="l00884"></a>00884
+<a name="l00885"></a>00885
+<a name="l00886"></a>00886 <span class="preprocessor">#endif //_INOTIFYCXX_H_</span>
+<a name="l00887"></a>00887 <span class="preprocessor"></span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small><a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> </small></address>
+</body>
+</html>
diff --git a/shared/inotify/doc/html/tabs.css b/shared/inotify/doc/html/tabs.css
index a61552a6..ab02c624 100644
--- a/shared/inotify/doc/html/tabs.css
+++ b/shared/inotify/doc/html/tabs.css
@@ -32,7 +32,7 @@ DIV.tabs A
float : left;
background : url("tab_r.gif") no-repeat right top;
border-bottom : 1px solid #84B0C7;
- font-size : x-small;
+ font-size : 80%;
font-weight : bold;
text-decoration : none;
}
@@ -66,7 +66,7 @@ DIV.tabs INPUT
DIV.tabs TD
{
- font-size : x-small;
+ font-size : 80%;
font-weight : bold;
text-decoration : none;
}
@@ -82,21 +82,24 @@ DIV.tabs A:hover SPAN
background-position: 0% -150px;
}
-DIV.tabs LI#current A
+DIV.tabs LI.current A
{
background-position: 100% -150px;
border-width : 0px;
}
-DIV.tabs LI#current SPAN
+DIV.tabs LI.current SPAN
{
background-position: 0% -150px;
padding-bottom : 6px;
}
-DIV.nav
+DIV.navpath
{
background : none;
border : none;
border-bottom : 1px solid #84B0C7;
+ text-align : center;
+ margin : 2px;
+ padding : 2px;
}
diff --git a/shared/inotify/doc/man/man3/Inotify.3 b/shared/inotify/doc/man/man3/Inotify.3
index 23188784..84579325 100644
--- a/shared/inotify/doc/man/man3/Inotify.3
+++ b/shared/inotify/doc/man/man3/Inotify.3
@@ -1,4 +1,4 @@
-.TH "Inotify" 3 "18 Apr 2007" "Version 0.7.2" "inotify-cxx" \" -*- nroff -*-
+.TH "Inotify" 3 "9 Dec 2009" "Version 0.7.3" "inotify-cxx" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -46,11 +46,11 @@ Inotify \- inotify class
.br
.RI "\fIRemoves all watches. \fP"
.ti -1c
-.RI "size_t \fBGetWatchCount\fP () const"
+.RI "size_t \fBGetWatchCount\fP () const "
.br
.RI "\fIReturns the count of watches. \fP"
.ti -1c
-.RI "size_t \fBGetEnabledCount\fP () const"
+.RI "size_t \fBGetEnabledCount\fP () const "
.br
.RI "\fIReturns the count of enabled watches. \fP"
.ti -1c
@@ -86,7 +86,7 @@ Inotify \- inotify class
.br
.RI "\fISearches for a watch by a filesystem path. \fP"
.ti -1c
-.RI "int \fBGetDescriptor\fP () const"
+.RI "int \fBGetDescriptor\fP () const "
.br
.RI "\fIReturns the file descriptor. \fP"
.ti -1c
@@ -134,6 +134,37 @@ Inotify \- inotify class
.br
.RI "\fISets the maximum number of inotify watches per instance. \fP"
.in -1c
+.SS "Static Private Member Functions"
+
+.in +1c
+.ti -1c
+.RI "static std::string \fBGetCapabilityPath\fP (\fBInotifyCapability_t\fP cap) throw (InotifyException)"
+.br
+.in -1c
+.SS "Private Attributes"
+
+.in +1c
+.ti -1c
+.RI "int \fBm_fd\fP"
+.br
+.RI "\fIfile descriptor \fP"
+.ti -1c
+.RI "\fBIN_WATCH_MAP\fP \fBm_watches\fP"
+.br
+.RI "\fIwatches (by descriptors) \fP"
+.ti -1c
+.RI "\fBIN_WP_MAP\fP \fBm_paths\fP"
+.br
+.RI "\fIwatches (by paths) \fP"
+.ti -1c
+.RI "unsigned char \fBm_buf\fP [INOTIFY_BUFLEN]"
+.br
+.RI "\fIbuffer for events \fP"
+.ti -1c
+.RI "std::deque< \fBInotifyEvent\fP > \fBm_events\fP"
+.br
+.RI "\fIevent queue \fP"
+.in -1c
.SS "Friends"
.in +1c
@@ -148,7 +179,6 @@ inotify class
It holds information about the inotify device descriptor and manages the event queue.
.PP
If the INOTIFY_THREAD_SAFE is defined this class is thread-safe.
-.PP
.SH "Constructor & Destructor Documentation"
.PP
.SS "Inotify::Inotify () throw (\fBInotifyException\fP)"
@@ -170,17 +200,13 @@ Destructor.
Calls \fBClose()\fP due to clean-up.
.SH "Member Function Documentation"
.PP
-.SS "void Inotify::Close ()"
-.PP
-Removes all watches and closes the inotify device.
-.PP
-.SS "void Inotify::Add (\fBInotifyWatch\fP * pWatch) throw (\fBInotifyException\fP)"
+.SS "void Inotify::Add (\fBInotifyWatch\fP & rWatch) throw (\fBInotifyException\fP)\fC [inline]\fP"
.PP
Adds a new watch.
.PP
\fBParameters:\fP
.RS 4
-\fIpWatch\fP inotify watch
+\fIrWatch\fP inotify watch
.RE
.PP
\fBExceptions:\fP
@@ -189,13 +215,13 @@ Adds a new watch.
.RE
.PP
-.SS "void Inotify::Add (\fBInotifyWatch\fP & rWatch) throw (\fBInotifyException\fP)\fC [inline]\fP"
+.SS "void Inotify::Add (\fBInotifyWatch\fP * pWatch) throw (\fBInotifyException\fP)"
.PP
Adds a new watch.
.PP
\fBParameters:\fP
.RS 4
-\fIrWatch\fP inotify watch
+\fIpWatch\fP inotify watch
.RE
.PP
\fBExceptions:\fP
@@ -204,58 +230,85 @@ Adds a new watch.
.RE
.PP
-.SS "void Inotify::Remove (\fBInotifyWatch\fP * pWatch) throw (\fBInotifyException\fP)"
+.SS "void Inotify::Close ()"
.PP
-Removes a watch.
+Removes all watches and closes the inotify device.
.PP
-If the given watch is not present it does nothing.
+.SS "\fBInotifyWatch\fP * Inotify::FindWatch (const std::string & rPath)"
+.PP
+Searches for a watch by a filesystem path.
+.PP
+It tries to find a watch by the given filesystem path.
.PP
\fBParameters:\fP
.RS 4
-\fIpWatch\fP inotify watch
+\fIrPath\fP filesystem path
.RE
.PP
-\fBExceptions:\fP
+\fBReturns:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if removing failed
+pointer to a watch; NULL if no such watch exists
+.RE
+.PP
+\fBAttention:\fP
+.RS 4
+The path must be exactly identical to the one used for the searched watch. Be careful about absolute/relative and case-insensitive paths.
.RE
.PP
-.SS "void Inotify::Remove (\fBInotifyWatch\fP & rWatch) throw (\fBInotifyException\fP)\fC [inline]\fP"
+.SS "\fBInotifyWatch\fP * Inotify::FindWatch (int iDescriptor)"
.PP
-Removes a watch.
+Searches for a watch by a watch descriptor.
.PP
-If the given watch is not present it does nothing.
+It tries to find a watch by the given descriptor.
.PP
\fBParameters:\fP
.RS 4
-\fIrWatch\fP inotify watch
+\fIiDescriptor\fP watch descriptor
.RE
.PP
-\fBExceptions:\fP
+\fBReturns:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if removing failed
+pointer to a watch; NULL if no such watch exists
.RE
.PP
-.SS "void Inotify::RemoveAll ()"
+.SS "uint32_t Inotify::GetCapability (\fBInotifyCapability_t\fP cap) throw (\fBInotifyException\fP)\fC [static]\fP"
.PP
-Removes all watches.
+Acquires a particular inotify capability/limit.
.PP
-.SS "size_t Inotify::GetWatchCount () const\fC [inline]\fP"
+\fBParameters:\fP
+.RS 4
+\fIcap\fP capability/limit identifier
+.RE
.PP
-Returns the count of watches.
+\fBReturns:\fP
+.RS 4
+capability/limit value
+.RE
.PP
-This is the total count of all watches (regardless whether enabled or not).
+\fBExceptions:\fP
+.RS 4
+\fI\fBInotifyException\fP\fP thrown if the given value cannot be acquired
+.RE
+.PP
+
+.SS "std::string Inotify::GetCapabilityPath (\fBInotifyCapability_t\fP cap) throw (\fBInotifyException\fP)\fC [static, private]\fP"
+.PP
+.SS "int Inotify::GetDescriptor () const\fC [inline]\fP"
+.PP
+Returns the file descriptor.
+.PP
+The descriptor can be used in standard low-level file functions (poll(), select(), fcntl() etc.).
.PP
\fBReturns:\fP
.RS 4
-count of watches
+valid file descriptor or -1 for inactive object
.RE
.PP
\fBSee also:\fP
.RS 4
-\fBGetEnabledCount()\fP
+\fBSetNonBlock()\fP
.RE
.PP
@@ -274,37 +327,20 @@ count of enabled watches
.RE
.PP
-.SS "void Inotify::WaitForEvents (bool fNoIntr = \fCfalse\fP) throw (\fBInotifyException\fP)"
+.SS "bool Inotify::GetEvent (\fBInotifyEvent\fP & rEvt) throw (\fBInotifyException\fP)\fC [inline]\fP"
.PP
-Waits for inotify events.
+Extracts a queued inotify event.
.PP
-It waits until one or more events occur. When called in nonblocking mode it only retrieves occurred events to the internal queue and exits.
+The extracted event is removed from the queue.
.PP
\fBParameters:\fP
.RS 4
-\fIfNoIntr\fP if true it re-calls the system call after a handled signal
+\fIrEvt\fP event object
.RE
.PP
\fBExceptions:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if reading events failed
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBSetNonBlock()\fP
-.RE
-.PP
-
-.SS "size_t Inotify::GetEventCount ()\fC [inline]\fP"
-.PP
-Returns the count of received and queued events.
-.PP
-This number is related to the events in the queue inside this object, not to the events pending in the kernel.
-.PP
-\fBReturns:\fP
-.RS 4
-count of events
+\fI\fBInotifyException\fP\fP thrown only in very anomalous cases
.RE
.PP
@@ -325,181 +361,156 @@ The extracted event is removed from the queue. If the pointer is NULL it does no
.RE
.PP
-.SS "bool Inotify::GetEvent (\fBInotifyEvent\fP & rEvt) throw (\fBInotifyException\fP)\fC [inline]\fP"
-.PP
-Extracts a queued inotify event.
+.SS "size_t Inotify::GetEventCount ()\fC [inline]\fP"
.PP
-The extracted event is removed from the queue.
+Returns the count of received and queued events.
.PP
-\fBParameters:\fP
-.RS 4
-\fIrEvt\fP event object
-.RE
+This number is related to the events in the queue inside this object, not to the events pending in the kernel.
.PP
-\fBExceptions:\fP
+\fBReturns:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown only in very anomalous cases
+count of events
.RE
.PP
-.SS "bool Inotify::PeekEvent (\fBInotifyEvent\fP * pEvt) throw (\fBInotifyException\fP)"
-.PP
-Extracts a queued inotify event (without removing).
+.SS "static uint32_t Inotify::GetMaxEvents () throw (\fBInotifyException\fP)\fC [inline, static]\fP"
.PP
-The extracted event stays in the queue. If the pointer is NULL it does nothing.
+Returns the maximum number of events in the kernel queue.
.PP
-\fBParameters:\fP
+\fBReturns:\fP
.RS 4
-\fIpEvt\fP event object
+maximum number of events in the kernel queue
.RE
.PP
\fBExceptions:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if the provided pointer is NULL
+\fI\fBInotifyException\fP\fP thrown if the given value cannot be acquired
.RE
.PP
-.SS "bool Inotify::PeekEvent (\fBInotifyEvent\fP & rEvt) throw (\fBInotifyException\fP)\fC [inline]\fP"
+.SS "static uint32_t Inotify::GetMaxInstances () throw (\fBInotifyException\fP)\fC [inline, static]\fP"
.PP
-Extracts a queued inotify event (without removing).
+Returns the maximum number of inotify instances per process.
.PP
-The extracted event stays in the queue.
+It means the maximum number of open inotify file descriptors per running process.
.PP
-\fBParameters:\fP
+\fBReturns:\fP
.RS 4
-\fIrEvt\fP event object
+maximum number of inotify instances
.RE
.PP
\fBExceptions:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown only in very anomalous cases
+\fI\fBInotifyException\fP\fP thrown if the given value cannot be acquired
.RE
.PP
-.SS "\fBInotifyWatch\fP * Inotify::FindWatch (int iDescriptor)"
+.SS "static uint32_t Inotify::GetMaxWatches () throw (\fBInotifyException\fP)\fC [inline, static]\fP"
.PP
-Searches for a watch by a watch descriptor.
+Returns the maximum number of inotify watches per instance.
.PP
-It tries to find a watch by the given descriptor.
+It means the maximum number of inotify watches per inotify file descriptor.
.PP
-\fBParameters:\fP
+\fBReturns:\fP
.RS 4
-\fIiDescriptor\fP watch descriptor
+maximum number of inotify watches
.RE
.PP
-\fBReturns:\fP
+\fBExceptions:\fP
.RS 4
-pointer to a watch; NULL if no such watch exists
+\fI\fBInotifyException\fP\fP thrown if the given value cannot be acquired
.RE
.PP
-.SS "\fBInotifyWatch\fP * Inotify::FindWatch (const std::string & rPath)"
-.PP
-Searches for a watch by a filesystem path.
+.SS "size_t Inotify::GetWatchCount () const\fC [inline]\fP"
.PP
-It tries to find a watch by the given filesystem path.
+Returns the count of watches.
.PP
-\fBParameters:\fP
-.RS 4
-\fIrPath\fP filesystem path
-.RE
+This is the total count of all watches (regardless whether enabled or not).
.PP
\fBReturns:\fP
.RS 4
-pointer to a watch; NULL if no such watch exists
+count of watches
.RE
.PP
-\fBAttention:\fP
+\fBSee also:\fP
.RS 4
-The path must be exactly identical to the one used for the searched watch. Be careful about absolute/relative and case-insensitive paths.
+\fBGetEnabledCount()\fP
.RE
.PP
-.SS "int Inotify::GetDescriptor () const\fC [inline]\fP"
+.SS "bool Inotify::PeekEvent (\fBInotifyEvent\fP & rEvt) throw (\fBInotifyException\fP)\fC [inline]\fP"
.PP
-Returns the file descriptor.
+Extracts a queued inotify event (without removing).
.PP
-The descriptor can be used in standard low-level file functions (poll(), select(), fcntl() etc.).
+The extracted event stays in the queue.
.PP
-\fBReturns:\fP
+\fBParameters:\fP
.RS 4
-valid file descriptor or -1 for inactive object
+\fIrEvt\fP event object
.RE
.PP
-\fBSee also:\fP
+\fBExceptions:\fP
.RS 4
-\fBSetNonBlock()\fP
+\fI\fBInotifyException\fP\fP thrown only in very anomalous cases
.RE
.PP
-.SS "void Inotify::SetNonBlock (bool fNonBlock) throw (\fBInotifyException\fP)"
-.PP
-Enables/disables non-blocking mode.
+.SS "bool Inotify::PeekEvent (\fBInotifyEvent\fP * pEvt) throw (\fBInotifyException\fP)"
.PP
-Use this mode if you want to monitor the descriptor (acquired thru \fBGetDescriptor()\fP) in functions such as poll(), select() etc.
+Extracts a queued inotify event (without removing).
.PP
-Non-blocking mode is disabled by default.
+The extracted event stays in the queue. If the pointer is NULL it does nothing.
.PP
\fBParameters:\fP
.RS 4
-\fIfNonBlock\fP enable/disable non-blocking mode
+\fIpEvt\fP event object
.RE
.PP
\fBExceptions:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if setting mode failed
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBGetDescriptor()\fP, \fBSetCloseOnExec()\fP
+\fI\fBInotifyException\fP\fP thrown if the provided pointer is NULL
.RE
.PP
-.SS "void Inotify::SetCloseOnExec (bool fClOnEx) throw (\fBInotifyException\fP)"
-.PP
-Enables/disables closing on exec.
+.SS "void Inotify::Remove (\fBInotifyWatch\fP & rWatch) throw (\fBInotifyException\fP)\fC [inline]\fP"
.PP
-Enable this if you want to close the descriptor when executing another program. Otherwise, the descriptor will be inherited.
+Removes a watch.
.PP
-Closing on exec is disabled by default.
+If the given watch is not present it does nothing.
.PP
\fBParameters:\fP
.RS 4
-\fIfClOnEx\fP enable/disable closing on exec
+\fIrWatch\fP inotify watch
.RE
.PP
\fBExceptions:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if setting failed
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBGetDescriptor()\fP, \fBSetNonBlock()\fP
+\fI\fBInotifyException\fP\fP thrown if removing failed
.RE
.PP
-.SS "uint32_t Inotify::GetCapability (\fBInotifyCapability_t\fP cap) throw (\fBInotifyException\fP)\fC [static]\fP"
+.SS "void Inotify::Remove (\fBInotifyWatch\fP * pWatch) throw (\fBInotifyException\fP)"
.PP
-Acquires a particular inotify capability/limit.
+Removes a watch.
.PP
-\fBParameters:\fP
-.RS 4
-\fIcap\fP capability/limit identifier
-.RE
+If the given watch is not present it does nothing.
.PP
-\fBReturns:\fP
+\fBParameters:\fP
.RS 4
-capability/limit value
+\fIpWatch\fP inotify watch
.RE
.PP
\fBExceptions:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if the given value cannot be acquired
+\fI\fBInotifyException\fP\fP thrown if removing failed
.RE
.PP
+.SS "void Inotify::RemoveAll ()"
+.PP
+Removes all watches.
+.PP
.SS "void Inotify::SetCapability (\fBInotifyCapability_t\fP cap, uint32_t val) throw (\fBInotifyException\fP)\fC [static]\fP"
.PP
Modifies a particular inotify capability/limit.
@@ -522,18 +533,27 @@ Using this function requires root privileges. Beware of setting extensive values
.RE
.PP
-.SS "static uint32_t Inotify::GetMaxEvents () throw (\fBInotifyException\fP)\fC [inline, static]\fP"
+.SS "void Inotify::SetCloseOnExec (bool fClOnEx) throw (\fBInotifyException\fP)"
.PP
-Returns the maximum number of events in the kernel queue.
+Enables/disables closing on exec.
.PP
-\fBReturns:\fP
+Enable this if you want to close the descriptor when executing another program. Otherwise, the descriptor will be inherited.
+.PP
+Closing on exec is disabled by default.
+.PP
+\fBParameters:\fP
.RS 4
-maximum number of events in the kernel queue
+\fIfClOnEx\fP enable/disable closing on exec
.RE
.PP
\fBExceptions:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if the given value cannot be acquired
+\fI\fBInotifyException\fP\fP thrown if setting failed
+.RE
+.PP
+\fBSee also:\fP
+.RS 4
+\fBGetDescriptor()\fP, \fBSetNonBlock()\fP
.RE
.PP
@@ -557,26 +577,29 @@ Using this function requires root privileges. Beware of setting extensive values
.RE
.PP
-.SS "static uint32_t Inotify::GetMaxInstances () throw (\fBInotifyException\fP)\fC [inline, static]\fP"
-.PP
-Returns the maximum number of inotify instances per process.
+.SS "static void Inotify::SetMaxInstances (uint32_t val) throw (\fBInotifyException\fP)\fC [inline, static]\fP"
.PP
-It means the maximum number of open inotify file descriptors per running process.
+Sets the maximum number of inotify instances per process.
.PP
-\fBReturns:\fP
+\fBParameters:\fP
.RS 4
-maximum number of inotify instances
+\fIval\fP new value
.RE
.PP
\fBExceptions:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if the given value cannot be acquired
+\fI\fBInotifyException\fP\fP thrown if the given value cannot be set
+.RE
+.PP
+\fBAttention:\fP
+.RS 4
+Using this function requires root privileges. Beware of setting extensive values - the greater value is set here the more physical memory may be used for the inotify infrastructure.
.RE
.PP
-.SS "static void Inotify::SetMaxInstances (uint32_t val) throw (\fBInotifyException\fP)\fC [inline, static]\fP"
+.SS "static void Inotify::SetMaxWatches (uint32_t val) throw (\fBInotifyException\fP)\fC [inline, static]\fP"
.PP
-Sets the maximum number of inotify instances per process.
+Sets the maximum number of inotify watches per instance.
.PP
\fBParameters:\fP
.RS 4
@@ -594,40 +617,49 @@ Using this function requires root privileges. Beware of setting extensive values
.RE
.PP
-.SS "static uint32_t Inotify::GetMaxWatches () throw (\fBInotifyException\fP)\fC [inline, static]\fP"
+.SS "void Inotify::SetNonBlock (bool fNonBlock) throw (\fBInotifyException\fP)"
.PP
-Returns the maximum number of inotify watches per instance.
+Enables/disables non-blocking mode.
.PP
-It means the maximum number of inotify watches per inotify file descriptor.
+Use this mode if you want to monitor the descriptor (acquired thru \fBGetDescriptor()\fP) in functions such as poll(), select() etc.
.PP
-\fBReturns:\fP
+Non-blocking mode is disabled by default.
+.PP
+\fBParameters:\fP
.RS 4
-maximum number of inotify watches
+\fIfNonBlock\fP enable/disable non-blocking mode
.RE
.PP
\fBExceptions:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if the given value cannot be acquired
+\fI\fBInotifyException\fP\fP thrown if setting mode failed
+.RE
+.PP
+\fBSee also:\fP
+.RS 4
+\fBGetDescriptor()\fP, \fBSetCloseOnExec()\fP
.RE
.PP
-.SS "static void Inotify::SetMaxWatches (uint32_t val) throw (\fBInotifyException\fP)\fC [inline, static]\fP"
+.SS "void Inotify::WaitForEvents (bool fNoIntr = \fCfalse\fP) throw (\fBInotifyException\fP)"
.PP
-Sets the maximum number of inotify watches per instance.
+Waits for inotify events.
+.PP
+It waits until one or more events occur. When called in nonblocking mode it only retrieves occurred events to the internal queue and exits.
.PP
\fBParameters:\fP
.RS 4
-\fIval\fP new value
+\fIfNoIntr\fP if true it re-calls the system call after a handled signal
.RE
.PP
\fBExceptions:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if the given value cannot be set
+\fI\fBInotifyException\fP\fP thrown if reading events failed
.RE
.PP
-\fBAttention:\fP
+\fBSee also:\fP
.RS 4
-Using this function requires root privileges. Beware of setting extensive values - the greater value is set here the more physical memory may be used for the inotify infrastructure.
+\fBSetNonBlock()\fP
.RE
.PP
@@ -635,6 +667,28 @@ Using this function requires root privileges. Beware of setting extensive values
.PP
.SS "friend class \fBInotifyWatch\fP\fC [friend]\fP"
.PP
+.SH "Member Data Documentation"
+.PP
+.SS "unsigned char \fBInotify::m_buf\fP[INOTIFY_BUFLEN]\fC [private]\fP"
+.PP
+buffer for events
+.PP
+.SS "std::deque<\fBInotifyEvent\fP> \fBInotify::m_events\fP\fC [private]\fP"
+.PP
+event queue
+.PP
+.SS "int \fBInotify::m_fd\fP\fC [private]\fP"
+.PP
+file descriptor
+.PP
+.SS "\fBIN_WP_MAP\fP \fBInotify::m_paths\fP\fC [private]\fP"
+.PP
+watches (by paths)
+.PP
+.SS "\fBIN_WATCH_MAP\fP \fBInotify::m_watches\fP\fC [private]\fP"
+.PP
+watches (by descriptors)
+.PP
.SH "Author"
diff --git a/shared/inotify/doc/man/man3/InotifyEvent.3 b/shared/inotify/doc/man/man3/InotifyEvent.3
index 51899460..c45eaba9 100644
--- a/shared/inotify/doc/man/man3/InotifyEvent.3
+++ b/shared/inotify/doc/man/man3/InotifyEvent.3
@@ -1,4 +1,4 @@
-.TH "InotifyEvent" 3 "18 Apr 2007" "Version 0.7.2" "inotify-cxx" \" -*- nroff -*-
+.TH "InotifyEvent" 3 "9 Dec 2009" "Version 0.7.3" "inotify-cxx" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -26,31 +26,31 @@ InotifyEvent \- inotify event class
.br
.RI "\fIDestructor. \fP"
.ti -1c
-.RI "int32_t \fBGetDescriptor\fP () const"
+.RI "int32_t \fBGetDescriptor\fP () const "
.br
.RI "\fIReturns the event watch descriptor. \fP"
.ti -1c
-.RI "uint32_t \fBGetMask\fP () const"
+.RI "uint32_t \fBGetMask\fP () const "
.br
.RI "\fIReturns the event mask. \fP"
.ti -1c
-.RI "bool \fBIsType\fP (uint32_t uType) const"
+.RI "bool \fBIsType\fP (uint32_t uType) const "
.br
.RI "\fIChecks for the event type. \fP"
.ti -1c
-.RI "uint32_t \fBGetCookie\fP () const"
+.RI "uint32_t \fBGetCookie\fP () const "
.br
.RI "\fIReturns the event cookie. \fP"
.ti -1c
-.RI "uint32_t \fBGetLength\fP () const"
+.RI "uint32_t \fBGetLength\fP () const "
.br
.RI "\fIReturns the event name length. \fP"
.ti -1c
-.RI "const std::string & \fBGetName\fP () const"
+.RI "const std::string & \fBGetName\fP () const "
.br
.RI "\fIReturns the event name. \fP"
.ti -1c
-.RI "void \fBGetName\fP (std::string &rName) const"
+.RI "void \fBGetName\fP (std::string &rName) const "
.br
.RI "\fIExtracts the event name. \fP"
.ti -1c
@@ -58,7 +58,7 @@ InotifyEvent \- inotify event class
.br
.RI "\fIReturns the source watch. \fP"
.ti -1c
-.RI "void \fBDumpTypes\fP (std::string &rStr) const"
+.RI "void \fBDumpTypes\fP (std::string &rStr) const "
.br
.RI "\fIFills the string with all types contained in the event mask. \fP"
.in -1c
@@ -78,6 +78,26 @@ InotifyEvent \- inotify event class
.br
.RI "\fIFills the string with all types contained in an event mask value. \fP"
.in -1c
+.SS "Private Attributes"
+
+.in +1c
+.ti -1c
+.RI "uint32_t \fBm_uMask\fP"
+.br
+.RI "\fImask \fP"
+.ti -1c
+.RI "uint32_t \fBm_uCookie\fP"
+.br
+.RI "\fIcookie \fP"
+.ti -1c
+.RI "std::string \fBm_name\fP"
+.br
+.RI "\fIname \fP"
+.ti -1c
+.RI "\fBInotifyWatch\fP * \fBm_pWatch\fP"
+.br
+.RI "\fIsource watch \fP"
+.in -1c
.SH "Detailed Description"
.PP
inotify event class
@@ -85,7 +105,6 @@ inotify event class
It holds all information about inotify event and provides access to its particular values.
.PP
This class is not (and is not intended to be) thread-safe and therefore it must not be used concurrently in multiple threads.
-.PP
.SH "Constructor & Destructor Documentation"
.PP
.SS "InotifyEvent::InotifyEvent ()\fC [inline]\fP"
@@ -113,95 +132,90 @@ Destructor.
.PP
.SH "Member Function Documentation"
.PP
-.SS "int32_t InotifyEvent::GetDescriptor () const"
-.PP
-Returns the event watch descriptor.
+.SS "void InotifyEvent::DumpTypes (std::string & rStr) const"
.PP
-\fBReturns:\fP
-.RS 4
-watch descriptor
-.RE
+Fills the string with all types contained in the event mask.
.PP
-\fBSee also:\fP
+\fBParameters:\fP
.RS 4
-\fBInotifyWatch::GetDescriptor()\fP
+\fIrStr\fP dumped event types
.RE
.PP
-.SS "uint32_t InotifyEvent::GetMask () const\fC [inline]\fP"
-.PP
-Returns the event mask.
+.SS "void InotifyEvent::DumpTypes (uint32_t uValue, std::string & rStr)\fC [static]\fP"
.PP
-\fBReturns:\fP
-.RS 4
-event mask
-.RE
+Fills the string with all types contained in an event mask value.
.PP
-\fBSee also:\fP
+\fBParameters:\fP
.RS 4
-\fBInotifyWatch::GetMask()\fP
+\fIuValue\fP event mask value
+.br
+\fIrStr\fP dumped event types
.RE
.PP
-.SS "static bool InotifyEvent::IsType (uint32_t uValue, uint32_t uType)\fC [inline, static]\fP"
-.PP
-Checks a value for the event type.
+.SS "uint32_t InotifyEvent::GetCookie () const\fC [inline]\fP"
.PP
-\fBParameters:\fP
-.RS 4
-\fIuValue\fP checked value
-.br
-\fIuType\fP type which is checked for
-.RE
+Returns the event cookie.
.PP
\fBReturns:\fP
.RS 4
-true = the value contains the given type, false = otherwise
+event cookie
.RE
.PP
-.SS "bool InotifyEvent::IsType (uint32_t uType) const\fC [inline]\fP"
+.SS "int32_t InotifyEvent::GetDescriptor () const"
.PP
-Checks for the event type.
+Returns the event watch descriptor.
.PP
-\fBParameters:\fP
+\fBReturns:\fP
.RS 4
-\fIuType\fP type which is checked for
+watch descriptor
.RE
.PP
-\fBReturns:\fP
+\fBSee also:\fP
.RS 4
-true = event mask contains the given type, false = otherwise
+\fBInotifyWatch::GetDescriptor()\fP
.RE
.PP
-.SS "uint32_t InotifyEvent::GetCookie () const\fC [inline]\fP"
+.SS "uint32_t InotifyEvent::GetLength () const\fC [inline]\fP"
.PP
-Returns the event cookie.
+Returns the event name length.
.PP
\fBReturns:\fP
.RS 4
-event cookie
+event name length
.RE
.PP
-.SS "uint32_t InotifyEvent::GetLength () const\fC [inline]\fP"
+.SS "uint32_t InotifyEvent::GetMask () const\fC [inline]\fP"
.PP
-Returns the event name length.
+Returns the event mask.
.PP
\fBReturns:\fP
.RS 4
-event name length
+event mask
+.RE
+.PP
+\fBSee also:\fP
+.RS 4
+\fBInotifyWatch::GetMask()\fP
.RE
.PP
-.SS "const std::string& InotifyEvent::GetName () const\fC [inline]\fP"
+.SS "uint32_t InotifyEvent::GetMaskByName (const std::string & rName)\fC [static]\fP"
.PP
-Returns the event name.
+Finds the appropriate mask for a name.
+.PP
+\fBParameters:\fP
+.RS 4
+\fIrName\fP mask name
+.RE
.PP
\fBReturns:\fP
.RS 4
-event name
+mask for name; 0 on failure
.RE
.PP
@@ -215,6 +229,16 @@ Extracts the event name.
.RE
.PP
+.SS "const std::string& InotifyEvent::GetName () const\fC [inline]\fP"
+.PP
+Returns the event name.
+.PP
+\fBReturns:\fP
+.RS 4
+event name
+.RE
+.PP
+
.SS "\fBInotifyWatch\fP* InotifyEvent::GetWatch ()\fC [inline]\fP"
.PP
Returns the source watch.
@@ -225,41 +249,55 @@ source watch
.RE
.PP
-.SS "uint32_t InotifyEvent::GetMaskByName (const std::string & rName)\fC [static]\fP"
+.SS "bool InotifyEvent::IsType (uint32_t uType) const\fC [inline]\fP"
.PP
-Finds the appropriate mask for a name.
+Checks for the event type.
.PP
\fBParameters:\fP
.RS 4
-\fIrName\fP mask name
+\fIuType\fP type which is checked for
.RE
.PP
\fBReturns:\fP
.RS 4
-mask for name; 0 on failure
+true = event mask contains the given type, false = otherwise
.RE
.PP
-.SS "void InotifyEvent::DumpTypes (uint32_t uValue, std::string & rStr)\fC [static]\fP"
+.SS "static bool InotifyEvent::IsType (uint32_t uValue, uint32_t uType)\fC [inline, static]\fP"
.PP
-Fills the string with all types contained in an event mask value.
+Checks a value for the event type.
.PP
\fBParameters:\fP
.RS 4
-\fIuValue\fP event mask value
+\fIuValue\fP checked value
.br
-\fIrStr\fP dumped event types
+\fIuType\fP type which is checked for
+.RE
+.PP
+\fBReturns:\fP
+.RS 4
+true = the value contains the given type, false = otherwise
.RE
.PP
-.SS "void InotifyEvent::DumpTypes (std::string & rStr) const"
+.SH "Member Data Documentation"
+.PP
+.SS "std::string \fBInotifyEvent::m_name\fP\fC [private]\fP"
.PP
-Fills the string with all types contained in the event mask.
+name
.PP
-\fBParameters:\fP
-.RS 4
-\fIrStr\fP dumped event types
-.RE
+.SS "\fBInotifyWatch\fP* \fBInotifyEvent::m_pWatch\fP\fC [private]\fP"
+.PP
+source watch
+.PP
+.SS "uint32_t \fBInotifyEvent::m_uCookie\fP\fC [private]\fP"
+.PP
+cookie
+.PP
+.SS "uint32_t \fBInotifyEvent::m_uMask\fP\fC [private]\fP"
+.PP
+mask
.PP
diff --git a/shared/inotify/doc/man/man3/InotifyException.3 b/shared/inotify/doc/man/man3/InotifyException.3
index 90c5990d..57bc1bec 100644
--- a/shared/inotify/doc/man/man3/InotifyException.3
+++ b/shared/inotify/doc/man/man3/InotifyException.3
@@ -1,4 +1,4 @@
-.TH "InotifyException" 3 "18 Apr 2007" "Version 0.7.2" "inotify-cxx" \" -*- nroff -*-
+.TH "InotifyException" 3 "9 Dec 2009" "Version 0.7.3" "inotify-cxx" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -18,15 +18,15 @@ InotifyException \- Class for inotify exceptions.
.br
.RI "\fIConstructor. \fP"
.ti -1c
-.RI "const std::string & \fBGetMessage\fP () const"
+.RI "const std::string & \fBGetMessage\fP () const "
.br
.RI "\fIReturns the exception message. \fP"
.ti -1c
-.RI "int \fBGetErrorNumber\fP () const"
+.RI "int \fBGetErrorNumber\fP () const "
.br
.RI "\fIReturns the exception error number. \fP"
.ti -1c
-.RI "void * \fBGetSource\fP () const"
+.RI "void * \fBGetSource\fP () const "
.br
.RI "\fIReturns the exception source. \fP"
.in -1c
@@ -53,7 +53,6 @@ Class for inotify exceptions.
This class allows to acquire information about exceptional events. It makes easier to log or display error messages and to identify problematic code locations.
.PP
Although this class is basically thread-safe it is not intended to be shared between threads.
-.PP
.SH "Constructor & Destructor Documentation"
.PP
.SS "InotifyException::InotifyException (const std::string & rMsg = \fC''\fP, int iErr = \fC0\fP, void * pSrc = \fCNULL\fP)\fC [inline]\fP"
@@ -72,25 +71,25 @@ Constructor.
.SH "Member Function Documentation"
.PP
-.SS "const std::string& InotifyException::GetMessage () const\fC [inline]\fP"
+.SS "int InotifyException::GetErrorNumber () const\fC [inline]\fP"
.PP
-Returns the exception message.
+Returns the exception error number.
+.PP
+If not applicable this value is 0 (zero).
.PP
\fBReturns:\fP
.RS 4
-message
+error number (standardized; see errno.h)
.RE
.PP
-.SS "int InotifyException::GetErrorNumber () const\fC [inline]\fP"
-.PP
-Returns the exception error number.
+.SS "const std::string& InotifyException::GetMessage () const\fC [inline]\fP"
.PP
-If not applicable this value is 0 (zero).
+Returns the exception message.
.PP
\fBReturns:\fP
.RS 4
-error number (standardized; see errno.h)
+message
.RE
.PP
@@ -106,14 +105,14 @@ source
.SH "Member Data Documentation"
.PP
-.SS "std::string \fBInotifyException::m_msg\fP\fC [protected]\fP"
-.PP
-message
-.PP
.SS "int \fBInotifyException::m_err\fP\fC [protected]\fP"
.PP
error number
.PP
+.SS "std::string \fBInotifyException::m_msg\fP\fC [protected]\fP"
+.PP
+message
+.PP
.SS "void* \fBInotifyException::m_pSrc\fP\fC [mutable, protected]\fP"
.PP
source
diff --git a/shared/inotify/doc/man/man3/InotifyWatch.3 b/shared/inotify/doc/man/man3/InotifyWatch.3
index ea352997..cac74012 100644
--- a/shared/inotify/doc/man/man3/InotifyWatch.3
+++ b/shared/inotify/doc/man/man3/InotifyWatch.3
@@ -1,4 +1,4 @@
-.TH "InotifyWatch" 3 "18 Apr 2007" "Version 0.7.2" "inotify-cxx" \" -*- nroff -*-
+.TH "InotifyWatch" 3 "9 Dec 2009" "Version 0.7.3" "inotify-cxx" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -22,15 +22,15 @@ InotifyWatch \- inotify watch class
.br
.RI "\fIDestructor. \fP"
.ti -1c
-.RI "int32_t \fBGetDescriptor\fP () const"
+.RI "int32_t \fBGetDescriptor\fP () const "
.br
.RI "\fIReturns the watch descriptor. \fP"
.ti -1c
-.RI "const std::string & \fBGetPath\fP () const"
+.RI "const std::string & \fBGetPath\fP () const "
.br
.RI "\fIReturns the watched file path. \fP"
.ti -1c
-.RI "uint32_t \fBGetMask\fP () const"
+.RI "uint32_t \fBGetMask\fP () const "
.br
.RI "\fIReturns the watch event mask. \fP"
.ti -1c
@@ -46,14 +46,46 @@ InotifyWatch \- inotify watch class
.br
.RI "\fIEnables/disables the watch. \fP"
.ti -1c
-.RI "bool \fBIsEnabled\fP () const"
+.RI "bool \fBIsEnabled\fP () const "
.br
.RI "\fIChecks whether the watch is enabled. \fP"
.ti -1c
-.RI "bool \fBIsRecursive\fP () const"
+.RI "bool \fBIsRecursive\fP () const "
.br
.RI "\fIChecks whether the watch is recursive. \fP"
.in -1c
+.SS "Private Member Functions"
+
+.in +1c
+.ti -1c
+.RI "IN_LOCK_DECL void \fB__Disable\fP ()"
+.br
+.RI "\fIDisables the watch (due to removing by the kernel). \fP"
+.in -1c
+.SS "Private Attributes"
+
+.in +1c
+.ti -1c
+.RI "std::string \fBm_path\fP"
+.br
+.RI "\fIwatched file path \fP"
+.ti -1c
+.RI "uint32_t \fBm_uMask\fP"
+.br
+.RI "\fIevent mask \fP"
+.ti -1c
+.RI "int32_t \fBm_wd\fP"
+.br
+.RI "\fIwatch descriptor \fP"
+.ti -1c
+.RI "\fBInotify\fP * \fBm_pInotify\fP"
+.br
+.RI "\fIinotify object \fP"
+.ti -1c
+.RI "bool \fBm_fEnabled\fP"
+.br
+.RI "\fIevents enabled yes/no \fP"
+.in -1c
.SS "Friends"
.in +1c
@@ -68,7 +100,6 @@ inotify watch class
It holds information about the inotify watch on a particular inode.
.PP
If the INOTIFY_THREAD_SAFE is defined this class is thread-safe.
-.PP
.SH "Constructor & Destructor Documentation"
.PP
.SS "InotifyWatch::InotifyWatch (const std::string & rPath, int32_t uMask, bool fEnabled = \fCtrue\fP)\fC [inline]\fP"
@@ -93,6 +124,11 @@ Destructor.
.PP
.SH "Member Function Documentation"
.PP
+.SS "void InotifyWatch::__Disable ()\fC [private]\fP"
+.PP
+Disables the watch (due to removing by the kernel).
+.PP
+This method must be called after receiving an event. It ensures the watch object is consistent with the kernel data.
.SS "int32_t InotifyWatch::GetDescriptor () const\fC [inline]\fP"
.PP
Returns the watch descriptor.
@@ -103,13 +139,13 @@ watch descriptor; -1 for inactive watch
.RE
.PP
-.SS "const std::string& InotifyWatch::GetPath () const\fC [inline]\fP"
+.SS "\fBInotify\fP* InotifyWatch::GetInotify ()\fC [inline]\fP"
.PP
-Returns the watched file path.
+Returns the appropriate inotify class instance.
.PP
\fBReturns:\fP
.RS 4
-file path
+inotify instance
.RE
.PP
@@ -123,30 +159,40 @@ event mask
.RE
.PP
-.SS "void InotifyWatch::SetMask (uint32_t uMask) throw (\fBInotifyException\fP)"
-.PP
-Sets the watch event mask.
+.SS "const std::string& InotifyWatch::GetPath () const\fC [inline]\fP"
.PP
-If the watch is active (added to an instance of \fBInotify\fP) this method may fail due to unsuccessful re-setting the watch in the kernel.
+Returns the watched file path.
.PP
-\fBParameters:\fP
+\fBReturns:\fP
.RS 4
-\fIuMask\fP event mask
+file path
.RE
.PP
-\fBExceptions:\fP
+
+.SS "bool InotifyWatch::IsEnabled () const\fC [inline]\fP"
+.PP
+Checks whether the watch is enabled.
+.PP
+\fBReturns:\fP
.RS 4
-\fI\fBInotifyException\fP\fP thrown if changing fails
+true = enables, false = disabled
.RE
.PP
-.SS "\fBInotify\fP* InotifyWatch::GetInotify ()\fC [inline]\fP"
+.SS "bool InotifyWatch::IsRecursive () const\fC [inline]\fP"
.PP
-Returns the appropriate inotify class instance.
+Checks whether the watch is recursive.
+.PP
+A recursive watch monitors a directory itself and all its subdirectories. This watch is a logical object which may have many underlying kernel watches.
.PP
\fBReturns:\fP
.RS 4
-inotify instance
+currently always false (recursive watches not yet supported)
+.RE
+.PP
+\fBAttention:\fP
+.RS 4
+Recursive watches are currently NOT supported. They are planned for future versions.
.RE
.PP
@@ -169,30 +215,20 @@ Re-setting the current state has no effect.
.RE
.PP
-.SS "bool InotifyWatch::IsEnabled () const\fC [inline]\fP"
-.PP
-Checks whether the watch is enabled.
-.PP
-\fBReturns:\fP
-.RS 4
-true = enables, false = disabled
-.RE
-.PP
-
-.SS "bool InotifyWatch::IsRecursive () const\fC [inline]\fP"
+.SS "void InotifyWatch::SetMask (uint32_t uMask) throw (\fBInotifyException\fP)"
.PP
-Checks whether the watch is recursive.
+Sets the watch event mask.
.PP
-A recursive watch monitors a directory itself and all its subdirectories. This watch is a logical object which may have many underlying kernel watches.
+If the watch is active (added to an instance of \fBInotify\fP) this method may fail due to unsuccessful re-setting the watch in the kernel.
.PP
-\fBReturns:\fP
+\fBParameters:\fP
.RS 4
-currently always false (recursive watches not yet supported)
+\fIuMask\fP event mask
.RE
.PP
-\fBAttention:\fP
+\fBExceptions:\fP
.RS 4
-Recursive watches are currently NOT supported. They are planned for future versions.
+\fI\fBInotifyException\fP\fP thrown if changing fails
.RE
.PP
@@ -200,6 +236,28 @@ Recursive watches are currently NOT supported. They are planned for future versi
.PP
.SS "friend class \fBInotify\fP\fC [friend]\fP"
.PP
+.SH "Member Data Documentation"
+.PP
+.SS "bool \fBInotifyWatch::m_fEnabled\fP\fC [private]\fP"
+.PP
+events enabled yes/no
+.PP
+.SS "std::string \fBInotifyWatch::m_path\fP\fC [private]\fP"
+.PP
+watched file path
+.PP
+.SS "\fBInotify\fP* \fBInotifyWatch::m_pInotify\fP\fC [private]\fP"
+.PP
+inotify object
+.PP
+.SS "uint32_t \fBInotifyWatch::m_uMask\fP\fC [private]\fP"
+.PP
+event mask
+.PP
+.SS "int32_t \fBInotifyWatch::m_wd\fP\fC [private]\fP"
+.PP
+watch descriptor
+.PP
.SH "Author"
diff --git a/shared/inotify/doc/man/man3/inotify-cxx.cpp.3 b/shared/inotify/doc/man/man3/inotify-cxx.cpp.3
index dd326b47..aed8e808 100644
--- a/shared/inotify/doc/man/man3/inotify-cxx.cpp.3
+++ b/shared/inotify/doc/man/man3/inotify-cxx.cpp.3
@@ -1,8 +1,10 @@
-.TH "inotify-cxx.cpp" 3 "18 Apr 2007" "Version 0.7.2" "inotify-cxx" \" -*- nroff -*-
+.TH "inotify-cxx.cpp" 3 "9 Dec 2009" "Version 0.7.3" "inotify-cxx" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-inotify-cxx.cpp \- inotify C++ interface implementation
+inotify-cxx.cpp \- inotify C++ interface implementation
+
+.PP
.SH SYNOPSIS
.br
.PP
@@ -12,6 +14,12 @@ inotify-cxx.cpp \- inotify C++ interface implementation
.br
\fC#include <fcntl.h>\fP
.br
+\fC#include <fstream>\fP
+.br
+\fC#include <sys/syscall.h>\fP
+.br
+\fC#include <sys/inotify-syscalls.h>\fP
+.br
\fC#include 'inotify-cxx.h'\fP
.br
@@ -33,7 +41,7 @@ inotify C++ interface implementation
inotify C++ interface
.PP
-Copyright (C) 2006, 2007 Lukas Jelinek <lukas@aiken.cz>
+Copyright (C) 2006, 2007, 2009 Lukas Jelinek <lukas@aiken.cz>
.PP
This program is free software; you can redistribute it and/or modify it under the terms of one of the following licenses:
.PP
@@ -45,7 +53,9 @@ This program is free software; you can redistribute it and/or modify it under th
.IP "\(bu" 2
3. GNU General Public License, version 2 (see LICENSE-GPL)
.PP
-If you want to help with choosing the best license for you, please visit http://www.gnu.org/licenses/license-list.html.
+If you want to help with choosing the best license for you, please visit http://www.gnu.org/licenses/license-list.html.
+.PP
+Credits: Mike Frysinger (cleanup of includes)
.SH "Define Documentation"
.PP
.SS "#define DUMP_SEP"
diff --git a/shared/inotify/doc/man/man3/inotify-cxx.h.3 b/shared/inotify/doc/man/man3/inotify-cxx.h.3
index 4e0ec8b3..8c729b37 100644
--- a/shared/inotify/doc/man/man3/inotify-cxx.h.3
+++ b/shared/inotify/doc/man/man3/inotify-cxx.h.3
@@ -1,8 +1,10 @@
-.TH "inotify-cxx.h" 3 "18 Apr 2007" "Version 0.7.2" "inotify-cxx" \" -*- nroff -*-
+.TH "inotify-cxx.h" 3 "9 Dec 2009" "Version 0.7.3" "inotify-cxx" \" -*- nroff -*-
.ad l
.nh
.SH NAME
-inotify-cxx.h \- inotify C++ interface header
+inotify-cxx.h \- inotify C++ interface header
+
+.PP
.SH SYNOPSIS
.br
.PP
@@ -14,12 +16,8 @@ inotify-cxx.h \- inotify C++ interface header
.br
\fC#include <map>\fP
.br
-\fC#include <sys/syscall.h>\fP
-.br
\fC#include <sys/inotify.h>\fP
.br
-\fC#include <sys/inotify-syscalls.h>\fP
-.br
.SS "Classes"
@@ -111,7 +109,7 @@ inotify C++ interface header
inotify C++ interface
.PP
-Copyright (C) 2006, 2007 Lukas Jelinek, <lukas@aiken.cz>
+Copyright (C) 2006, 2007, 2009 Lukas Jelinek, <lukas@aiken.cz>
.PP
This program is free software; you can redistribute it and/or modify it under the terms of one of the following licenses:
.PP
@@ -123,7 +121,9 @@ This program is free software; you can redistribute it and/or modify it under th
.IP "\(bu" 2
3. GNU General Public License, version 2 (see LICENSE-GPL)
.PP
-If you want to help with choosing the best license for you, please visit http://www.gnu.org/licenses/license-list.html.
+If you want to help with choosing the best license for you, please visit http://www.gnu.org/licenses/license-list.html.
+.PP
+Credits: Mike Frysinger (cleanup of includes)
.SH "Define Documentation"
.PP
.SS "#define IN_EXC_MSG(msg) (std::string(__PRETTY_FUNCTION__) + ': ' + msg)"
diff --git a/shared/inotify/inotify-cxx.cpp b/shared/inotify/inotify-cxx.cpp
index 7c523afb..689612ac 100644
--- a/shared/inotify/inotify-cxx.cpp
+++ b/shared/inotify/inotify-cxx.cpp
@@ -5,7 +5,7 @@
*
* inotify C++ interface
*
- * Copyright (C) 2006, 2007 Lukas Jelinek <lukas@aiken.cz>
+ * Copyright (C) 2006, 2007, 2009 Lukas Jelinek <lukas@aiken.cz>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of one of the following licenses:
@@ -16,15 +16,24 @@
*
* If you want to help with choosing the best license for you,
* please visit http://www.gnu.org/licenses/license-list.html.
+ *
+ * Credits:
+ * Mike Frysinger (cleanup of includes)
*
*/
-
-//added by ZenJu
-#include <cstdio>
+
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
+#include <fstream>
+
+#include <sys/syscall.h>
+
+// Use this if syscalls not defined
+#ifndef __NR_inotify_init
+#include <sys/inotify-syscalls.h>
+#endif // __NR_inotify_init
#include "inotify-cxx.h"
diff --git a/shared/inotify/inotify-cxx.h b/shared/inotify/inotify-cxx.h
index 4170972f..34ae2212 100644
--- a/shared/inotify/inotify-cxx.h
+++ b/shared/inotify/inotify-cxx.h
@@ -5,7 +5,7 @@
*
* inotify C++ interface
*
- * Copyright (C) 2006, 2007 Lukas Jelinek, <lukas@aiken.cz>
+ * Copyright (C) 2006, 2007, 2009 Lukas Jelinek, <lukas@aiken.cz>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of one of the following licenses:
@@ -16,7 +16,10 @@
*
* If you want to help with choosing the best license for you,
* please visit http://www.gnu.org/licenses/license-list.html.
- *
+ *
+ * Credits:
+ * Mike Frysinger (cleanup of includes)
+ *
*/
@@ -31,14 +34,9 @@
#include <deque>
#include <map>
-// Please ensure that the following headers take the right place
-#include <sys/syscall.h>
+// Please ensure that the following header file takes the right place
#include <sys/inotify.h>
-// Use this if syscalls not defined
-#ifndef __NR_inotify_init
-#include <sys/inotify-syscalls.h>
-#endif // __NR_inotify_init
/// Event struct size
#define INOTIFY_EVENT_SIZE (sizeof(struct inotify_event))
diff --git a/shared/localization.cpp b/shared/localization.cpp
index 5f017989..bcb594a6 100644
--- a/shared/localization.cpp
+++ b/shared/localization.cpp
@@ -1,4 +1,10 @@
-#include "localization.h"
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
+#include "localization.h"
#include <wx/msgdlg.h>
#include "../shared/standardPaths.h"
#include "../shared/stringConv.h"
@@ -250,6 +256,26 @@ int mapLanguageDialect(const int language)
//case wxLANGUAGE_PORTUGUESE:
//case wxLANGUAGE_PORTUGUESE_BRAZILIAN:
+//variants of wxLANGUAGE_ARABIC -> needed to detect RTL languages
+ case wxLANGUAGE_ARABIC_ALGERIA:
+ case wxLANGUAGE_ARABIC_BAHRAIN:
+ case wxLANGUAGE_ARABIC_EGYPT:
+ case wxLANGUAGE_ARABIC_IRAQ:
+ case wxLANGUAGE_ARABIC_JORDAN:
+ case wxLANGUAGE_ARABIC_KUWAIT:
+ case wxLANGUAGE_ARABIC_LEBANON:
+ case wxLANGUAGE_ARABIC_LIBYA:
+ case wxLANGUAGE_ARABIC_MOROCCO:
+ case wxLANGUAGE_ARABIC_OMAN:
+ case wxLANGUAGE_ARABIC_QATAR:
+ case wxLANGUAGE_ARABIC_SAUDI_ARABIA:
+ case wxLANGUAGE_ARABIC_SUDAN:
+ case wxLANGUAGE_ARABIC_SYRIA:
+ case wxLANGUAGE_ARABIC_TUNISIA:
+ case wxLANGUAGE_ARABIC_UAE:
+ case wxLANGUAGE_ARABIC_YEMEN:
+ return wxLANGUAGE_ARABIC;
+
default:
return language;
}
@@ -270,9 +296,18 @@ CustomLocale& CustomLocale::getInstance()
CustomLocale::CustomLocale() :
- wxLocale(wxLANGUAGE_DEFAULT), //setting a different language needn't be supported on all systems!
translationDB(new Translation),
- currentLanguage(wxLANGUAGE_ENGLISH) {}
+ currentLanguage(wxLANGUAGE_ENGLISH)
+{
+ //avoid RTL mirroring (for now) by mapping Hebrew and Arabic to English
+ const int mappedSystemLang = mapLanguageDialect(wxLocale::GetSystemLanguage());
+ const bool isRTLLanguage = mappedSystemLang == wxLANGUAGE_HEBREW ||
+ mappedSystemLang == wxLANGUAGE_ARABIC;
+ Init(isRTLLanguage ? wxLANGUAGE_ENGLISH : wxLANGUAGE_DEFAULT); //setting a different language needn't be supported on all systems!
+}
+
+
+CustomLocale::~CustomLocale() {} //non-inline destructor for std::auto_ptr to work with forward declaration
inline
@@ -397,7 +432,7 @@ void CustomLocale::setLanguage(const int language)
translationDB->clear();
if (!languageFile.empty())
{
- UnicodeFileReader langFile(FreeFileSync::getInstallationDir() + wxT("Languages") +
+ UnicodeFileReader langFile(FreeFileSync::getResourceDir() + wxT("Languages") +
zToWx(globalFunctions::FILE_NAME_SEPARATOR) + languageFile);
if (langFile.isOkay())
{
@@ -408,7 +443,7 @@ void CustomLocale::setLanguage(const int language)
{
exchangeEscapeChars(tmpString);
- if (rowNumber % 2 == 0)
+ if (rowNumber++ % 2 == 0)
original = tmpString;
else
{
@@ -417,8 +452,6 @@ void CustomLocale::setLanguage(const int language)
if (!translation.empty())
translationDB->insert(std::make_pair(original, translation));
}
-
- ++rowNumber;
}
}
else
diff --git a/shared/localization.h b/shared/localization.h
index 0a5ca4fb..157969cf 100644
--- a/shared/localization.h
+++ b/shared/localization.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef MISC_H_INCLUDED
#define MISC_H_INCLUDED
@@ -55,8 +61,9 @@ public:
private:
CustomLocale();
+ ~CustomLocale(); //non-inline destructor for std::auto_ptr to work with forward declaration -> superfluous in this case: singleton pattern!
- std::auto_ptr<Translation> translationDB;
+ std::auto_ptr<Translation> translationDB; //careful with forward-declarations and auto_ptr! save in this case, 'cause full class info available
int currentLanguage;
};
}
diff --git a/shared/loki/CHANGES b/shared/loki/CHANGES
new file mode 100644
index 00000000..67f6505e
--- /dev/null
+++ b/shared/loki/CHANGES
@@ -0,0 +1,446 @@
+_____________________________________
+
+Version 0.1.7
+January 2009
+_____________________________________
+
+General:
+ - Fixed makefiles for GNU/kFreeBSD, GNU/hurd. (lf)
+ - Fixed build errors with gcc 4.3 pre-release. (lf)
+ - Fixed compiler error that occurs when using 64 bit pointers. (rs)
+ - Added support for Code::Blocks and MSVC 9. (rs, pk)
+ - Added more unit tests (rs)
+ - Several other bug fixes (rs, pk)
+
+Checker:
+ - Added for this release. (rs)
+ - Added test project. (rs)
+
+CheckReturn:
+ - Added for this release. (rs, pk)
+ - Added test project. (rs + pk)
+
+flex_string:
+ - Fixed bugs in several functions and storage policies. (aa, rs, jfg)
+
+LevelMutex:
+ - Added for this release. (rs)
+ - Added unit tests for LevelMutex. (rs)
+
+SafeBits:
+ - Added for this release. (rs, fp)
+ - Added unit tests for SafeBits. (rs, fp)
+
+SmartPtr:
+ - Fixed double-delete race condition. (rs)
+
+StrongPtr:
+ - Fixed destructor so cleanup is only done once. (rs)
+ - Fixed test by using class level locking. (lf)
+
+Threads:
+ - Add possibility to enable recursive mutex support for pthread (pk)
+ - Added more atomic functions. (rs)
+
+Type Traits:
+ - Added 64 bit support. (cg)
+
+CVS commits by:
+ Andrei Alexandrescu (aa)
+ Guillaume Chatelet (cg)
+ Lukas Fittl (lf)
+ Peter Kümmel (pk)
+ Rich Sposato (rs)
+
+Contributions by:
+ Andrei Alexandrescu (aa)
+ Jean-Francois Bastien (jfb)
+ Guillaume Chatelet (cg)
+ Lukas Fittl (lf)
+ Fedor Pikus (fp)
+ Peter Kümmel (pk)
+ Rich Sposato (rs)
+
+_____________________________________
+
+Version 0.1.6
+February 25, 2007
+_____________________________________
+
+General:
+ - CacheFactory added by Guillaume Chatelet
+ - Factory documentation improved by Guillaume Chatelet
+ - migrated to subversion (pk)
+ - Mac linker errors fixed (lf)
+ - Makefiles can now be called from sub directories (lf)
+ - Makefiles know includes and recompile if they are changed (linux, macosx) (lf)
+ - Build all tests except SingletonDll with the static library (linux, macosx) (lf)
+ - use standard conforming naming, SUN's compiler needs it (pk)
+ - add Loki:: to LOKI_ macros
+ - several bug fixes.
+
+AbstractFactory:
+ - remove injected friends. (thanks to Sigoure Benoit, pk)
+
+AssocVector:
+ - remove injected friends. (thanks to Sigoure Benoit, pk)
+
+LockingPtr:
+ - constructor added which gets a std::pair of pointers
+ to the object and the mutex (pk)
+
+Pimpl:
+ - ImplT/PimplT/RimplT renamed to a more readable version: ImplOf (pk)
+
+Register:
+ - also produce a informative LOKI_CHECK_CLASS_IN_LIST error message with GCC (pk)
+
+SafeFormat:
+ - add writing to ostream, by Tom Browder (pk)
+ - add unsigned long version for Windows, (Thanks to ShenLei, pk)
+
+Sequence:
+ - Also compiles with Aix
+ - switched to recursive implementation
+
+Singleton
+ - example: move instantiation to the source file
+ fixes linker error with gcc 4.0.1 on the mac,
+ (Thanks to Idar Tollefsen and Sam Miller, pk)
+ - 64 bit linker error fixed (lf)
+
+SmallObj:
+ - compiler errors on SUN fixed (pk)
+ - more documentation (rs)
+ - more tests (rs)
+ - AIX fixed, (thanks to Dieter Rosch, pk)
+
+StrongPtr:
+ - Added typedef so LockableTwoRefCounts uses thread-safe allocator. (rs)
+ - AIX fixed, (thanks to Dieter Rosch, pk)
+ - linker error when using threads fixed (pk)
+
+Threads:
+ - reentrance support added to the pthread mutex (Thanks to Shen Lei, pk)
+
+
+CVS commits by Guillaume Chatelet (gc), Lukas Fittl (lf), Peter Kümmel (pk), Rich Sposato (rs)
+
+
+_____________________________________
+
+Version 0.1.5
+June 19, 2006
+_____________________________________
+
+General:
+ - operator== added to Functor, initiated by Eric Beyeler (pk)
+ - new Strong/Weak smart pointer added. (rs)
+ - loki.spec (Thanks to Regis Desgroppes and Andreas Scherer, pk)
+ - build shared lib also on mac osx (Thanks to Sam Miller, lf)
+ - added MinGW .dev files for the library (rs)
+ - some makefile improvements (Thanks to Sam Miller, lf)
+ - adding an XCode build project (kx)
+
+
+flex_string:
+ - compare bug fixed in flex_string_shell.h (Thanks to David A. Capello, pk)
+
+Function:
+ - test is doesn't need boost any more (pk)
+ - wrong default parameter fixed (pk)
+
+OrderedStatic:
+ - undef all min/max macros (Thanks to Shen Lei, pk)
+
+Singleton:
+ - Singleton<> moved into correct namespace (Thanks to Sam Miller, pk)
+
+SmartPtr:
+ - patch for RedHat 9: undefined uintptr_t (Thanks to Regis Desgroppes, pk)
+ - more tests (rs)
+ - bugs 1452805 and 1451835 fixed (rs)
+ - addded HeapStorage policy as mentioned in Feature Request 1441024 (rs)
+ - added MinGW test project for SmartPtr (rs)
+
+
+CVS commits by Rich Sposato (rs), Lukas Fittl (lf),
+Christopher Knox (kx), and Peter Kümmel (pk)
+
+
+
+_____________________________________
+
+Version 0.1.4
+March 8, 2006
+_____________________________________
+
+General:
+ - helper templates for Pimpl/Rimpl implementations added (pk)
+ - improved Makefiles (lf)
+ - improved make.msvc.bat files (pk)
+ - cvs LOG keywords added (rs)
+ - removed old c style casts (lf)
+ - more warning enabled on gcc (lf)
+ - new header added: ConstPolicy.h (rs,pk)
+ - new header added: RefToValue.h (rs,pk)
+ - standard RPM specification file for integrated installation
+ on OpenSUSE Linux added (Thanks to Andreas Scherer, pk)
+ - using Loki as shared library is now possible (pk,lf)
+ - Register.h added (pk)
+
+
+Function:
+ - guard including (pk)
+ - test stsic functions (pk)
+ - test LOKI_FUNCTOR_IS_NOT_A_SMALLOBJECT (pk)
+
+Functor:
+ - Added explicit call to base copy-constructor (rs)
+ - Changed base class from SmallObject to SmallValueObject. (Thanks to Sam Miller, rs)
+ - add possibility to disable inheritance from SmallValueObject: LOKI_FUNCTOR_IS_NOT_A_SMALLOBJECT (pk)
+
+ScopeGuard:
+ - naming conflict with SmartPtr removed (rs,pk)
+ - ByRef moved to RefByVale (rs,pk)
+
+Singleton:
+ - support of allocators with a standard interface added (Thanks to Miguel A. Figueroa-Villanueva, pk)
+ - convenience template Singleton added for shared libraries (Thanks to Marcus Lindblom, pk)
+ - example added which shows how to use Singletons with shared libraries added (Thanks to Marcus Lindblom, pk)
+
+SmartPtr:
+ - supports propagating constness by additional policy (rs,pk)
+ - ArrayStorage policy added (Thanks to Sam Miller, pk)
+ - fix in RefCounted for Mac OSX gcc 4.0.0 (Thanks to Sam Miller, pk)
+ - RefCounted ported to 64 bit (pk)
+ - add mutex policy (pk)
+ - new test code (rs)
+ - RecjectNullStrict const member function added (Thanks to Sam Miller, pk)
+ - Moved a monolithic RefLinkedBase class from header file to new source file. (rs)
+ - ByRef moved to RefToVale (rs,pk)
+ - Fixed bug 1425890. Last SmartPtr in linked chain NULLs its prev & next
+ pointers to prevent infinite recursion. Added asserts. (rs)
+ - Bug fix: infinite recursion in SmartPtr destructor (rs)
+
+LockingPtr:
+ - wrong return types fixed (rs)
+ - add mutex policy (rs,pk)
+ - supports now propagating constness (pk,rs)
+ - macro switch LOKI_DEFAULT_CONSTNESS added for propagating constness (pk)
+ - multi threaded example added
+
+SafeFormat:
+ - definition moved to src/SafeFormat.cpp, it's now part of the library
+
+Singleton:
+ - add mutex policy (pk)
+
+SmallObj:
+ - add mutex policy (pk)
+ - Added check for memory leak inside destructor. (Thanks to Kwak Jae Hyuk, rs)
+
+Threads:
+ - Mutex added (rs,pk)
+ - use Loki::Mutex instead of win32/posix mutexes in threading classes (rs,pk)
+
+
+CVS commits by Rich Sposato (rs), Lukas Fittl (lf)
+and Peter Kümmel (pk)
+
+
+
+_____________________________________
+
+Version 0.1.3
+January 9, 2006
+_____________________________________
+
+General:
+ - LockPtr added (rs)
+ - ScopeGuard added (pk,rs)
+ - improved Makefiles (lf,pk)
+ - several gcc fixes and removed warnings by Lukas Fittl (lf)
+ - tested on 64-bit Linux (pk)
+ - MS Visual C++ 2005 project files added (pk)
+ - now also the ms toolkit 2003 generates a library (pk)
+
+OrderedStatic:
+ - point operator added (pk)
+
+SafeFormat:
+ - moved into namespace Loki (pk)
+ - 64 bit problems fixed (Thanks to Zak Kipling)
+ - ported to 64-bit Windows, not tested (pk)
+ - Printf/SPrintfing of std::strings added (pk)
+ - all warnings removed gcc and msvc (pk)
+ - use snprintf for "%p"
+ - test program: speed comparison added (pk)
+
+SmallObject:
+ - added functions to check for memory corruption (rs)
+ - more fine tuning (rs)
+ - warnings removed (pk)
+
+TypeTraits:
+ - bug 1388477 fixed (pk)
+
+flex_string:
+ - fixed compare bug by updating (Thanks to Justin Matthews, pk)
+ - fixed seg faults on Linux and Windows (pk)
+ - improved error reporting of the test program (pk)
+
+SmartPtr:
+ - make object level locking possible (Thanks to Ryan Smith, pk)
+
+BindFirst:
+ - store Functor arguments by value (bug 1383566) (pk)
+
+Visitor:
+ - add support for visiting constant member functions (pk)
+ - example added (pk)
+
+ScopeGuard:
+ - example added (pk)
+
+
+CVS commits by Rich Sposato (rs), Lukas Fittl (lf)
+and Peter Kümmel (pk)
+
+
+_____________________________________
+
+Version 0.1.2
+November 16, 2005
+_____________________________________
+
+General:
+ - changes to compile under Linux (Thanks to David Lawrence, pk)
+ - more doxygen documentation, modules added (rs, pk)
+
+SmartPtr:
+ - three year old bugs 626407 and 541846 fixed:
+ Assertion with SmartPtr<T, LinkedRef> (pk)
+ SmartPtr and COMRefCounted (Thanks to James Mclaren, pk)
+
+Typelists:
+ - it's now possible to completely disable the
+ LOKI_TYPELIST_ macros (pk)
+ - marco definitions moved to a separate file (pk)
+
+Factory:
+ - Factory now protects its private data (pk)
+ - new method to get the keys:
+ std::vector<IdType> RegisteredIds() (pk)
+
+Functor:
+ - TR1 methods added: empty() and clear() (pk)
+
+Function:
+ - boost/TR1 like Function template with
+ improved member function pointer usage (pk)
+ - tested with boost's function_test.cpp
+
+Sequence:
+ - small change in usage: use e.g. Functor<void,Seq<bool &> >
+ instead of Functor<void,Seq<bool &>::Type >
+
+SmallObjects:
+ - comparison of new/malloc/std::allocator/boost::object_pool (rs, pk)
+ - #undef LOKI_SMALL_OBJECT_USE_NEW_ARRAY when using a ms compiler (pk)
+ - new lifetimes in namespace LongevityLifetime to manage dependencies:
+ DieAsSmallObjectParent and DieAsSmallObjectClient (pk)
+ - no memory leaks when using SmallObjects (pk)
+ - new default lifetime is DieAsSmallObjectParent (pk)
+
+Threads:
+ - threads on POSIX systems (Thanks to Ilya Volvovski ,pk)
+ - small regression test program (pk)
+
+Singleton:
+ - new lifetime: FollowIntoDeath (pk)
+ - new namespace LongevityLifetime with lifetimes DieLast, DieFirst,
+ DieDirectlyBeforeLast, and function SingletonFixedLongevity (pk)
+ - new implementation for SetLongevity (pk)
+ - example programs (pk)
+
+
+CVS commits by Rich Sposato (rs) and Peter Kümmel (pk)
+
+
+
+_____________________________________
+
+Version 0.1.1
+October 17, 2005
+_____________________________________
+
+Singleton:
+ - wrong ordered longevity fixed (Thanks to Kwak Jae Hyuk, pk)
+ - less warnings with msvc (Thanks to John Bates, pk)
+ - new policy, DeletableSingleton, from Curtis Krauskopf,
+ see also CUJ article 'Creating Dynamic Singletons & the Loki Library',(pk)
+
+AssocVector:
+ - hinted insert does now preserve ordering (Thanks to Christopher Twigg, pk)
+ - additional 'hinted insert' test for Regression test by Christopher Twigg (pk)
+ - fix name look up (Thanks to Markus Werle, pk)
+
+SmallObj:
+ - several improvements (rs)
+ - more documentation (rs)
+ - improved SmallBench (rs, pk)
+
+Longevity:
+ - example added (pk)
+ - additional example similar to that of the book, by Curtis Krauskopf (pk)
+
+OrderedStatic:
+ - a proposal to solve the 'static initialization ordered fiasco' problem (pk)
+
+Sequence:
+ - a proposal to replace the LOKI_TYPELIST_XX macros with a template implementation (pk)
+ - e.g.: LOKI_TYPELIST_1(int) becomes Seq<int>::Type
+ inspired by the functional language OPAL (pk)
+
+
+CVS commits by Rich Sposato (rs) and Peter Kümmel (pk)
+
+
+
+_____________________________________
+
+Version 0.1.0
+September 29, 2005
+_____________________________________
+
+General:
+ - version numbering started
+ - new directory structure
+ - Andrei's yasli, flex_string, and SafePrint added (pk)
+ - all macros now in the LOKI "namespace", e.g.:
+ TYPLELIST_1 -> LOKI_TYPELIST_1 (rs, pk)
+ - Makefiles added: tested with gcc 3.4 (mingw, cygwin),
+ msvc 8.0, and the toolkit (pk)
+ - added some documentation (rs)
+ - several bug fixes (pk)
+ - added a cvs-list to sourceforge where you can see all changes (pk)
+
+SmallObjects:
+ - new implementation (rs)
+
+Factory:
+ - works now with parameters (pk)
+ - regression test added (Thanks to Kalle Rutanen, pk)
+
+TypeTraits:
+ - isMemberPointer, isFunction added (Thanks to Kalle Rutanen, pk)
+ - regression test added (Thanks to Kalle Rutanen, pk)
+
+Threading:
+ - new macros for better thread support (win32):
+ LOKI_CLASS_LEVEL_THREADING and LOKI_OBJECT_LEVEL_THREADING (pk)
+
+
+CVS commits by Rich Sposato (rs) and Peter Kümmel (pk)
+
diff --git a/shared/longPathPrefix.cpp b/shared/longPathPrefix.cpp
index 9ce74c8b..e8b14b90 100644
--- a/shared/longPathPrefix.cpp
+++ b/shared/longPathPrefix.cpp
@@ -1,45 +1,11 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "longPathPrefix.h"
-#include <boost/scoped_array.hpp>
#include <wx/msw/wrapwin.h> //includes "windows.h"
-#include "fileError.h"
-#include "systemFunctions.h"
-#include "stringConv.h"
-#include <wx/intl.h>
-
-namespace
-{
-Zstring getFullPathName(const Zstring& relativeName, size_t proposedBufferSize = 1000)
-{
- using namespace FreeFileSync;
-
- boost::scoped_array<DefaultChar> fullPath(new DefaultChar[proposedBufferSize]);
- const DWORD rv = ::GetFullPathName(
- relativeName.c_str(), //__in LPCTSTR lpFileName,
- proposedBufferSize, //__in DWORD nBufferLength,
- fullPath.get(), //__out LPTSTR lpBuffer,
- NULL); //__out LPTSTR *lpFilePart
- if (rv == 0 || rv == proposedBufferSize)
- throw FileError(wxString(_("Error resolving full path name:")) + wxT("\n\"") + zToWx(relativeName) + wxT("\"") +
- wxT("\n\n") + FreeFileSync::getLastErrorFormatted());
- if (rv > proposedBufferSize)
- return getFullPathName(relativeName, rv);
-
- return fullPath.get();
-}
-}
-
-
-Zstring FreeFileSync::resolveRelativePath(const Zstring& path) //throw()
-{
- try
- {
- return getFullPathName(path);
- }
- catch (...)
- {
- return path;
- }
-}
//there are two flavors of long path prefix: one for UNC paths, one for regular paths
diff --git a/shared/longPathPrefix.h b/shared/longPathPrefix.h
index e4834184..4ebe7a9d 100644
--- a/shared/longPathPrefix.h
+++ b/shared/longPathPrefix.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef LONGPATHPREFIX_H_INCLUDED
#define LONGPATHPREFIX_H_INCLUDED
@@ -9,9 +15,6 @@ use in windows build only!
namespace FreeFileSync
{
-
-Zstring resolveRelativePath(const Zstring& path); //throw()
-
//handle filenames longer-equal 260 (== MAX_PATH) characters by applying \\?\-prefix (Reference: http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx#maxpath)
/*
1. path must be absolute
diff --git a/shared/recycler.cpp b/shared/recycler.cpp
index b3bb87dd..4b5a4639 100644
--- a/shared/recycler.cpp
+++ b/shared/recycler.cpp
@@ -1,13 +1,38 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "recycler.h"
-#include "dllLoader.h"
+#include "stringConv.h"
#include <wx/intl.h>
+#include <stdexcept>
+
+#ifdef FFS_WIN
+#include "dllLoader.h"
#include <wx/msw/wrapwin.h> //includes "windows.h"
#include "buildInfo.h"
#include "staticAssert.h"
#include <algorithm>
#include <functional>
-//#include "../shared/longPathPrefix.h"
+#include <vector>
+#include "longPathPrefix.h"
+
+#elif defined FFS_LINUX
+#include <sys/stat.h>
+
+#ifdef RECYCLER_GIO
+#include <gio/gio.h>
+#include <boost/shared_ptr.hpp>
+#endif
+#endif
+
+
+namespace
+{
+#ifdef FFS_WIN
const std::wstring& getRecyclerDllName()
{
static const std::wstring filename(
@@ -49,16 +74,10 @@ IFileOperation - multiple files 2,1s
Nevertheless, let's use IFileOperation for better error reporting!
*/
-void FreeFileSync::moveToWindowsRecycler(const Zstring& fileToDelete) //throw (FileError)
+void moveToWindowsRecycler(const std::vector<Zstring>& filesToDelete) //throw (FileError)
{
- std::vector<Zstring> fileNames;
- fileNames.push_back(fileToDelete);
- moveToWindowsRecycler(fileNames); //throw (FileError)
-}
-
+ using FreeFileSync::FileError;
-void FreeFileSync::moveToWindowsRecycler(const std::vector<Zstring>& filesToDelete) //throw (FileError)
-{
if (filesToDelete.empty())
return;
@@ -93,8 +112,7 @@ void FreeFileSync::moveToWindowsRecycler(const std::vector<Zstring>& filesToDele
errorMessage,
2000))
{
- throw FileError(wxString(_("Error moving to Recycle Bin:")) + wxT("\n\"") + fileNames[0] + wxT("\"") + //report first file only... better than nothing
- + wxT("\n\n") +
+ throw FileError(wxString(_("Error moving to Recycle Bin:")) + wxT("\n\"") + fileNames[0] + wxT("\"\n\n") + //report first file only... better than nothing
wxT("(") + errorMessage + wxT(")"));
}
}
@@ -125,4 +143,64 @@ void FreeFileSync::moveToWindowsRecycler(const std::vector<Zstring>& filesToDele
}
}
}
+#endif
+}
+
+void FreeFileSync::moveToRecycleBin(const Zstring& fileToDelete) //throw (FileError)
+{
+#ifdef FFS_WIN
+ const Zstring filenameFmt = applyLongPathPrefix(fileToDelete);
+ if (::GetFileAttributes(filenameFmt.c_str()) == INVALID_FILE_ATTRIBUTES)
+ return; //neither file nor any other object with that name existing: no error situation, manual deletion relies on it!
+
+ std::vector<Zstring> fileNames;
+ fileNames.push_back(fileToDelete);
+ ::moveToWindowsRecycler(fileNames); //throw (FileError)
+
+#elif defined FFS_LINUX
+ struct stat fileInfo;
+ if (::lstat(fileToDelete.c_str(), &fileInfo) != 0)
+ return; //neither file nor any other object with that name existing: no error situation, manual deletion relies on it!
+
+#ifdef RECYCLER_GIO
+ boost::shared_ptr<GFile> fileObj(g_file_new_for_path(fileToDelete.c_str()), &g_object_unref);
+ GError* error = NULL;
+ if (g_file_trash(fileObj.get(), NULL, &error) == FALSE)
+ {
+ if (!error)
+ throw std::runtime_error("Recycle Bin failed but did not provide error information!");
+
+ boost::shared_ptr<GError> errorObj(error, &g_error_free);
+
+ //assemble error message
+ const wxString errorMessage = wxString(wxT("Error Code ")) + wxString::Format(wxT("%i"), errorObj->code) +
+ + wxT(", ") + wxString::FromUTF8(g_quark_to_string(errorObj->domain)) + wxT(": ") + wxString::FromUTF8(errorObj->message);
+ throw FileError(wxString(_("Error moving to Recycle Bin:")) + wxT("\n\"") + zToWx(fileToDelete) + wxT("\"\n\n") +
+ wxT("(") + errorMessage + wxT(")"));
+ }
+
+#elif defined RECYCLER_NONE
+ throw std::logic_error("No Recycler for this Linux version available at the moment!"); //user will never arrive here: recycler option cannot be activated in this case!
+#endif
+
+#endif
+}
+
+
+bool FreeFileSync::recycleBinExists()
+{
+#ifdef FFS_WIN
+ return true;
+#elif defined FFS_LINUX
+
+#ifdef RECYCLER_GIO
+ return true;
+#elif defined RECYCLER_NONE
+ return false;
+#else
+you have to choose a recycler!
+#endif
+
+#endif
+}
diff --git a/shared/recycler.h b/shared/recycler.h
index 14aff4c0..5699e529 100644
--- a/shared/recycler.h
+++ b/shared/recycler.h
@@ -1,21 +1,38 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef RECYCLER_H_INCLUDED
#define RECYCLER_H_INCLUDED
#include "fileError.h"
#include "zstring.h"
-#include <vector>
-
-#ifndef FFS_WIN
-use in windows build only!
-#endif
-
namespace FreeFileSync
{
-//single-file processing
-void moveToWindowsRecycler(const Zstring& fileToDelete); //throw (FileError)
-//multi-file processing: about a factor of 15 faster than single-file
-void moveToWindowsRecycler(const std::vector<Zstring>& filesToDelete); //throw (FileError) -> on error reports about first file only!
+/*
+--------------------
+|Recycle Bin Access|
+--------------------
+
+Windows
+-------
+Recycler always available: during runtime dynamically either SHFileOperation or (since Vista) IFileOperation will be selected
+
+Linux
+-----
+During compilation set:
+RECYCLER_GIO if available ("pkg-config --exists gio-2.0")
+or
+RECYCLER_NONE to disable the recycler
+*/
+
+bool recycleBinExists(); //test existence of Recycle Bin API on current system
+
+//move a file or folder to Recycle Bin
+void moveToRecycleBin(const Zstring& fileToDelete); //throw (FileError)
}
#endif // RECYCLER_H_INCLUDED
diff --git a/shared/serialize.cpp b/shared/serialize.cpp
index 616d244d..f819cb33 100644
--- a/shared/serialize.cpp
+++ b/shared/serialize.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "serialize.h"
#include <wx/intl.h>
diff --git a/shared/serialize.h b/shared/serialize.h
index 85f57370..0647524b 100644
--- a/shared/serialize.h
+++ b/shared/serialize.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef SERIALIZE_H_INCLUDED
#define SERIALIZE_H_INCLUDED
diff --git a/shared/shadow.cpp b/shared/shadow.cpp
index 7e3b34c0..fd99da16 100644
--- a/shared/shadow.cpp
+++ b/shared/shadow.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "shadow.h"
#include <wx/msw/wrapwin.h> //includes "windows.h"
#include <wx/intl.h>
@@ -135,8 +141,8 @@ Zstring ShadowCopy::makeShadowCopy(const Zstring& inputFile)
wchar_t volumeNameRaw[1000];
if (!::GetVolumePathName(inputFile.c_str(), //__in LPCTSTR lpszFileName,
- volumeNameRaw, //__out LPTSTR lpszVolumePathName,
- 1000)) //__in DWORD cchBufferLength
+ volumeNameRaw, //__out LPTSTR lpszVolumePathName,
+ 1000)) //__in DWORD cchBufferLength
{
wxString errorMsg = _("Error copying locked file %x!");
errorMsg.Replace(wxT("%x"), wxString(wxT("\"")) + inputFile.c_str() + wxT("\""));
diff --git a/shared/shadow.h b/shared/shadow.h
index 78100f78..ca373e40 100644
--- a/shared/shadow.h
+++ b/shared/shadow.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef SHADOW_H_INCLUDED
#define SHADOW_H_INCLUDED
diff --git a/shared/standardPaths.cpp b/shared/standardPaths.cpp
index 3c57f5b9..018e31d0 100644
--- a/shared/standardPaths.cpp
+++ b/shared/standardPaths.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "standardPaths.h"
#include <wx/stdpaths.h>
#include <wx/filename.h>
@@ -6,58 +12,75 @@
using namespace FreeFileSync;
-
-wxString assembleFileForUserData(const wxString fileName)
+bool FreeFileSync::isPortableVersion()
{
- static const bool isPortableVersion = !wxFileExists(FreeFileSync::getInstallationDir() + wxT("uninstall.exe")); //this check is a bit lame...
-
- if (isPortableVersion) //use current working directory
- return wxString(wxT(".")) + zToWx(globalFunctions::FILE_NAME_SEPARATOR) + fileName;
- else //usen OS' standard paths
- {
- wxString userDirectory = wxStandardPathsBase::Get().GetUserDataDir();
-
- if (!userDirectory.EndsWith(zToWx(globalFunctions::FILE_NAME_SEPARATOR)))
- userDirectory += zToWx(globalFunctions::FILE_NAME_SEPARATOR);
-
- if (!wxDirExists(userDirectory))
- ::wxMkdir(userDirectory); //only top directory needs to be created: no recursion necessary
-
- return userDirectory + fileName;
- }
+#ifdef FFS_WIN
+ static const bool isPortable = !wxFileExists(FreeFileSync::getBinaryDir() + wxT("uninstall.exe")); //this check is a bit lame...
+#elif defined FFS_LINUX
+ static const bool isPortable = !FreeFileSync::getBinaryDir().EndsWith(wxT("/bin/")); //this check is a bit lame...
+#endif
+ return isPortable;
}
-const wxString& FreeFileSync::getGlobalConfigFile()
+const wxString& FreeFileSync::getBinaryDir()
{
- static wxString instance = assembleFileForUserData(wxT("GlobalSettings.xml"));
+ static wxString instance = wxFileName(wxStandardPaths::Get().GetExecutablePath()).GetPath() + zToWx(globalFunctions::FILE_NAME_SEPARATOR);
return instance;
}
-const wxString& FreeFileSync::getDefaultLogDirectory()
+const wxString& FreeFileSync::getResourceDir()
{
- static wxString instance = assembleFileForUserData(wxT("Logs"));
- return instance;
-}
+#ifdef FFS_WIN
+ return getBinaryDir();
+#elif defined FFS_LINUX
+ static wxString resourceDir;
+ static bool isInitalized = false; //poor man's singleton...
+ if (!isInitalized)
+ {
+ isInitalized = true;
-const wxString& FreeFileSync::getLastErrorTxtFile()
-{
- static wxString instance = assembleFileForUserData(wxT("LastError.txt"));
- return instance;
-}
+ if (isPortableVersion())
+ return getBinaryDir();
+ else //use OS' standard paths
+ {
+ resourceDir = wxStandardPathsBase::Get().GetResourcesDir();
+ if (!resourceDir.EndsWith(zToWx(globalFunctions::FILE_NAME_SEPARATOR)))
+ resourceDir += zToWx(globalFunctions::FILE_NAME_SEPARATOR);
+ }
+ }
-const wxString& FreeFileSync::getInstallationDir()
-{
- static wxString instance = wxFileName(wxStandardPaths::Get().GetExecutablePath()).GetPath() + zToWx(globalFunctions::FILE_NAME_SEPARATOR);
- return instance;
+ return resourceDir;
+#endif
}
const wxString& FreeFileSync::getConfigDir()
{
- static wxString instance = assembleFileForUserData(wxEmptyString);
- return instance;
+ static wxString userDirectory;
+
+ static bool isInitalized = false; //poor man's singleton...
+ if (!isInitalized)
+ {
+ isInitalized = true;
+
+ if (isPortableVersion())
+ //userDirectory = wxString(wxT(".")) + zToWx(globalFunctions::FILE_NAME_SEPARATOR); //use current working directory
+ userDirectory = getBinaryDir(); //avoid surprises with GlobalSettings.xml being newly created in each working directory
+ else //use OS' standard paths
+ {
+ userDirectory = wxStandardPathsBase::Get().GetUserDataDir();
+
+ if (!wxDirExists(userDirectory))
+ ::wxMkdir(userDirectory); //only top directory needs to be created: no recursion necessary
+
+ if (!userDirectory.EndsWith(zToWx(globalFunctions::FILE_NAME_SEPARATOR)))
+ userDirectory += zToWx(globalFunctions::FILE_NAME_SEPARATOR);
+ }
+ }
+
+ return userDirectory;
}
diff --git a/shared/standardPaths.h b/shared/standardPaths.h
index 2af802a9..0ebeebd2 100644
--- a/shared/standardPaths.h
+++ b/shared/standardPaths.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef STANDARDPATHS_H_INCLUDED
#define STANDARDPATHS_H_INCLUDED
@@ -7,14 +13,14 @@
namespace FreeFileSync
{
//------------------------------------------------------------------------------
-//global functions
+//global program directories
//------------------------------------------------------------------------------
-const wxString& getGlobalConfigFile();
-const wxString& getDefaultLogDirectory();
-const wxString& getLastErrorTxtFile();
-const wxString& getInstallationDir(); //FreeFileSync installation directory WITH path separator at end
-const wxString& getConfigDir();
+const wxString& getBinaryDir(); //directory containing executable WITH path separator at end
+const wxString& getResourceDir(); //resource directory WITH path separator at end
+const wxString& getConfigDir(); //config directory WITH path separator at end
//------------------------------------------------------------------------------
+
+bool isPortableVersion();
}
#endif // STANDARDPATHS_H_INCLUDED
diff --git a/shared/staticAssert.h b/shared/staticAssert.h
index 2be4cd58..f14ed68e 100644
--- a/shared/staticAssert.h
+++ b/shared/staticAssert.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef STATICASSERT_H_INCLUDED
#define STATICASSERT_H_INCLUDED
diff --git a/shared/stringConv.h b/shared/stringConv.h
index f4048aab..454a65f7 100644
--- a/shared/stringConv.h
+++ b/shared/stringConv.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef STRINGCONV_H_INCLUDED
#define STRINGCONV_H_INCLUDED
diff --git a/shared/systemConstants.h b/shared/systemConstants.h
index bae23d5a..d686ac50 100644
--- a/shared/systemConstants.h
+++ b/shared/systemConstants.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef SYSTEMCONSTANTS_H_INCLUDED
#define SYSTEMCONSTANTS_H_INCLUDED
diff --git a/shared/systemFunctions.cpp b/shared/systemFunctions.cpp
index 3d6915cd..6d945d67 100644
--- a/shared/systemFunctions.cpp
+++ b/shared/systemFunctions.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "systemFunctions.h"
#ifdef FFS_WIN
@@ -30,7 +36,7 @@ wxString FreeFileSync::getLastErrorFormatted(int lastError) //try to get additio
{
//determine error code if none was specified
if (lastError == 0)
- lastError = errno; //don't use :: errno is a macro!
+ lastError = errno; //don't use "::", errno is a macro!
wxString output = wxString(wxT("Linux Error Code ")) + wxString::Format(wxT("%i"), lastError);
output += wxString(wxT(": ")) + wxString::FromUTF8(::strerror(lastError));
diff --git a/shared/systemFunctions.h b/shared/systemFunctions.h
index bfeacdd4..0adec62a 100644
--- a/shared/systemFunctions.h
+++ b/shared/systemFunctions.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef SYSTEMFUNCTIONS_H_INCLUDED
#define SYSTEMFUNCTIONS_H_INCLUDED
diff --git a/shared/toggleButton.cpp b/shared/toggleButton.cpp
index b83143ea..6a35a85d 100644
--- a/shared/toggleButton.cpp
+++ b/shared/toggleButton.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "toggleButton.h"
void ToggleButton::init(const wxBitmap& activeBmp,
diff --git a/shared/toggleButton.h b/shared/toggleButton.h
index 1110ad5d..f3aaca26 100644
--- a/shared/toggleButton.h
+++ b/shared/toggleButton.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef TOGGLEBUTTON_H_INCLUDED
#define TOGGLEBUTTON_H_INCLUDED
diff --git a/shared/xmlBase.cpp b/shared/xmlBase.cpp
index c098f94a..759f24d2 100644
--- a/shared/xmlBase.cpp
+++ b/shared/xmlBase.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "xmlBase.h"
#include "globalFunctions.h"
#include <wx/ffile.h>
diff --git a/shared/xmlBase.h b/shared/xmlBase.h
index 3a01c515..d8e389ad 100644
--- a/shared/xmlBase.h
+++ b/shared/xmlBase.h
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef XMLBASE_H_INCLUDED
#define XMLBASE_H_INCLUDED
diff --git a/shared/zstring.cpp b/shared/zstring.cpp
index c3d5ba8e..312f98e7 100644
--- a/shared/zstring.cpp
+++ b/shared/zstring.cpp
@@ -1,3 +1,9 @@
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#include "zstring.h"
#include <stdexcept>
@@ -91,9 +97,9 @@ int compareFilenamesWin32(const wchar_t* a, const wchar_t* b, size_t sizeA, size
{
const int rv = (*ordinalCompare)(
a, //pointer to first string
- sizeA, //size, in bytes or characters, of first string
+ static_cast<int>(sizeA), //size, in bytes or characters, of first string
b, //pointer to second string
- sizeB, //size, in bytes or characters, of second string
+ static_cast<int>(sizeB), //size, in bytes or characters, of second string
true); //ignore case
if (rv == 0)
throw std::runtime_error("Error comparing strings (ordinal)!");
@@ -102,13 +108,13 @@ int compareFilenamesWin32(const wchar_t* a, const wchar_t* b, size_t sizeA, size
}
else //fallback
{
-//do NOT use "CompareString"; this function is NOT accurate (even with LOCALE_INVARIANT and SORT_STRINGSORT): for example "weiß" == "weiss"!!!
+//do NOT use "CompareString"; this function is NOT accurate (even with LOCALE_INVARIANT and SORT_STRINGSORT): for example "wei�" == "weiss"!!!
//the only reliable way to compare filenames (with XP) is to call "CharUpper" or "LCMapString":
const size_t minSize = std::min(sizeA, sizeB);
if (minSize == 0) //LCMapString does not allow input sizes of 0!
- return sizeA - sizeB;
+ return static_cast<int>(sizeA - sizeB);
int rv = 0; //always initialize...
if (minSize <= 5000) //performance optimization: stack
@@ -120,13 +126,13 @@ int compareFilenamesWin32(const wchar_t* a, const wchar_t* b, size_t sizeA, size
invariantLocale, //__in LCID Locale,
LCMAP_UPPERCASE, //__in DWORD dwMapFlags,
a, //__in LPCTSTR lpSrcStr,
- minSize, //__in int cchSrc,
+ static_cast<int>(minSize), //__in int cchSrc,
bufferA, //__out LPTSTR lpDestStr,
5000 //__in int cchDest
) == 0)
throw std::runtime_error("Error comparing strings! (LCMapString)");
- if (::LCMapString(invariantLocale, LCMAP_UPPERCASE, b, minSize, bufferB, 5000) == 0)
+ if (::LCMapString(invariantLocale, LCMAP_UPPERCASE, b, static_cast<int>(minSize), bufferB, 5000) == 0)
throw std::runtime_error("Error comparing strings! (LCMapString)");
rv = ::wmemcmp(bufferA, bufferB, minSize);
@@ -136,17 +142,17 @@ int compareFilenamesWin32(const wchar_t* a, const wchar_t* b, size_t sizeA, size
boost::scoped_array<wchar_t> bufferA(new wchar_t[minSize]);
boost::scoped_array<wchar_t> bufferB(new wchar_t[minSize]);
- if (::LCMapString(invariantLocale, LCMAP_UPPERCASE, a, minSize, bufferA.get(), minSize) == 0)
+ if (::LCMapString(invariantLocale, LCMAP_UPPERCASE, a, static_cast<int>(minSize), bufferA.get(), static_cast<int>(minSize)) == 0)
throw std::runtime_error("Error comparing strings! (LCMapString: FS)");
- if (::LCMapString(invariantLocale, LCMAP_UPPERCASE, b, minSize, bufferB.get(), minSize) == 0)
+ if (::LCMapString(invariantLocale, LCMAP_UPPERCASE, b, static_cast<int>(minSize), bufferB.get(), static_cast<int>(minSize)) == 0)
throw std::runtime_error("Error comparing strings! (LCMapString: FS)");
rv = ::wmemcmp(bufferA.get(), bufferB.get(), minSize);
}
return rv == 0 ?
- sizeA - sizeB :
+ static_cast<int>(sizeA - sizeB) :
rv;
}
@@ -166,18 +172,24 @@ int compareFilenamesWin32(const wchar_t* a, const wchar_t* b, size_t sizeA, size
#endif
-#ifdef FFS_WIN
-int Zstring::CmpNoCase(const DefaultChar* other) const
+int Zstring::cmpFileName(const Zstring& other) const
{
- return ::compareFilenamesWin32(c_str(), other, length(), ::wcslen(other)); //way faster than wxString::CmpNoCase()
+#ifdef FFS_WIN
+ return ::compareFilenamesWin32(c_str(), other.c_str(), length(), other.length()); //way faster than wxString::CmpNoCase()
+#elif defined FFS_LINUX
+ return this->compare(other);
+#endif
}
-int Zstring::CmpNoCase(const Zstring& other) const
+int Zstring::cmpFileName(const DefaultChar* other) const
{
- return ::compareFilenamesWin32(c_str(), other.c_str(), length(), other.length()); //way faster than wxString::CmpNoCase()
-}
+#ifdef FFS_WIN
+ return ::compareFilenamesWin32(c_str(), other, length(), ::wcslen(other)); //way faster than wxString::CmpNoCase()
+#elif defined FFS_LINUX
+ return this->compare(other);
#endif
+}
Zstring& Zstring::Replace(const DefaultChar* old, const DefaultChar* replacement, bool replaceAll)
@@ -223,15 +235,15 @@ bool matchesHelper(const DefaultChar* string, const DefaultChar* mask)
}
while (ch == DefaultChar('*') || ch == DefaultChar('?'));
//if match ends with '*':
- if (ch == DefaultChar(0))
+ if (ch == 0)
return true;
++mask;
while ((string = defaultStrFind(string, ch)) != NULL)
{
- if (matchesHelper(string + 1, mask))
- return true;
++string;
+ if (matchesHelper(string, mask))
+ return true;
}
return false;
@@ -349,7 +361,7 @@ Zstring& Zstring::MakeUpper()
reserve(thisLen); //make unshared
//use Windows' upper case conversion: faster than ::CharUpper()
- if (::LCMapString(invariantLocale, LCMAP_UPPERCASE, data(), thisLen, data(), thisLen) == 0)
+ if (::LCMapString(invariantLocale, LCMAP_UPPERCASE, data(), static_cast<int>(thisLen), data(), static_cast<int>(thisLen)) == 0)
throw std::runtime_error("Error converting to upper case! (LCMapString)");
return *this;
@@ -520,9 +532,8 @@ void Zstring::reserve(size_t capacityNeeded) //make unshared and check capacity
{
//allocate a new string
const size_t oldLength = length();
- assert(oldLength <= getCapacityToAllocate(capacityNeeded));
- StringDescriptor* newDescr = allocate(capacityNeeded);
+ StringDescriptor* newDescr = allocate(std::max(capacityNeeded, oldLength)); //reserve() must NEVER shrink the string
newDescr->length = oldLength;
::memcpy(reinterpret_cast<DefaultChar*>(newDescr + 1), c_str(), (oldLength + 1) * sizeof(DefaultChar)); //include NULL-termination
diff --git a/shared/zstring.h b/shared/zstring.h
index cb047e15..f87918bc 100644
--- a/shared/zstring.h
+++ b/shared/zstring.h
@@ -1,9 +1,9 @@
-/***************************************************************
- * Purpose: High performance string class
- * Author: ZenJu (zhnmju123@gmx.de)
- * Created: Jan. 2009
- **************************************************************/
-
+// **************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
#ifndef ZSTRING_H_INCLUDED
#define ZSTRING_H_INCLUDED
@@ -41,6 +41,10 @@ public:
operator const DefaultChar*() const; //implicit conversion to C string
+ //Compare filenames: Windows does NOT distinguish between upper/lower-case, while Linux DOES
+ int cmpFileName(const Zstring& other) const;
+ int cmpFileName(const DefaultChar* other) const;
+
//wxWidgets-like functions
bool StartsWith(const DefaultChar* begin) const;
bool StartsWith(DefaultChar begin) const;
@@ -50,12 +54,9 @@ public:
bool EndsWith(const Zstring& end) const;
Zstring& Truncate(size_t newLen);
#ifdef FFS_WIN
- int CmpNoCase(const DefaultChar* other) const;
- int CmpNoCase(const Zstring& other) const;
Zstring& MakeUpper();
#endif
- int Cmp(const DefaultChar* other) const;
- int Cmp(const Zstring& other) const;
+
Zstring& Replace(const DefaultChar* old, const DefaultChar* replacement, bool replaceAll = true);
Zstring AfterLast( DefaultChar ch) const; //returns the whole string if ch not found
Zstring BeforeLast( DefaultChar ch) const; //returns empty string if ch not found
@@ -83,6 +84,7 @@ public:
size_t size() const;
void reserve(size_t minCapacity);
Zstring& assign(const DefaultChar* source, size_t len);
+ void resize(size_t newSize, DefaultChar fillChar = 0 );
Zstring& operator=(const Zstring& source);
Zstring& operator=(const DefaultChar* source);
@@ -194,7 +196,7 @@ inline
bool defaultIsWhiteSpace(const char ch)
{
// some compilers (e.g. VC++ 6.0) return true for a call to isspace('\xEA') => exclude char(128) to char(255)
- return (static_cast<unsigned char>(ch) < 128) && isspace((unsigned char)ch) != 0;
+ return (static_cast<unsigned char>(ch) < 128) && isspace(static_cast<unsigned char>(ch)) != 0;
}
//inline
@@ -560,20 +562,6 @@ size_t Zstring::find(const DefaultChar ch, const size_t pos) const
inline
-int Zstring::Cmp(const DefaultChar* other) const
-{
- return compare(other);
-}
-
-
-inline
-int Zstring::Cmp(const Zstring& other) const
-{
- return defaultCompare(c_str(), other.c_str()); //overload using strcmp(char*, char*) should be fastest!
-}
-
-
-inline
bool Zstring::operator == (const Zstring& other) const
{
return length() != other.length() ? false : defaultCompare(c_str(), other.c_str()) == 0;
@@ -708,6 +696,39 @@ const Zstring Zstring::operator+(const DefaultChar ch) const
}
+inline
+void Zstring::resize(size_t newSize, DefaultChar fillChar)
+{
+ const size_t oldSize = length();
+ if (oldSize < newSize)
+ {
+ reserve(newSize); //make unshared and ensure capacity
+
+ //fill up...
+ DefaultChar* strPtr = data() + oldSize;
+ const DefaultChar* const strEnd = data() + newSize;
+ while (strPtr != strEnd)
+ {
+ *strPtr = fillChar;
+ ++strPtr;
+ }
+
+ data()[newSize] = 0;
+ descr->length = newSize;
+ }
+ else if (oldSize > newSize)
+ {
+ if (descr->refCount > 1)
+ *this = Zstring(c_str(), newSize); //no need to reserve() and copy the old string completely!
+ else //overwrite this string
+ {
+ data()[newSize] = 0;
+ descr->length = newSize;
+ }
+ }
+}
+
+
template <class T>
inline
Zstring numberToZstring(const T& number) //convert number to string the C++ way
bgstack15