restruturing according to arduino library guidlines
This commit is contained in:
parent
0cb8cce548
commit
32fa4ac11d
20 changed files with 106 additions and 4 deletions
22
.vscode/c_cpp_properties.json
vendored
Normal file
22
.vscode/c_cpp_properties.json
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "SAMD",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/**",
|
||||
"C:/Users/Noah/AppData/Local/Arduino15/packages/adafruit/hardware/samd/1.2.9/cores/arduino/**"
|
||||
],
|
||||
"defines": [
|
||||
"_DEBUG",
|
||||
"UNICODE",
|
||||
"_UNICODE"
|
||||
],
|
||||
"windowsSdkVersion": "10.0.17763.0",
|
||||
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe",
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++17",
|
||||
"intelliSenseMode": "msvc-x64"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
25
.vscode/settings.json
vendored
Normal file
25
.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"files.associations": {
|
||||
"cmath": "cpp",
|
||||
"cstddef": "cpp",
|
||||
"cstdint": "cpp",
|
||||
"cstdio": "cpp",
|
||||
"cstdlib": "cpp",
|
||||
"cstring": "cpp",
|
||||
"cwchar": "cpp",
|
||||
"exception": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"iosfwd": "cpp",
|
||||
"limits": "cpp",
|
||||
"memory": "cpp",
|
||||
"new": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"typeinfo": "cpp",
|
||||
"utility": "cpp",
|
||||
"xmemory": "cpp",
|
||||
"xmemory0": "cpp",
|
||||
"xstddef": "cpp",
|
||||
"xtr1common": "cpp",
|
||||
"xutility": "cpp"
|
||||
}
|
||||
}
|
45
src/Client.h
Normal file
45
src/Client.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
Client.h - Base class that provides Client
|
||||
Copyright (c) 2011 Adrian McEwen. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef client_h
|
||||
#define client_h
|
||||
#include "Print.h"
|
||||
#include "Stream.h"
|
||||
#include "IPAddress.h"
|
||||
|
||||
class Client : public Stream {
|
||||
|
||||
public:
|
||||
virtual int connect(IPAddress ip, uint16_t port) =0;
|
||||
virtual int connect(const char *host, uint16_t port) =0;
|
||||
virtual size_t write(uint8_t) =0;
|
||||
virtual size_t write(const uint8_t *buf, size_t size) =0;
|
||||
virtual int available() = 0;
|
||||
virtual int read() = 0;
|
||||
virtual int read(uint8_t *buf, size_t size) = 0;
|
||||
virtual int peek() = 0;
|
||||
virtual void flush() = 0;
|
||||
virtual void stop() = 0;
|
||||
virtual uint8_t connected() = 0;
|
||||
virtual operator bool() = 0;
|
||||
protected:
|
||||
uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); };
|
||||
};
|
||||
|
||||
#endif
|
|
@ -18,5 +18,4 @@
|
|||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "SSLClient.h"
|
||||
|
||||
#include "SSLClient.h"
|
|
@ -40,7 +40,17 @@
|
|||
|
||||
template <class C>
|
||||
class SSLClient : public Client {
|
||||
/** static type checks
|
||||
* I'm a java developer, so I want to ensure that my inheritance is safe.
|
||||
* These checks ensure that all the functions we use on class C are
|
||||
* actually present on class C. It does this by first checking that the
|
||||
* class inherits from Client, and then that it contains a status() function.
|
||||
*/
|
||||
static_assert(std::is_base_of(Client, C)::value, "C must be a Client Class!");
|
||||
static_assert(std::is_function(decltype(C::status))::value, "C must have a status() function!");
|
||||
|
||||
public:
|
||||
|
||||
/** Ctor
|
||||
* Creates a new dynamically allocated Client object based on the
|
||||
* one passed to client
|
||||
|
@ -48,7 +58,6 @@ public:
|
|||
* is going to exists past the inital creation of the SSLClient.
|
||||
* @param client the (Ethernet)client object
|
||||
*/
|
||||
static_assert(std::is_base_of(Client, C)::value, "C must be a Client Class!");
|
||||
SSLClient(const C &client):
|
||||
m_client(client)
|
||||
{
|
||||
|
@ -61,7 +70,7 @@ public:
|
|||
* Most of them smply pass through
|
||||
*/
|
||||
virtual int availableForWrite(void) const { return m_client.availableForWrite(); };
|
||||
virtual operator bool() const { return static_cast<bool>(m_client); }
|
||||
virtual operator bool() const { return m_client.bool(); }
|
||||
virtual bool operator==(const bool value) const { return bool() == value; }
|
||||
virtual bool operator!=(const bool value) const { return bool() != value; }
|
||||
virtual bool operator==(const C& rhs) const { return m_client.operator==(rhs); }
|
||||
|
@ -87,6 +96,8 @@ public:
|
|||
virtual void stop();
|
||||
virtual uint8_t connected();
|
||||
|
||||
/** get the client object */
|
||||
C& getClient() { return m_client; }
|
||||
|
||||
private:
|
||||
// create a copy of the class
|
Loading…
Reference in a new issue