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