My Project
 All Classes Functions Variables Pages
SockServ.h
1 
2 
3 #ifndef MAIN_SOCKSERV_H_
4 #define MAIN_SOCKSERV_H_
5 #include <stdint.h>
6 #include <string>
7 #include <set>
8 #include "Socket.h"
9 #include "FreeRTOS.h"
10 #include <freertos/FreeRTOS.h>
11 #include <freertos/queue.h>
12 
13 
33 class SockServ {
34 private:
35  static void acceptTask(void*);
36  uint16_t m_port;
37  Socket m_serverSocket;
38  FreeRTOS::Semaphore m_clientSemaphore = FreeRTOS::Semaphore("clientSemaphore");
39  std::set<Socket> m_clientSet;
40  QueueHandle_t m_acceptQueue;
41  bool m_useSSL;
42 
43 public:
44  SockServ(uint16_t port);
45  SockServ();
46  ~SockServ();
47  int connectedCount();
48  void disconnect(Socket s);
49  bool getSSL();
50  size_t receiveData(Socket s, void* pData, size_t maxData);
51  void sendData(uint8_t* data, size_t length);
52  void sendData(std::string str);
53  void setPort(uint16_t port);
54  void setSSL(bool use = true);
55  void start();
56  void stop();
57  Socket waitForData(std::set<Socket>& socketSet);
59 
60 };
61 
62 #endif /* MAIN_SOCKSERV_H_ */
Encapsulate a socket.
Definition: Socket.h:62
void disconnect(Socket s)
Disconnect any connected partners.
Definition: SockServ.cpp:96
~SockServ()
Definition: SockServ.cpp:50
void start()
Start listening for new partner connections.
Definition: SockServ.cpp:168
bool getSSL()
Definition: SockServ.cpp:105
void sendData(uint8_t *data, size_t length)
Send data to any connected partners.
Definition: SockServ.cpp:142
void setPort(uint16_t port)
Set the port number to use.
Definition: SockServ.cpp:153
size_t receiveData(Socket s, void *pData, size_t maxData)
Wait for data.
Definition: SockServ.cpp:116
Socket waitForNewClient()
Wait for a client connection to be present. Returns when a client connection is present. This can block until a client connects or can return immediately is there is already a client connection in existence.
Definition: SockServ.cpp:228
SockServ()
Definition: SockServ.cpp:39
Definition: FreeRTOS.h:31
void stop()
Stop listening for new partner connections.
Definition: SockServ.cpp:180
Provide a socket listener and the ability to send data to connected partners.
Definition: SockServ.h:33
int connectedCount()
Determine the number of connected partners.
Definition: SockServ.cpp:88