Rialto  0.1
Rialto media pipeline API
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 
38 namespace firebolt::rialto
39 {
40 class IControl;
41 
46 {
47 public:
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 
72 class IControl
73 {
74 public:
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_
firebolt::rialto::IControlFactory
IControl factory class, returns a concrete implementation of IControl.
Definition: IControl.h:45
firebolt::rialto::IControl::registerClient
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...
firebolt::rialto::IControl
The definition of the IControl interface.
Definition: IControl.h:72
IControlClient.h
firebolt::rialto::ApplicationState
ApplicationState
The application state.
Definition: ControlCommon.h:38
firebolt::rialto::IControlFactory::createControl
virtual std::shared_ptr< IControl > createControl() const =0
IControl factory method, returns a concrete implementation of IControl.
ControlCommon.h
firebolt::rialto::IControlFactory::createFactory
static std::shared_ptr< IControlFactory > createFactory()
Creates a IControlFactory instance.