kodi
NetworkServices.h
1 /*
2  * Copyright (C) 2013-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "settings/lib/ISettingCallback.h"
12 
13 class CSettings;
14 #ifdef HAS_WEB_SERVER
15 class CWebServer;
16 class CHTTPImageHandler;
18 class CHTTPVfsHandler;
20 #ifdef HAS_WEB_INTERFACE
21 #ifdef HAS_PYTHON
22 class CHTTPPythonHandler;
23 #endif
26 #endif // HAS_WEB_INTERFACE
27 #endif // HAS_WEB_SERVER
28 
30 {
31 public:
33  ~CNetworkServices() override;
34 
35  bool OnSettingChanging(const std::shared_ptr<const CSetting>& setting) override;
36  void OnSettingChanged(const std::shared_ptr<const CSetting>& setting) override;
37  bool OnSettingUpdate(const std::shared_ptr<CSetting>& setting,
38  const char* oldSettingId,
39  const TiXmlNode* oldSettingNode) override;
40 
41  void Start();
42  void Stop(bool bWait);
43 
44  enum ESERVERS
45  {
46  ES_WEBSERVER = 1,
47  ES_AIRPLAYSERVER,
48  ES_JSONRPCSERVER,
49  ES_UPNPRENDERER,
50  ES_UPNPSERVER,
51  ES_EVENTSERVER,
52  ES_ZEROCONF,
53  ES_WSDISCOVERY,
54  };
55 
56  bool StartServer(enum ESERVERS server, bool start);
57 
58  bool StartWebserver();
59  bool IsWebserverRunning();
60  bool StopWebserver();
61 
62  bool StartAirPlayServer();
63  bool IsAirPlayServerRunning();
64  bool StopAirPlayServer(bool bWait);
65  bool StartAirTunesServer();
66  bool IsAirTunesServerRunning();
67  bool StopAirTunesServer(bool bWait);
68 
69  bool StartJSONRPCServer();
70  bool IsJSONRPCServerRunning();
71  bool StopJSONRPCServer(bool bWait);
72 
73  bool StartEventServer();
74  bool IsEventServerRunning();
75  bool StopEventServer(bool bWait, bool promptuser);
76  bool RefreshEventServer();
77 
78  bool StartUPnP();
79  bool StopUPnP(bool bWait);
80  bool StartUPnPClient();
81  bool IsUPnPClientRunning();
82  bool StopUPnPClient();
83  bool StartUPnPController();
84  bool IsUPnPControllerRunning();
85  bool StopUPnPController();
86  bool StartUPnPRenderer();
87  bool IsUPnPRendererRunning();
88  bool StopUPnPRenderer();
89  bool StartUPnPServer();
90  bool IsUPnPServerRunning();
91  bool StopUPnPServer();
92 
93  bool StartRss();
94  bool IsRssRunning();
95  bool StopRss();
96 
97  bool StartZeroconf();
98  bool IsZeroconfRunning();
99  bool StopZeroconf();
100 
101  bool StartWSDiscovery();
102  bool IsWSDiscoveryRunning();
103  bool StopWSDiscovery();
104 
105 private:
107  CNetworkServices const& operator=(CNetworkServices const&);
108 
109  bool ValidatePort(int port);
110 
111  // Construction parameters
112  std::shared_ptr<CSettings> m_settings;
113 
114  // Network services
115 #ifdef HAS_WEB_SERVER
116  CWebServer& m_webserver;
117  // Handlers
118  CHTTPImageHandler& m_httpImageHandler;
119  CHTTPImageTransformationHandler& m_httpImageTransformationHandler;
120  CHTTPVfsHandler& m_httpVfsHandler;
121  CHTTPJsonRpcHandler& m_httpJsonRpcHandler;
122 #ifdef HAS_WEB_INTERFACE
123 #ifdef HAS_PYTHON
124  CHTTPPythonHandler& m_httpPythonHandler;
125 #endif
126  CHTTPWebinterfaceHandler& m_httpWebinterfaceHandler;
127  CHTTPWebinterfaceAddonsHandler& m_httpWebinterfaceAddonsHandler;
128 #endif
129 #endif
130 };
Definition: HTTPImageTransformationHandler.h:17
Definition: WebServer.h:25
Wrapper around CSettingsManager responsible for properly setting up the settings manager and register...
Definition: Settings.h:27
Definition: ISettingCallback.h:16
Definition: HTTPPythonHandler.h:16
Definition: HTTPJsonRpcHandler.h:17
bool OnSettingChanging(const std::shared_ptr< const CSetting > &setting) override
The value of the given setting is being changed.
Definition: NetworkServices.cpp:179
void OnSettingChanged(const std::shared_ptr< const CSetting > &setting) override
The value of the given setting has changed.
Definition: NetworkServices.cpp:497
Definition: HTTPWebinterfaceHandler.h:16
bool OnSettingUpdate(const std::shared_ptr< CSetting > &setting, const char *oldSettingId, const TiXmlNode *oldSettingNode) override
The given setting needs to be updated.
Definition: NetworkServices.cpp:520
Definition: HTTPWebinterfaceAddonsHandler.h:15
Definition: HTTPImageHandler.h:15
Definition: NetworkServices.h:29
Definition: HTTPVfsHandler.h:15