olp-cpp-sdk
1.24.0
Loading...
Searching...
No Matches
olp-cpp-sdk-core
include
olp
core
thread
TaskContinuation.inl
1
/*
2
* Copyright (C) 2022 HERE Europe B.V.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
* SPDX-License-Identifier: Apache-2.0
17
* License-Filename: LICENSE
18
*/
19
20
#pragma once
21
22
namespace
olp
{
23
namespace
thread {
24
25
template
<
typename
Callable>
26
Continuation<internal::AsyncResultType<Callable>
>
TaskContinuation::Then
(
27
Callable task) {
28
using
NewResultType = internal::AsyncResultType<Callable>;
29
using
Function = internal::TypeToFunctionInput<NewResultType>;
30
return
{task_scheduler_, execution_context_,
31
std::function<void(ExecutionContext, Function)>(std::move(task))};
32
}
33
34
TaskContinuation::TaskContinuation
(std::shared_ptr<TaskScheduler> scheduler)
35
: task_scheduler_(std::move(scheduler)),
36
execution_context_(
ExecutionContext
()) {}
37
38
}
// namespace thread
39
}
// namespace olp
olp::thread::Continuation
A generic template for Continuation.
Definition
Continuation.h:140
olp::thread::ExecutionContext
Handles the cancellation and final mechanisms.
Definition
ExecutionContext.h:31
olp::thread::TaskContinuation::TaskContinuation
TaskContinuation(std::shared_ptr< thread::TaskScheduler > scheduler)
Creates the TaskContinuation instance.
Definition
TaskContinuation.inl:34
olp::thread::TaskContinuation::Then
Continuation< internal::AsyncResultType< Callable > > Then(Callable task)
Initializes the Continuation object.
Definition
TaskContinuation.inl:26
olp
Rules all the other namespaces.
Definition
AppleSignInProperties.h:24
Generated by
1.9.8