Arduino DLNA Server
Loading...
Searching...
No Matches
EscapingPrint.h
Go to the documentation of this file.
1#pragma once
2#include "Print.h"
3
4namespace tiny_dlna {
5
7struct EscapingPrint : public Print {
8 Print& dest;
9 EscapingPrint(Print& d) : dest(d) {}
10 size_t write(uint8_t c) override {
11 if (c == '&') return dest.print("&");
12 if (c == '<') return dest.print("&lt;");
13 if (c == '>') return dest.print("&gt;");
14 return dest.write(&c, 1);
15 }
16 size_t write(const uint8_t* buffer, size_t size) override {
17 size_t r = 0;
18 for (size_t i = 0; i < size; ++i) r += write(buffer[i]);
19 return r;
20 }
21 int available() { return 0; }
22};
23
24} // namespace tiny_dlna
Definition: Allocator.h:6
Print wrapper that escapes & < > while forwarding to an underlying Print.
Definition: EscapingPrint.h:7
int available()
Definition: EscapingPrint.h:21
Print & dest
Definition: EscapingPrint.h:8
size_t write(uint8_t c) override
Definition: EscapingPrint.h:10
EscapingPrint(Print &d)
Definition: EscapingPrint.h:9
size_t write(const uint8_t *buffer, size_t size) override
Definition: EscapingPrint.h:16