Arduino DLNA Server
Loading...
Searching...
No Matches
ISubscriptionMgrDevice.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4#include <cstddef>
5#include <cstdint>
6
7#include "basic/Str.h"
8
9class Print;
10
11namespace tiny_dlna {
12
13class DLNAServiceInfo;
14class IHttpServer;
15
16class IHttpServer;
17
28 public:
29 virtual ~ISubscriptionMgrDevice() = default;
30
32 virtual Str subscribe(DLNAServiceInfo& service, const char* callbackUrl,
33 const char* sid = nullptr,
34 uint32_t timeoutSec = 1800) = 0;
35
37 virtual bool unsubscribe(DLNAServiceInfo& service, const char* sid) = 0;
38
40 virtual void addChange(
41 DLNAServiceInfo& service,
42 std::function<size_t(Print&, void*)> changeWriter, void* ref) = 0;
43
45 virtual int publish() = 0;
46
48 virtual size_t subscriptionsCount() = 0;
49
51 virtual size_t pendingCount() = 0;
52
54 virtual void setSubscriptionsActive(bool flag) = 0;
55
57 virtual void end() = 0;
58
60 virtual bool isSubscriptionsActive() = 0;
61
64 DLNAServiceInfo& service) = 0;
65
68 DLNAServiceInfo& service) = 0;
69};
70
71} // namespace tiny_dlna
Attributes needed for the DLNA Service Definition.
Definition: DLNAServiceInfo.h:18
Abstract interface for HTTP server functionality.
Definition: IHttpServer.h:30
Abstract interface for UPnP event subscription management.
Definition: ISubscriptionMgrDevice.h:27
virtual void setSubscriptionsActive(bool flag)=0
Enable/disable subscription processing.
virtual bool unsubscribe(DLNAServiceInfo &service, const char *sid)=0
Unsubscribe from service events.
virtual bool processSubscribeRequest(IHttpServer &server, DLNAServiceInfo &service)=0
Process HTTP SUBSCRIBE request.
virtual bool processUnsubscribeRequest(IHttpServer &server, DLNAServiceInfo &service)=0
Process HTTP UNSUBSCRIBE request.
virtual void addChange(DLNAServiceInfo &service, std::function< size_t(Print &, void *)> changeWriter, void *ref)=0
Add state change event for notification.
virtual bool isSubscriptionsActive()=0
Check if subscriptions are active.
virtual ~ISubscriptionMgrDevice()=default
virtual void end()=0
Cleanup and stop subscription manager.
virtual size_t subscriptionsCount()=0
Provide actual number of subscriptions.
virtual Str subscribe(DLNAServiceInfo &service, const char *callbackUrl, const char *sid=nullptr, uint32_t timeoutSec=1800)=0
Subscribe to service events with callback URL.
virtual size_t pendingCount()=0
Provide actual number of open (unprocessed) notifications.
virtual int publish()=0
Publish pending event notifications.
Heap-backed string utility used throughout tiny_dlna.
Definition: Str.h:27
Definition: Allocator.h:13