Pigweed
C/C++ API Reference
Home
Modules
Loading...
Searching...
No Matches
lease.h
1
// Copyright 2025 The Pigweed Authors
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
4
// use this file except in compliance with the License. You may obtain a copy of
5
// the License at
6
//
7
// https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
// License for the specific language governing permissions and limitations under
13
// the License.
14
15
#pragma once
16
17
#include "pw_bluetooth_sapphire/config.h"
18
#include "pw_function/function.h"
19
#include "pw_result/result.h"
20
24
#define PW_SAPPHIRE_ACQUIRE_LEASE(lease_provider, name) \
25
lease_provider.Acquire(PW_SAPPHIRE_LEASE_TOKEN_EXPR(name))
26
27
namespace
pw::bluetooth_sapphire
{
28
30
33
class
Lease
final {
34
public
:
35
Lease
() =
default
;
36
Lease
(
pw::Function
<
void
()> unlock_fn) : unlock_fn_(std::move(unlock_fn)) {}
37
Lease
(
Lease
&&) =
default
;
38
Lease
& operator=(
Lease
&&) =
default
;
39
Lease
(
const
Lease
&) =
delete
;
40
Lease
& operator=(
const
Lease
&) =
delete
;
41
42
~Lease
() {
43
if
(unlock_fn_) {
44
unlock_fn_();
45
}
46
}
47
48
private
:
49
pw::Function
<void()> unlock_fn_ =
nullptr
;
50
};
51
54
class
LeaseProvider
{
55
public
:
56
virtual
~LeaseProvider
() =
default
;
57
73
virtual
Result<Lease>
Acquire
(PW_SAPPHIRE_LEASE_TOKEN_TYPE name) = 0;
74
};
75
76
}
// namespace pw::bluetooth_sapphire
pw::Result
Definition:
poll.h:25
pw::bluetooth_sapphire::Lease
Definition:
lease.h:33
pw::bluetooth_sapphire::LeaseProvider
Definition:
lease.h:54
pw::bluetooth_sapphire::LeaseProvider::Acquire
virtual Result< Lease > Acquire(PW_SAPPHIRE_LEASE_TOKEN_TYPE name)=0
pw::Function
fit::function_impl< function_internal::config::kInlineCallableSize, !function_internal::config::kEnableDynamicAllocation, FunctionType, PW_FUNCTION_DEFAULT_ALLOCATOR_TYPE > Function
Definition:
function.h:73
pw::bluetooth_sapphire
Dual-mode Bluetooth host stack.
Definition:
central.h:23
pw_bluetooth_sapphire
public
pw_bluetooth_sapphire
lease.h
Generated by
1.9.6