Rialto 0.1
Rialto media pipeline API
Loading...
Searching...
No Matches
IControl.h
Go to the documentation of this file.
1/*
2 * If not stated otherwise in this file or this component's LICENSE file the
3 * following copyright and licenses apply:
4 *
5 * Copyright 2022 Sky UK
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 */
19
20#ifndef FIREBOLT_RIALTO_I_CONTROL_H_
21#define FIREBOLT_RIALTO_I_CONTROL_H_
22
32#include <memory>
33#include <stdint.h>
34
35#include "ControlCommon.h"
36#include "IControlClient.h"
37
38namespace firebolt::rialto
39{
40class IControl;
41
46{
47public:
48 IControlFactory() = default;
49 virtual ~IControlFactory() = default;
50
56 static std::shared_ptr<IControlFactory> createFactory();
57
63 virtual std::shared_ptr<IControl> createControl() const = 0;
64};
65
73{
74public:
75 IControl() = default;
76 virtual ~IControl() = default;
77
78 IControl(const IControl &) = delete;
79 IControl &operator=(const IControl &) = delete;
80 IControl(IControl &&) = delete;
81 IControl &operator=(IControl &&) = delete;
82
94 virtual bool registerClient(std::weak_ptr<IControlClient> client, ApplicationState &appState) = 0;
95};
96
97}; // namespace firebolt::rialto
98
99#endif // FIREBOLT_RIALTO_I_CONTROL_H_
ApplicationState
The application state.
Definition ControlCommon.h:39
IControl factory class, returns a concrete implementation of IControl.
Definition IControl.h:46
virtual std::shared_ptr< IControl > createControl() const =0
IControl factory method, returns a concrete implementation of IControl.
static std::shared_ptr< IControlFactory > createFactory()
Creates a IControlFactory instance.
The definition of the IControl interface.
Definition IControl.h:73
virtual bool registerClient(std::weak_ptr< IControlClient > client, ApplicationState &appState)=0
Register new IControlClient. This method will hold a shared_ptr to the client until the destruction o...