Stroika Library
3.0d16
Help-Home
Loading...
Searching...
No Matches
BasicServer.h
1
/*
2
* Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3
*/
4
#ifndef _Stroika_Frameworks_UPnP_SSDP_Server_BasicServer_h_
5
#define _Stroika_Frameworks_UPnP_SSDP_Server_BasicServer_h_ 1
6
7
#include "Stroika/Frameworks/StroikaPreComp.h"
8
9
#include "
Stroika/Foundation/Characters/String.h
"
10
#include "Stroika/Foundation/Common/Common.h"
11
12
#include "Stroika/Frameworks/UPnP/Device.h"
13
#include "Stroika/Frameworks/UPnP/DeviceDescription.h"
14
#include "Stroika/Frameworks/UPnP/SSDP/Server/PeriodicNotifier.h"
15
#include "Stroika/Frameworks/UPnP/SSDP/Server/SearchResponder.h"
16
17
/*
18
* \file
19
*
20
* \note Code-Status: <a href="Code-Status.md#Alpha">Alpha</a>
21
*
22
* TODO:
23
* @todo Support SSDP::bye - sending going down notificaiton!!!
24
*
25
* @todo Add serviceList support
26
*
27
* @todo Look at http://brisa.garage.maemo.org/doc/html/upnp/ssdp.html for example server API
28
*/
29
30
namespace
Stroika::Frameworks::UPnP::SSDP::Server {
31
32
/**
33
* \brief handle the multicast part of UPnP SSDP - listening for searches and sending periodic notifications
34
*
35
* When this object is instantiated, it fires off threads to notify and respond to
36
* searches. When it is destroyed, it stops doing that.
37
*
38
* \note Caller must separately handle the HTTP requests for device discovery (see SSDP server sample)
39
*
40
* \note (since Stroika v3)requires Execution::IntervalTimer::Manager::Activator intervalTimerMgrActivator
41
*/
42
class
BasicServer
{
43
public
:
44
using
FrequencyInfo = PeriodicNotifier::FrequencyInfo;
45
46
public
:
47
/*
48
* if the HOST part of d.fLocation is empty, it will dynamically be populated with the hosts primary IP address
49
* see IO::Network::GetPrimaryInternetAddress () - when the server broadcasts it
50
*/
51
BasicServer
(
const
BasicServer
&) =
delete
;
52
BasicServer
(
const
Device
& d,
const
DeviceDescription
& dd,
const
FrequencyInfo& fi = FrequencyInfo{},
53
IO::Network::InternetProtocol::IP::IPVersionSupport
ipVersion = IO::Network::InternetProtocol::IP::IPVersionSupport::eDEFAULT);
54
const
BasicServer
& operator= (
const
BasicServer
&) =
delete
;
55
56
private
:
57
class
Rep_;
58
shared_ptr<Rep_> fRep_;
59
};
60
61
}
62
63
/*
64
********************************************************************************
65
***************************** Implementation Details ***************************
66
********************************************************************************
67
*/
68
#include "BasicServer.inl"
69
70
#endif
/*_Stroika_Frameworks_UPnP_SSDP_Server_BasicServer_h_*/
String.h
Stroika::Frameworks::UPnP::Device
Definition
Device.h:29
Stroika::Frameworks::UPnP::SSDP::Server::BasicServer
handle the multicast part of UPnP SSDP - listening for searches and sending periodic notifications
Definition
BasicServer.h:42
Stroika::Foundation::IO::Network::InternetProtocol::IP::IPVersionSupport
IPVersionSupport
Definition
IP.h:36
Stroika::Frameworks::UPnP::DeviceDescription
Definition
DeviceDescription.h:41
Library
Sources
Stroika
Frameworks
UPnP
SSDP
Server
BasicServer.h
Generated by
1.9.8