#include <QObject>
+#include "fileproviderdomainmanager.h"
#include "fileprovidersocketserver.h"
namespace OCC {
private:
explicit FileProvider(QObject * const parent = nullptr);
- FileProviderSocketServer _socketServer;
+ std::unique_ptr<FileProviderDomainManager> _domainManager;
+ std::unique_ptr<FileProviderSocketServer> _socketServer;
};
} // namespace Mac
#include <QLoggingCategory>
#include "fileprovider.h"
-#include "fileproviderdomainmanager.h"
namespace OCC {
FileProvider::FileProvider(QObject * const parent)
: QObject(parent)
{
- const auto domainManager = FileProviderDomainManager::instance();
- if (domainManager) {
+ if (!fileProviderAvailable()) {
+ qCDebug(lcMacFileProvider) << "File provider system is not available on this version of macOS.";
+ return;
+ }
+
+ qCDebug(lcMacFileProvider) << "Initialising file provider domain manager.";
+ _domainManager = std::make_unique<FileProviderDomainManager>(new FileProviderDomainManager(this));
+
+ if (_domainManager) {
qCDebug(lcMacFileProvider()) << "Initialized file provider domain manager";
}
+
+ qCDebug(lcMacFileProvider) << "Initialising file provider socket server.";
+ _socketServer = std::make_unique<FileProviderSocketServer>(new FileProviderSocketServer(this));
+
+ if (_socketServer) {
+ qCDebug(lcMacFileProvider) << "Initialised file provider socket server.";
+ }
}
FileProvider *FileProvider::instance()
{
+ if (!fileProviderAvailable()) {
+ return nullptr;
+ }
+
if (!_instance) {
_instance = new FileProvider();
}
Q_OBJECT
public:
- static FileProviderDomainManager *instance();
+ explicit FileProviderDomainManager(QObject * const parent = nullptr);
~FileProviderDomainManager() override;
private slots:
// Starts regular enumerator signalling if no push notifications available
QTimer _enumeratorSignallingTimer;
- explicit FileProviderDomainManager(QObject * const parent = nullptr);
- static FileProviderDomainManager *_instance;
class Private;
std::unique_ptr<Private> d;
};
namespace Mac {
-FileProviderDomainManager *FileProviderDomainManager::_instance = nullptr;
-
class FileProviderDomainManager::Private {
public:
});
}
-FileProviderDomainManager *FileProviderDomainManager::instance()
-{
- if (!_instance) {
- _instance = new FileProviderDomainManager();
- }
- return _instance;
-}
-
FileProviderDomainManager::~FileProviderDomainManager() = default;
void FileProviderDomainManager::setupFileProviderDomains()