From 8b5a61f07f668b20b64c784ad6f0331f1e0f6cb3 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Sat, 22 Mar 2025 09:03:34 -0400 Subject: [PATCH] refactor: remove ArchFile, move only use of getInstallDir to MSWindowsWatchdog --- src/lib/arch/Arch.h | 3 -- src/lib/arch/CMakeLists.txt | 5 ---- src/lib/arch/IArchFile.h | 29 ------------------ src/lib/arch/unix/ArchFileUnix.cpp | 41 -------------------------- src/lib/arch/unix/ArchFileUnix.h | 23 --------------- src/lib/arch/win32/ArchFileWindows.cpp | 39 ------------------------ src/lib/arch/win32/ArchFileWindows.h | 23 --------------- src/lib/platform/MSWindowsWatchdog.cpp | 10 ++++++- 8 files changed, 9 insertions(+), 164 deletions(-) delete mode 100644 src/lib/arch/IArchFile.h delete mode 100644 src/lib/arch/unix/ArchFileUnix.cpp delete mode 100644 src/lib/arch/unix/ArchFileUnix.h delete mode 100644 src/lib/arch/win32/ArchFileWindows.cpp delete mode 100644 src/lib/arch/win32/ArchFileWindows.h diff --git a/src/lib/arch/Arch.h b/src/lib/arch/Arch.h index 47af8c305..d9437b949 100644 --- a/src/lib/arch/Arch.h +++ b/src/lib/arch/Arch.h @@ -30,7 +30,6 @@ #include "arch/win32/ArchConsoleWindows.h" #include "arch/win32/ArchDaemonWindows.h" -#include "arch/win32/ArchFileWindows.h" #include "arch/win32/ArchLogWindows.h" #include "arch/win32/ArchMultithreadWindows.h" #include "arch/win32/ArchNetworkWinsock.h" @@ -42,7 +41,6 @@ #include "arch/unix/ArchConsoleUnix.h" #include "arch/unix/ArchDaemonUnix.h" -#include "arch/unix/ArchFileUnix.h" #include "arch/unix/ArchLogUnix.h" #include "arch/unix/ArchNetworkBSD.h" #include "arch/unix/ArchSleepUnix.h" @@ -73,7 +71,6 @@ typically at the beginning of \c main(). */ class Arch : public ARCH_CONSOLE, public ARCH_DAEMON, - public ARCH_FILE, public ARCH_LOG, public ARCH_MULTITHREAD, public ARCH_NETWORK, diff --git a/src/lib/arch/CMakeLists.txt b/src/lib/arch/CMakeLists.txt index a45f07392..0daaf72f5 100644 --- a/src/lib/arch/CMakeLists.txt +++ b/src/lib/arch/CMakeLists.txt @@ -10,8 +10,6 @@ if(WIN32) win32/ArchConsoleWindows.h win32/ArchDaemonWindows.cpp win32/ArchDaemonWindows.h - win32/ArchFileWindows.cpp - win32/ArchFileWindows.h win32/ArchLogWindows.cpp win32/ArchLogWindows.h win32/ArchMiscWindows.cpp @@ -36,8 +34,6 @@ elseif(UNIX) unix/ArchConsoleUnix.h unix/ArchDaemonUnix.cpp unix/ArchDaemonUnix.h - unix/ArchFileUnix.cpp - unix/ArchFileUnix.h unix/ArchLogUnix.cpp unix/ArchLogUnix.h unix/ArchMultithreadPosix.cpp @@ -64,7 +60,6 @@ add_library(arch STATIC ${PLATFORM_CODE} ArchDaemonNone.h IArchConsole.h IArchDaemon.h - IArchFile.h IArchLog.h IArchMultithread.h IArchNetwork.h diff --git a/src/lib/arch/IArchFile.h b/src/lib/arch/IArchFile.h deleted file mode 100644 index 46f9a48b4..000000000 --- a/src/lib/arch/IArchFile.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd. - * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman - * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception - */ - -#pragma once - -#include "common/IInterface.h" -#include - -//! Interface for architecture dependent file system operations -/*! -This interface defines the file system operations required by -deskflow. Each architecture must implement this interface. -*/ -class IArchFile : public IInterface -{ -public: - //! @name manipulators - //@{ - - //! Get installed directory - /*! - Returns the directory in which Deskflow is installed. - */ - virtual std::string getInstalledDirectory() = 0; -}; diff --git a/src/lib/arch/unix/ArchFileUnix.cpp b/src/lib/arch/unix/ArchFileUnix.cpp deleted file mode 100644 index 74ac4a874..000000000 --- a/src/lib/arch/unix/ArchFileUnix.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd. - * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman - * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception - */ - -#include "arch/unix/ArchFileUnix.h" - -#include "common/Constants.h" -#include -#include -#include -#include -#include -#include - -// -// ArchFileUnix -// - -ArchFileUnix::ArchFileUnix() -{ - // do nothing -} - -ArchFileUnix::~ArchFileUnix() -{ - // do nothing -} - -std::string ArchFileUnix::getInstalledDirectory() -{ -#if WINAPI_XWINDOWS - return "/usr/bin"; -#else - std::string rtn = "/Applications/"; - rtn.append(kAppName).append(".app/Contents/MacOS"); - return rtn; -#endif -} diff --git a/src/lib/arch/unix/ArchFileUnix.h b/src/lib/arch/unix/ArchFileUnix.h deleted file mode 100644 index 78b20c860..000000000 --- a/src/lib/arch/unix/ArchFileUnix.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd. - * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman - * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception - */ - -#pragma once - -#include "arch/IArchFile.h" - -#define ARCH_FILE ArchFileUnix - -//! Unix implementation of IArchFile -class ArchFileUnix : public IArchFile -{ -public: - ArchFileUnix(); - virtual ~ArchFileUnix(); - - // IArchFile overrides - virtual std::string getInstalledDirectory(); -}; diff --git a/src/lib/arch/win32/ArchFileWindows.cpp b/src/lib/arch/win32/ArchFileWindows.cpp deleted file mode 100644 index d74894129..000000000 --- a/src/lib/arch/win32/ArchFileWindows.cpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd. - * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman - * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception - */ - -#include "arch/win32/ArchFileWindows.h" - -#define WIN32_LEAN_AND_MEAN -#include -#include -#include -#include - -// -// ArchFileWindows -// - -ArchFileWindows::ArchFileWindows() -{ - // do nothing -} - -ArchFileWindows::~ArchFileWindows() -{ - // do nothing -} - -std::string ArchFileWindows::getInstalledDirectory() -{ - char fileNameBuffer[MAX_PATH]; - GetModuleFileName(NULL, fileNameBuffer, MAX_PATH); - std::string fileName(fileNameBuffer); - size_t lastSlash = fileName.find_last_of("\\"); - fileName = fileName.substr(0, lastSlash); - - return fileName; -} diff --git a/src/lib/arch/win32/ArchFileWindows.h b/src/lib/arch/win32/ArchFileWindows.h deleted file mode 100644 index 5a7304562..000000000 --- a/src/lib/arch/win32/ArchFileWindows.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd. - * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman - * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception - */ - -#pragma once - -#include "arch/IArchFile.h" - -#define ARCH_FILE ArchFileWindows - -//! Win32 implementation of IArchFile -class ArchFileWindows : public IArchFile -{ -public: - ArchFileWindows(); - virtual ~ArchFileWindows(); - - // IArchFile overrides - virtual std::string getInstalledDirectory(); -}; diff --git a/src/lib/platform/MSWindowsWatchdog.cpp b/src/lib/platform/MSWindowsWatchdog.cpp index b6a18e362..d6af4f036 100644 --- a/src/lib/platform/MSWindowsWatchdog.cpp +++ b/src/lib/platform/MSWindowsWatchdog.cpp @@ -21,6 +21,9 @@ #define WIN32_LEAN_AND_MEAN #include +#include +#include +#include // // Free functions @@ -436,7 +439,12 @@ void MSWindowsWatchdog::shutdownExistingProcesses() std::string MSWindowsWatchdog::runActiveDesktopUtility() { - const auto installDir = ARCH->getInstalledDirectory(); + char fileNameBuffer[MAX_PATH]; + GetModuleFileName(NULL, fileNameBuffer, MAX_PATH); + std::string fileName(fileNameBuffer); + size_t lastSlash = fileName.find_last_of("\\"); + const auto installDir = fileName.substr(0, lastSlash); + const auto coreBinPath = installDir + "\\deskflow-server.exe"; std::string utilityCommand = "\"" + coreBinPath + "\" --active-desktop";