From 848f53a268449e6c581737fe2930bc75967e97ce Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Tue, 3 Jan 2012 21:31:08 +0100 Subject: Remove OS X FSEvents watcher. Per QTBUG-9249, this backend is buggy, and not recommended for use by Apple. Change-Id: I72ce88006a4badbbfdd825717020078778d16a36 Reviewed-by: Sergio Ahumada --- src/corelib/io/qfilesystemwatcher_fsevents_p.h | 132 ------------------------- 1 file changed, 132 deletions(-) delete mode 100644 src/corelib/io/qfilesystemwatcher_fsevents_p.h (limited to 'src/corelib/io/qfilesystemwatcher_fsevents_p.h') diff --git a/src/corelib/io/qfilesystemwatcher_fsevents_p.h b/src/corelib/io/qfilesystemwatcher_fsevents_p.h deleted file mode 100644 index 311a5b55e3..0000000000 --- a/src/corelib/io/qfilesystemwatcher_fsevents_p.h +++ /dev/null @@ -1,132 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -#ifndef FILEWATCHER_FSEVENTS_P_H -#define FILEWATCHER_FSEVENTS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists for the convenience -// of the QLibrary class. This header file may change from -// version to version without notice, or even be removed. -// -// We mean it. -// - -#include "qfilesystemwatcher_p.h" - -#ifndef QT_NO_FILESYSTEMWATCHER - -#include -#include -#include -#include -#include -#include -#include - -typedef struct __FSEventStream *FSEventStreamRef; -typedef const struct __FSEventStream *ConstFSEventStreamRef; -typedef const struct __CFArray *CFArrayRef; -typedef UInt32 FSEventStreamEventFlags; -typedef uint64_t FSEventStreamEventId; - -QT_BEGIN_NAMESPACE - -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 -// Yes, I use a stat element here. QFileInfo requires too much knowledge about implementation -// details to be used as a long-standing record. Since I'm going to have to store this information, I can -// do the stat myself too. -struct PathInfo { - PathInfo(const QString &path, const QByteArray &absPath) - : originalPath(path), absolutePath(absPath) {} - QString originalPath; // The path we need to emit - QByteArray absolutePath; // The path we need to stat. - struct ::stat savedInfo; // All the info for the path so we can compare it. -}; -typedef QLinkedList PathInfoList; -typedef QHash PathHash; -#endif - -class QFSEventsFileSystemWatcherEngine : public QFileSystemWatcherEngine -{ - Q_OBJECT -public: - ~QFSEventsFileSystemWatcherEngine(); - - static QFSEventsFileSystemWatcherEngine *create(); - - QStringList addPaths(const QStringList &paths, QStringList *files, QStringList *directories); - QStringList removePaths(const QStringList &paths, QStringList *files, QStringList *directories); - - void stop(); - -private: - QFSEventsFileSystemWatcherEngine(); - void warmUpFSEvents(); - void updateFiles(); - - static void fseventsCallback(ConstFSEventStreamRef streamRef, void *clientCallBackInfo, size_t numEvents, - void *eventPaths, const FSEventStreamEventFlags eventFlags[], - const FSEventStreamEventId eventIds[]); - void run(); - FSEventStreamRef fsStream; - CFArrayRef pathsToWatch; - CFRunLoopRef threadsRunLoop; - QMutex mutex; - QWaitCondition waitCondition; - QWaitCondition waitForStop; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - PathHash filePathInfoHash; - PathHash dirPathInfoHash; - void updateHash(PathHash &pathHash); - void updateList(PathInfoList &list, bool directory, bool emitSignals); -#endif -}; - -#endif //QT_NO_FILESYSTEMWATCHER - -#endif - -QT_END_NAMESPACE -- cgit v1.2.3