$darkmode
cloe_fwd.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2023 Robert Bosch GmbH
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  */
24 #pragma once
25 
26 #include <chrono> // for nanoseconds
27 #include <functional> // for function<>
28 #include <memory> // for unique_ptr<>, shared_ptr<>
29 
30 #include <spdlog/fwd.h> // for spdlog namespace
31 #include <fable/fable_fwd.hpp> // for fable namespace
32 
33 namespace cloe {
34 
35 // from core/duration.hpp
36 using Duration = std::chrono::nanoseconds;
37 
38 // from core/error.hpp
39 class Error;
40 class ConcludedError;
41 
42 // from core/logger.hpp
43 using Logger = std::shared_ptr<spdlog::logger>;
44 using LogLevel = spdlog::level::level_enum;
45 
46 // from entity.hpp
47 class Entity;
48 
49 // from sync.hpp
50 class Sync;
51 
52 // from handler.hpp
53 class Request;
54 class Response;
55 enum class ContentType;
56 enum class RequestMethod;
57 enum class StatusCode;
58 using Handler = std::function<void(const Request&, Response&)>;
59 
60 // from trigger.hpp
61 class Trigger;
62 using TriggerPtr = std::unique_ptr<Trigger>;
63 class TriggerError;
64 template <typename T>
65 class TriggerFactory;
66 class TriggerRegistrar;
67 
68 class Callback;
69 enum class Source;
70 
71 class Event;
72 using EventPtr = std::unique_ptr<Event>;
74 
75 class Action;
76 using ActionPtr = std::unique_ptr<Action>;
78 
79 // from registrar.hpp
80 enum class HandlerType;
81 class Registrar;
82 
83 // from model.hpp
84 class Model;
85 class ModelFactory;
86 
87 // from component.hpp
88 class Component;
89 class ComponentFactory;
90 
91 // from vehicle.hpp
92 class Vehicle;
93 
94 // from controller.hpp
95 class Controller;
96 class ControllerFactory;
97 
98 // from simulator.hpp
99 class Simulator;
100 class SimulatorFactory;
101 
102 } // namespace cloe
Definition: trigger.hpp:607
Definition: trigger.hpp:533
Definition: component.hpp:209
Definition: component.hpp:143
Definition: error.hpp:80
Definition: controller.hpp:164
Definition: controller.hpp:126
Definition: entity.hpp:50
Definition: error.hpp:35
Definition: trigger.hpp:478
Definition: model.hpp:403
Definition: model.hpp:203
Definition: registrar.hpp:116
Definition: handler.hpp:94
Definition: handler.hpp:196
Definition: simulator.hpp:199
Definition: simulator.hpp:139
Definition: sync.hpp:34
Definition: trigger.hpp:60
Definition: trigger.hpp:290
Definition: trigger.hpp:433
Definition: trigger.hpp:396
Definition: vehicle.hpp:106
std::function< void(const Request &, Response &)> Handler
Definition: cloe_fwd.hpp:58
std::chrono::nanoseconds Duration
Definition: cloe_fwd.hpp:36
StatusCode
Definition: handler.hpp:161
RequestMethod
Definition: handler.hpp:54
ContentType
Definition: handler.hpp:71
HandlerType
Definition: registrar.hpp:83
Source
Definition: trigger.hpp:351