kodi
SsdpProxy.h
1 /*****************************************************************
2 |
3 | Platinum - Ssdp Proxy tool
4 |
5 | Copyright (c) 2004-2008, Plutinosoft, LLC.
6 | All rights reserved.
7 | http://www.plutinosoft.com
8 |
9 | This program is free software; you can redistribute it and/or
10 | modify it under the terms of the GNU General Public License
11 | as published by the Free Software Foundation; either version 2
12 | of the License, or (at your option) any later version.
13 |
14 | OEMs, ISVs, VARs and other distributors that combine and
15 | distribute commercially licensed software with Platinum software
16 | and do not wish to distribute the source code for the commercially
17 | licensed software under version 2, or (at your option) any later
18 | version, of the GNU General Public License (the "GPL") must enter
19 | into a commercial license agreement with Plutinosoft, LLC.
20 |
21 | This program is distributed in the hope that it will be useful,
22 | but WITHOUT ANY WARRANTY; without even the implied warranty of
23 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 | GNU General Public License for more details.
25 |
26 | You should have received a copy of the GNU General Public License
27 | along with this program; see the file LICENSE.txt. If not, write to
28 | the Free Software Foundation, Inc.,
29 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
30 | http://www.gnu.org/licenses/gpl-2.0.html
31 |
32 ****************************************************************/
33 
34 #ifndef _PLT_SSDP_PROXY_H_
35 #define _PLT_SSDP_PROXY_H_
36 
37 /*----------------------------------------------------------------------
38 | includes
39 +---------------------------------------------------------------------*/
40 #include "Neptune.h"
41 #include "PltTaskManager.h"
42 #include "PltSsdp.h"
43 
44 /*----------------------------------------------------------------------
45 | forward declarations
46 +---------------------------------------------------------------------*/
48 
49 /*----------------------------------------------------------------------
50 | PLT_SsdpProxy class
51 +---------------------------------------------------------------------*/
54 {
55 public:
56  PLT_SsdpProxy();
57  ~PLT_SsdpProxy();
58 
59  NPT_Result Start(NPT_UInt32 port);
60 
61  // PLT_SsdpPacketListener method
62  virtual NPT_Result OnSsdpPacket(NPT_HttpRequest& request,
63  const NPT_HttpRequestContext& context);
64 
65  // PLT_SsdpUnicastListener redirect
66  virtual NPT_Result OnUnicastSsdpPacket(NPT_HttpRequest& request,
67  const NPT_HttpRequestContext& context);
68 
69 private:
70  PLT_SsdpUnicastListener* m_UnicastListener;
71 };
72 
73 /*----------------------------------------------------------------------
74 | PLT_SsdpUnicastListener class
75 +---------------------------------------------------------------------*/
77 {
78 public:
79  PLT_SsdpUnicastListener(PLT_SsdpProxy* proxy) : m_Proxy(proxy) {}
80 
81  // PLT_SsdpPacketListener method
82  NPT_Result OnSsdpPacket(NPT_HttpRequest& request,
83  const NPT_HttpRequestContext& context);
84 
85 private:
86  PLT_SsdpProxy* m_Proxy;
87 };
88 
89 /*----------------------------------------------------------------------
90 | PLT_SsdpProxySearchResponseListener class
91 +---------------------------------------------------------------------*/
93 {
94 public:
96  NPT_HttpRequest* request,
97  NPT_Timeout timeout,
98  const NPT_SocketAddress& forward_address);
99 
100  NPT_Result ProcessResponse(NPT_Result res,
101  NPT_HttpRequest* request,
102  const NPT_HttpRequestContext& context,
103  NPT_HttpResponse* response);
104 
105 private:
106  NPT_SocketAddress m_ForwardAddress;
107 };
108 
109 #endif // _PLT_SSDP_PROXY_H_
Definition: NptHttp.h:566
Definition: SsdpProxy.h:76
Definition: NptHttp.h:315
Definition: NptHttp.h:282
The PLT_TaskManager class maintains a list of runnable tasks.
Definition: PltTaskManager.h:60
UPnP SSDP.
Definition: NptSockets.h:77
Definition: SsdpProxy.h:52
The PLT_SsdpPacketListener class is an interface for handling SSDP packets (M-SEARCH and NOTIFY)...
Definition: PltSsdp.h:70
Runnable Tasks Manager.
The PLT_SsdpSearchTask class is a task used by a PLT_CtrlPoint to issue a SSDP M-SEARCH request...
Definition: PltSsdp.h:361
Definition: NptSockets.h:243
Definition: SsdpProxy.h:92