refactor: Use mutex to protect m_open / m_time in EiClipboard
This commit is contained in:
parent
0042b43bac
commit
698ebc30b3
2 changed files with 8 additions and 0 deletions
|
|
@ -18,6 +18,7 @@ EiClipboard::EiClipboard(ClipboardID id) : m_id(id)
|
|||
|
||||
bool EiClipboard::empty()
|
||||
{
|
||||
std::scoped_lock lock{m_mutex};
|
||||
if (!m_open) {
|
||||
LOG_WARN("cannot empty clipboard, not open");
|
||||
return false;
|
||||
|
|
@ -40,6 +41,7 @@ bool EiClipboard::empty()
|
|||
|
||||
void EiClipboard::add(Format format, const std::string &data)
|
||||
{
|
||||
std::scoped_lock lock{m_mutex};
|
||||
if (!m_open) {
|
||||
LOG_WARN("cannot add to clipboard, not open");
|
||||
return;
|
||||
|
|
@ -57,6 +59,7 @@ void EiClipboard::add(Format format, const std::string &data)
|
|||
|
||||
bool EiClipboard::open(Time time) const
|
||||
{
|
||||
std::scoped_lock lock{m_mutex};
|
||||
if (m_open) {
|
||||
LOG_DEBUG("skipping clipboard open, already open");
|
||||
return true;
|
||||
|
|
@ -70,6 +73,7 @@ bool EiClipboard::open(Time time) const
|
|||
|
||||
void EiClipboard::close() const
|
||||
{
|
||||
std::scoped_lock lock{m_mutex};
|
||||
if (!m_open) {
|
||||
LOG_WARN("clipboard is not open");
|
||||
}
|
||||
|
|
@ -83,6 +87,7 @@ EiClipboard::Time EiClipboard::getTime() const
|
|||
|
||||
bool EiClipboard::has(Format format) const
|
||||
{
|
||||
std::scoped_lock lock{m_mutex};
|
||||
if (!m_open) {
|
||||
LOG_WARN("cannot check for clipboard format, not open");
|
||||
return false;
|
||||
|
|
@ -92,6 +97,7 @@ bool EiClipboard::has(Format format) const
|
|||
|
||||
std::string EiClipboard::get(Format format) const
|
||||
{
|
||||
std::scoped_lock lock{m_mutex};
|
||||
if (!m_open) {
|
||||
LOG_WARN("cannot get clipboard format, not open");
|
||||
return "";
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include "deskflow/ClipboardTypes.h"
|
||||
#include "deskflow/IClipboard.h"
|
||||
#include <mutex>
|
||||
|
||||
namespace deskflow {
|
||||
|
||||
|
|
@ -43,6 +44,7 @@ private:
|
|||
ClipboardID m_id;
|
||||
mutable bool m_open = false;
|
||||
mutable Time m_time = 0;
|
||||
mutable std::mutex m_mutex;
|
||||
bool m_owner = false;
|
||||
Time m_timeOwned = 0;
|
||||
bool m_added[static_cast<int>(Format::TotalFormats)] = {false, false, false};
|
||||
|
|
|
|||
Loading…
Reference in a new issue