!14 新增进程间同步信号量;新增可索引目录默认值;

Merge pull request !14 from 纪笑旭/ok-upstream
This commit is contained in:
iaom 2022-10-12 01:27:46 +00:00 committed by Gitee
commit 88f34f9628
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
4 changed files with 16 additions and 4 deletions

View File

@ -2,15 +2,20 @@
#include <QDebug>
#include <QThread>
#include <QDir>
static std::once_flag flag;
static DirWatcher *global_intance = nullptr;
DirWatcher::DirWatcher(QObject *parent) : QObject(parent)
DirWatcher::DirWatcher(QObject *parent)
: QObject(parent), m_semaphore(QStringLiteral("ukui-search-dir-manager-dbus-register-sem"), 0, QSystemSemaphore::AccessMode::Open)
{
m_dbusInterface = new QDBusInterface("com.ukui.search.fileindex.service",
"/org/ukui/search/privateDirWatcher",
"org.ukui.search.fileindex");
m_semaphore.acquire();
m_semaphore.release();
if (!m_dbusInterface->isValid()) {
qCritical() << "Create privateDirWatcher Interface Failed Because: " << QDBusConnection::sessionBus().lastError();
return;
@ -42,7 +47,7 @@ QStringList DirWatcher::currentIndexableDir()
QDBusReply<QStringList> reply = m_dbusInterface->call("currentIndexableDir");
if (!reply.isValid()) {
qCritical() << "currentIndexableDir call filed!";
return QStringList();
return QStringList() << QString(QDir::homePath());
}
return reply.value();
}

View File

@ -4,7 +4,7 @@
#include <QObject>
#include <QDBusInterface>
#include <QDBusReply>
#include <QSystemSemaphore>
class DirWatcher : public QObject
{
@ -34,6 +34,8 @@ private:
~DirWatcher() = default;
QDBusInterface *m_dbusInterface = nullptr;
QSystemSemaphore m_semaphore;
};
#endif // MOUNTDISKLISTENER_H

View File

@ -5,7 +5,8 @@
#include <QDBusError>
#include <QDebug>
UkuiSearchDirManagerDbus::UkuiSearchDirManagerDbus(int &argc, char *argv[], const QString &applicationName) : QtSingleApplication (applicationName, argc, argv)
UkuiSearchDirManagerDbus::UkuiSearchDirManagerDbus(int &argc, char *argv[], const QString &applicationName)
: QtSingleApplication (applicationName, argc, argv), m_semaphore(QStringLiteral("ukui-search-dir-manager-dbus-register-sem"), 0, QSystemSemaphore::AccessMode::Create)
{
setQuitOnLastWindowClosed(false);
setApplicationVersion(QString("v%1").arg(VERSION));
@ -27,6 +28,7 @@ UkuiSearchDirManagerDbus::UkuiSearchDirManagerDbus(int &argc, char *argv[], cons
} else {
qWarning() << "Ukui search dir manager is running!";
}
m_semaphore.release();
//parse cmd
qDebug()<<"parse cmd";
auto message = this->arguments().join(' ').toUtf8();

View File

@ -1,6 +1,7 @@
#ifndef UKUISEARCHDIRWATCHERDBUS_H
#define UKUISEARCHDIRWATCHERDBUS_H
#include <QSystemSemaphore>
#include "qtsingleapplication.h"
class UkuiSearchDirManagerDbus : public QtSingleApplication
@ -10,6 +11,8 @@ public:
UkuiSearchDirManagerDbus(int &argc, char *argv[], const QString &applicationName = "ukui-search-service-dir-manager");
protected Q_SLOTS:
void parseCmd(QString msg, bool isPrimary);
private:
QSystemSemaphore m_semaphore;
};
#endif // UKUISEARCHDIRWATCHERDBUS_H