Files
rk35xx-android14/external/openscreen/platform/impl/scoped_wake_lock_linux.cc
T
hmz007 36ed224bac Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a)
Signed-off-by: hmz007 <hmz007@gmail.com>
Change-Id: Ib87fdbe7a0be7dc961af3500fe9ea4589a127f9f
2024-10-29 18:12:02 +08:00

59 lines
1.4 KiB
C++

// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "platform/impl/scoped_wake_lock_linux.h"
#include "platform/api/task_runner.h"
#include "platform/impl/platform_client_posix.h"
#include "util/osp_logging.h"
namespace openscreen {
int ScopedWakeLockLinux::reference_count_ = 0;
SerialDeletePtr<ScopedWakeLock> ScopedWakeLock::Create(
TaskRunner* task_runner) {
return SerialDeletePtr<ScopedWakeLock>(task_runner,
new ScopedWakeLockLinux());
}
namespace {
TaskRunner* GetTaskRunner() {
auto* const platform_client = PlatformClientPosix::GetInstance();
OSP_DCHECK(platform_client);
auto* const task_runner = platform_client->GetTaskRunner();
OSP_DCHECK(task_runner);
return task_runner;
}
} // namespace
ScopedWakeLockLinux::ScopedWakeLockLinux() : ScopedWakeLock() {
OSP_DCHECK(GetTaskRunner()->IsRunningOnTaskRunner());
if (reference_count_++ == 0) {
AcquireWakeLock();
}
}
ScopedWakeLockLinux::~ScopedWakeLockLinux() {
GetTaskRunner()->PostTask([] {
if (--reference_count_ == 0) {
ReleaseWakeLock();
}
});
}
// static
void ScopedWakeLockLinux::AcquireWakeLock() {
OSP_VLOG << "Acquired wake lock: currently a noop";
}
// static
void ScopedWakeLockLinux::ReleaseWakeLock() {
OSP_VLOG << "Released wake lock: currently a noop";
}
} // namespace openscreen