embkernel
 All Classes Functions Variables Typedefs Groups Pages
TlsSocket.hpp
1 //------------------------------------------------------------------------------
2 //This file is part of embKernel.
3 //See license.txt for the full license governing this code.
4 //------------------------------------------------------------------------------
5 
6 #ifndef TLS_SOCKET_HPP_
7 #define TLS_SOCKET_HPP_
8 
9 #include "NetTcpSocket.hpp"
10 #include "Tls.hpp"
11 
12 class TlsSocket: public LibStreamIn, public LibStreamOut {
13 public:
14  TlsSocket();
15  ~TlsSocket();
16 
17  bool connect(NetDefs::IP_ADDR& remoteIpAddr, uint16_t remotePort, uint16_t localPort = 0);
18  bool accept(Rtos::TICK timeout);
19  virtual int read(void* buffer, int len, Rtos::TICK timeout = Rtos::TICK_INFINITE);
20  virtual int skip(int len, Rtos::TICK timeout = Rtos::TICK_INFINITE);
21  virtual int write(const void* buffer, int len, Rtos::TICK timeout = Rtos::TICK_INFINITE);
22  virtual int writeByte(uint8_t value, Rtos::TICK timeout = Rtos::TICK_INFINITE);
23  void close();
24 
25 private:
26  NetTcpSocket mSocket;
27  Tls mTls;
28 };
29 
30 #endif /* TLS_SOCKET_HPP_ */