Line data Source code
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 2023 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_SERVER_APPLICATION_SESSION_SERVER_H_
21 : #define FIREBOLT_RIALTO_SERVER_APPLICATION_SESSION_SERVER_H_
22 :
23 : #include "CdmService.h"
24 : #include "ControlService.h"
25 : #include "IApplicationSessionServer.h"
26 : #include "IControlServerInternal.h"
27 : #include "IHeartbeatProcedure.h"
28 : #include "IMediaCapabilitiesServerInternal.h"
29 : #include "IMediaKeysCapabilities.h"
30 : #include "IMediaKeysServerInternal.h"
31 : #include "IMediaPipelineCapabilities.h"
32 : #include "IMediaPipelineServerInternal.h"
33 : #include "ISharedMemoryBuffer.h"
34 : #include "IWebAudioPlayerServerInternal.h"
35 : #include "IpcFactory.h"
36 : #include "PlaybackService.h"
37 : #include "SessionServerManager.h"
38 : #include <memory>
39 :
40 : namespace firebolt::rialto::server
41 : {
42 : class ApplicationSessionServerFactory : public IApplicationSessionServerFactory
43 : {
44 : public:
45 0 : ApplicationSessionServerFactory() = default;
46 0 : ~ApplicationSessionServerFactory() override = default;
47 :
48 : std::unique_ptr<IApplicationSessionServer> createApplicationSessionServer() const override;
49 : };
50 :
51 : class ApplicationSessionServer : public IApplicationSessionServer
52 : {
53 : public:
54 0 : ApplicationSessionServer() = default;
55 0 : ~ApplicationSessionServer() override = default;
56 :
57 : bool init(int argc, char *argv[]) override;
58 : void startService() override;
59 :
60 : private:
61 : firebolt::rialto::server::ipc::IpcFactory m_ipcFactory;
62 :
63 : firebolt::rialto::server::service::ControlService m_controlService{
64 : firebolt::rialto::server::IControlServerInternalFactory::createFactory()};
65 : firebolt::rialto::server::service::CdmService
66 : m_cdmService{firebolt::rialto::server::IMediaKeysServerInternalFactory::createFactory(),
67 : firebolt::rialto::IMediaKeysCapabilitiesFactory::createFactory()};
68 : firebolt::rialto::server::service::PlaybackService
69 : m_playbackService{firebolt::rialto::server::IMediaPipelineServerInternalFactory::createFactory(),
70 : firebolt::rialto::IMediaPipelineCapabilitiesFactory::createFactory(),
71 : firebolt::rialto::server::IWebAudioPlayerServerInternalFactory::createFactory(),
72 : firebolt::rialto::server::ISharedMemoryBufferFactory::createFactory(),
73 : m_cdmService,
74 : firebolt::rialto::server::IMediaCapabilitiesServerInternalFactory::createFactory()};
75 : firebolt::rialto::server::service::SessionServerManager
76 : m_serviceManager{m_ipcFactory, m_playbackService, m_cdmService, m_controlService,
77 : firebolt::rialto::server::IHeartbeatProcedureFactory::createFactory()};
78 : };
79 : } // namespace firebolt::rialto::server
80 :
81 : #endif // FIREBOLT_RIALTO_SERVER_APPLICATION_SESSION_SERVER_H_
|