diff --git a/src_cpp/utility/xbuf.h b/src_cpp/utility/xbuf.h deleted file mode 100644 index e088418..0000000 --- a/src_cpp/utility/xbuf.h +++ /dev/null @@ -1,166 +0,0 @@ -/**************************************************************************************************************************** - xbuf.h - Dead simple AsyncHTTPRequest for ESP8266, ESP32 and currently STM32 with built-in LAN8742A Ethernet - - For ESP8266, ESP32 and STM32 with built-in LAN8742A Ethernet (Nucleo-144, DISCOVERY, etc) - - AsyncHTTPRequest_STM32 is a library for the ESP8266, ESP32 and currently STM32 run built-in Ethernet WebServer - - Based on and modified from asyncHTTPrequest Library (https://github.com/boblemaire/asyncHTTPrequest) - - Built by Khoi Hoang https://github.com/khoih-prog/AsyncHTTPRequest_Generic - Licensed under MIT license - - Copyright (C) <2018> - This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License - as published bythe Free Software Foundation, either version 3 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along with this program. If not, see . - - Version: 1.4.1 - - Version Modified By Date Comments - ------- ----------- ---------- ----------- - 1.0.0 K Hoang 14/09/2020 Initial coding to add support to STM32 using built-in Ethernet (Nucleo-144, DISCOVERY, etc). - 1.0.1 K Hoang 09/10/2020 Restore cpp code besides Impl.h code. - 1.0.2 K Hoang 09/11/2020 Make Mutex Lock and delete more reliable and error-proof - 1.1.0 K Hoang 23/12/2020 Add HTTP PUT, PATCH, DELETE and HEAD methods - 1.1.1 K Hoang 24/12/2020 Prevent crash if request and/or method not correct. - 1.1.2 K Hoang 11/02/2021 Rename _lock and _unlock to avoid conflict with AsyncWebServer library - 1.1.3 K Hoang 25/02/2021 Fix non-persistent Connection header bug - 1.1.4 K Hoang 21/03/2021 Fix `library.properties` dependency - 1.1.5 K Hoang 22/03/2021 Fix dependency on STM32AsyncTCP Library - 1.2.0 K Hoang 11/04/2021 Add support to LAN8720 using STM32F4 or STM32F7 - 1.3.0 K Hoang 09/07/2021 Add support to WT32_ETH01 (ESP32 + LAN8720) boards - 1.3.1 K Hoang 09/10/2021 Update `platform.ini` and `library.json` - 1.4.0 K Hoang 23/11/2021 Fix crashing bug when request a non-existing IP - 1.4.1 K Hoang 29/11/2021 Auto detect ESP32 core version and improve connection time for WT32_ETH01 - *****************************************************************************************************************************/ - -/******************************************************************************************** - xbuf is a dynamic buffering system that supports reading and writing much like cbuf. - The class has it's own provision for writing from buffers, Strings and other xbufs - as well as the inherited Print functions. - Rather than use a large contiguous heap allocation, xbuf uses a linked chain of segments - to dynamically grow and shrink with the contents. - There are other benefits as well to using smaller heap allocation units: - 1) A buffer can work fine in a fragmented heap environment (admittedly contributing to it) - 2) xbuf contents can be copied from one buffer to another without the need for - 2x heap during the copy. - The segment size defaults to 64 but can be dynamically set in the constructor at creation. - The inclusion of indexOf and read/peek until functions make it useful for handling - data streams like HTTP, and in fact is why it was created. - - NOTE: The size of the indexOf() search string is limited to the segment size. - It could be extended but didn't seem to be a practical consideration. - -********************************************************************************************/ -#pragma once - -#ifndef XBUF_H -#define XBUF_H - -#include - -struct xseg -{ - xseg *next; - uint8_t data[]; -}; - -class xbuf: public Print -{ - public: - - xbuf(const uint16_t segSize = 64); - virtual ~xbuf(); - - size_t write(const uint8_t); - size_t write(const char*); - size_t write(const uint8_t*, const size_t); - size_t write(xbuf*, const size_t); - size_t write(String); - size_t available(); - int indexOf(const char, const size_t begin = 0); - int indexOf(const char*, const size_t begin = 0); - uint8_t read(); - size_t read(uint8_t*, size_t); - String readStringUntil(const char); - String readStringUntil(const char*); - String readString(int); - - String readString() - { - return readString(available()); - } - - void flush(); - - uint8_t peek(); - size_t peek(uint8_t*, const size_t); - - String peekStringUntil(const char target) - { - return peekString(indexOf(target, 0)); - } - - String peekStringUntil(const char* target) - { - return peekString(indexOf(target, 0)); - } - - String peekString() - { - return peekString(_used); - } - - String peekString(int); - - /* In addition to the above functions, - the following inherited functions from the Print class are available. - - size_t printf(const char * format, ...) __attribute__ ((format (printf, 2, 3))); - size_t printf_P(PGM_P format, ...) __attribute__((format(printf, 2, 3))); - size_t print(const __FlashStringHelper *); - size_t print(const String &); - size_t print(const char[]); - size_t print(char); - size_t print(unsigned char, int = DEC); - size_t print(int, int = DEC); - size_t print(unsigned int, int = DEC); - size_t print(long, int = DEC); - size_t print(unsigned long, int = DEC); - size_t print(double, int = 2); - size_t print(const Printable&); - - size_t println(const __FlashStringHelper *); - size_t println(const String &s); - size_t println(const char[]); - size_t println(char); - size_t println(unsigned char, int = DEC); - size_t println(int, int = DEC); - size_t println(unsigned int, int = DEC); - size_t println(long, int = DEC); - size_t println(unsigned long, int = DEC); - size_t println(double, int = 2); - size_t println(const Printable&); - size_t println(void); - */ - - protected: - - xseg *_head; - xseg *_tail; - uint16_t _used; - uint16_t _free; - uint16_t _offset; - uint16_t _segSize; - - void addSeg(); - void remSeg(); - -}; - - -#endif // XBUF_H -