Arduino DLNA Server
Loading...
Searching...
No Matches
IHttpRequest.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4
5#include "Client.h"
6#include "HttpHeader.h"
7#include "basic/Url.h"
8
9class Print;
10
11namespace tiny_dlna {
12
22 public:
23 virtual ~IHttpRequest() = default;
24
26 virtual void setClient(Client& client) = 0;
28 virtual void setHost(const char* host) = 0;
30 virtual operator bool() = 0;
32 virtual bool connected() = 0;
34 virtual int available() = 0;
36 virtual void stop() = 0;
38 virtual int post(Url& url, const char* mime, const char* data,
39 int len = -1) = 0;
41 virtual int post(Url& url, size_t len,
42 std::function<size_t(Print&, void*)> writer,
43 const char* mime = nullptr, void* ref = nullptr) = 0;
45 virtual int notify(Url& url, std::function<size_t(Print&, void*)> writer,
46 const char* mime = nullptr, void* ref = nullptr) = 0;
48 virtual int put(Url& url, const char* mime, const char* data,
49 int len = -1) = 0;
51 virtual int del(Url& url, const char* mime = nullptr,
52 const char* data = nullptr, int len = -1) = 0;
54 virtual int get(Url& url, const char* acceptMime = nullptr,
55 const char* data = nullptr, int len = -1) = 0;
57 virtual int head(Url& url, const char* acceptMime = nullptr,
58 const char* data = nullptr, int len = -1) = 0;
60 virtual int subscribe(Url& url) = 0;
62 virtual int unsubscribe(Url& url, const char* sid) = 0;
64 virtual int read(uint8_t* str, int len) = 0;
66 virtual int readln(uint8_t* str, int len, bool incl_nl = true) = 0;
68 virtual HttpReplyHeader& reply() = 0;
70 virtual HttpRequestHeader& request() = 0;
72 virtual void setAgent(const char* agent) = 0;
74 virtual void setConnection(const char* connection) = 0;
76 virtual void setAcceptsEncoding(const char* enc) = 0;
78 virtual Client* client() = 0;
80 virtual void setTimeout(int ms) = 0;
81};
82
83} // namespace tiny_dlna
Reading and Writing of Http Replys.
Definition: HttpHeader.h:412
Reading and writing of Http Requests.
Definition: HttpHeader.h:358
Abstract interface for HTTP client request functionality.
Definition: IHttpRequest.h:21
virtual int readln(uint8_t *str, int len, bool incl_nl=true)=0
Read line from response.
virtual ~IHttpRequest()=default
virtual void setTimeout(int ms)=0
Set request timeout in milliseconds.
virtual int notify(Url &url, std::function< size_t(Print &, void *)> writer, const char *mime=nullptr, void *ref=nullptr)=0
Send NOTIFY request with callback writer.
virtual Client * client()=0
Get pointer to client.
virtual int put(Url &url, const char *mime, const char *data, int len=-1)=0
Send PUT request with string data.
virtual void setAcceptsEncoding(const char *enc)=0
Set Accept-Encoding header.
virtual int read(uint8_t *str, int len)=0
Read data from response.
virtual HttpRequestHeader & request()=0
Get reference to request header.
virtual int post(Url &url, const char *mime, const char *data, int len=-1)=0
Send POST request with string data.
virtual void stop()=0
Stop the connection.
virtual void setClient(Client &client)=0
Set the client for HTTP requests.
virtual bool connected()=0
Check if connected to server.
virtual HttpReplyHeader & reply()=0
Get reference to reply header.
virtual int head(Url &url, const char *acceptMime=nullptr, const char *data=nullptr, int len=-1)=0
Send HEAD request.
virtual int get(Url &url, const char *acceptMime=nullptr, const char *data=nullptr, int len=-1)=0
Send GET request.
virtual void setConnection(const char *connection)=0
Set Connection header.
virtual int subscribe(Url &url)=0
Send SUBSCRIBE request for UPnP events.
virtual void setHost(const char *host)=0
Set the host header for requests.
virtual int available()=0
Get number of bytes available to read.
virtual int del(Url &url, const char *mime=nullptr, const char *data=nullptr, int len=-1)=0
Send DELETE request.
virtual int unsubscribe(Url &url, const char *sid)=0
Send UNSUBSCRIBE request for UPnP events.
virtual int post(Url &url, size_t len, std::function< size_t(Print &, void *)> writer, const char *mime=nullptr, void *ref=nullptr)=0
Send POST request with callback writer.
virtual void setAgent(const char *agent)=0
Set User-Agent header.
URL parser which breaks a full url string up into its individual parts.
Definition: Url.h:18
Definition: Allocator.h:13