deskflow/src/lib/arch/Arch.cpp

55 lines
925 B
C++
Raw Normal View History

2012-06-10 16:50:54 +00:00
/*
* 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
2012-06-10 16:50:54 +00:00
*/
#include "arch/Arch.h"
2012-06-10 16:50:54 +00:00
#include <thread>
#if SYSAPI_WIN32
#include "arch/win32/ArchMiscWindows.h"
#endif
2012-06-10 16:50:54 +00:00
//
2014-11-11 13:51:47 +00:00
// Arch
2012-06-10 16:50:54 +00:00
//
Arch *Arch::s_instance = nullptr;
2012-06-10 16:50:54 +00:00
Arch::Arch()
{
assert(s_instance == nullptr);
s_instance = this;
2012-06-10 16:50:54 +00:00
}
Arch::Arch(Arch *arch)
{
s_instance = arch;
}
void Arch::init()
{
ARCH_NETWORK::init();
2012-06-10 16:50:54 +00:00
#if SYSAPI_WIN32
ArchMiscWindows::init();
2012-06-10 16:50:54 +00:00
#endif
}
Arch *Arch::getInstance()
{
assert(s_instance != nullptr);
return s_instance;
2012-06-10 16:50:54 +00:00
}
void Arch::sleep(double timeout)
{
ARCH->testCancelThread();
if (timeout < 0.0)
return;
const auto msec = static_cast<uint64_t>(timeout * 1000);
std::this_thread::sleep_for(std::chrono::milliseconds(msec));
}