olp-cpp-sdk
1.22.0
olp-cpp-sdk-core
include
olp
core
thread
TaskContinuation.h
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
#include <deque>
23
#include <functional>
24
#include <memory>
25
26
#include <olp/core/client/ApiError.h>
27
#include <olp/core/client/ApiResponse.h>
28
#include <olp/core/client/TaskContext.h>
29
#include <olp/core/thread/Continuation.h>
30
#include <olp/core/thread/ExecutionContext.h>
31
#include <olp/core/thread/TypeHelpers.h>
32
33
namespace
olp
{
34
namespace
thread {
35
36
class
TaskScheduler;
37
39
class
CORE_API
TaskContinuation
final {
40
public
:
46
explicit
TaskContinuation
(std::shared_ptr<thread::TaskScheduler> scheduler);
47
56
template
<
typename
Callable>
57
Continuation<internal::AsyncResultType<Callable>
> Then(Callable task);
58
59
private
:
60
std::shared_ptr<thread::TaskScheduler> task_scheduler_;
61
ExecutionContext
execution_context_;
62
};
63
64
}
// namespace thread
65
}
// namespace olp
66
67
#include "TaskContinuation.inl"
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
Creates a chain of tasks for an asynchronous execution.
Definition:
TaskContinuation.h:39
olp
Rules all the other namespaces.
Definition:
AppleSignInProperties.h:24
Generated by
1.9.1