ACKme Logo WiConnect Host Library- API Reference Guide
 
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
SocketInterface.h
1 
29 #pragma once
30 
31 #include "Wiconnect.h"
32 #include "types/WiconnectSocket.h"
33 #include "types/SocketIrqHandlerMap.h"
34 
35 
39 namespace wiconnect {
40 
41 
52 {
53 public:
66 
93  WiconnectResult registerSocketIrqHandler(Pin irqPin, const Callback &handler);
94 
107 
108 
125  WiconnectResult connect(WiconnectSocket &socket, SocketType type, const char *host, uint16_t remortPort, uint16_t localPort, const void *args, Pin irqPin);
126 
127 
128  // ------------------------------------------------------------------------
129 
141  WiconnectResult tcpConnect(WiconnectSocket &socket, const char *host, uint16_t remortPort, Pin irqPin = PIN_NC);
142 
143 
144  // ------------------------------------------------------------------------
145 
156  WiconnectResult tcpListen(uint16_t listeningPort, int maxClients = 0, Pin irqPin = PIN_NC);
157 
158 
159  // ------------------------------------------------------------------------
160 
171 
172 
173  // ------------------------------------------------------------------------
174 
183 
184 
185  // ------------------------------------------------------------------------
186 
199  WiconnectResult tlsConnect(WiconnectSocket &socket, const char *host, uint16_t remortPort, const char *certFilename = NULL, Pin irqPin = PIN_NC);
200 
201 
202  // ------------------------------------------------------------------------
203 
216  WiconnectResult udpConnect(WiconnectSocket &socket, const char *host, uint16_t remortPort, uint16_t localPort = SOCKET_ANY_PORT, Pin irqPin = PIN_NC);
217 
218 
219  // ------------------------------------------------------------------------
220 
243  WiconnectResult httpConnect(WiconnectSocket &socket, const char *url, const HttpSocketArgs *args);
244 
262  WiconnectResult httpGet(WiconnectSocket &socket, const char *url, bool openOnly = false, const char *certFilename = NULL);
263 
282  WiconnectResult httpPost(WiconnectSocket &socket, const char *url, const char *contextType, bool openOnly = true, const char *certFilename = NULL);
283 
294  WiconnectResult httpHead(WiconnectSocket &socket, const char *url, const char *certFilename = NULL);
295 
313  WiconnectResult httpAddHeader(WiconnectSocket &socket, const char *key, const char *value);
314 
327  WiconnectResult httpGetStatus(WiconnectSocket &socket, uint32_t *statusCodePtr);
328 
329 protected:
330  SocketInterface(Wiconnect *wiconnect);
331  ~SocketInterface();
332 
333  SocketIrqHandlerMap irqHandlers;
334 
335  bool serverConnectedClientList[WICONNECT_MAX_SOCKETS];
336 
337  WiconnectResult pollForServerClient(uint8_t *handle = NULL, uint16_t *localPort = NULL, uint16_t *remotePort = NULL, uint32_t *ipAddress = NULL);
338 
339  void socketClosedCallback(const WiconnectSocket *socket);
340 
341 private:
342  Wiconnect *wiconnect;
343 };
344 
345 }
SocketType
Socket type.
WiconnectResult httpPost(WiconnectSocket &socket, const char *url, const char *contextType, bool openOnly=true, const char *certFilename=NULL)
Issue HTTP POST Request.
WiconnectResult udpConnect(WiconnectSocket &socket, const char *host, uint16_t remortPort, uint16_t localPort=SOCKET_ANY_PORT, Pin irqPin=PIN_NC)
Connect to remote UDP server.
WiconnectResult tlsConnect(WiconnectSocket &socket, const char *host, uint16_t remortPort, const char *certFilename=NULL, Pin irqPin=PIN_NC)
Connect to remote TLS server.
WiconnectResult
API Result code.
Generic callback function.
Definition: Callback.h:49
#define WICONNECT_MAX_SOCKETS
The maximum number of simulanteous opened sockets.
WiconnectResult registerSocketIrqHandler(Pin irqPin, const Callback &handler)
Register a host pin as an external interrupt. When the external interrupt is triggered, the supplied callback is executed.
WiconnectResult unregisterSocketIrqHandler(Pin irqPin)
Unregister a previously registered IRQ pin.
#define SOCKET_ANY_PORT
Default which indicates to use the most optimal port.
WiconnectResult httpAddHeader(WiconnectSocket &socket, const char *key, const char *value)
Add HTTP header key/value pair to opened HTTP request.
WiconnectResult closeAllSockets()
Close all opened sockets.
WiconnectResult httpConnect(WiconnectSocket &socket, const char *url, const HttpSocketArgs *args)
Connect to remote HTTP server.
PinName Pin
Pin name on HOST.
Definition: sdk.h:123
WiconnectResult httpGet(WiconnectSocket &socket, const char *url, bool openOnly=false, const char *certFilename=NULL)
Issue HTTP GET Request.
WiconnectResult tcpAccept(WiconnectSocket &socket, int timeoutMs=WICONNECT_WAIT_FOREVER)
Wait for next client to connect to TCP server.
WiconnectResult httpHead(WiconnectSocket &socket, const char *url, const char *certFilename=NULL)
Issue HTTP HEAD Request.
WiconnectResult tcpConnect(WiconnectSocket &socket, const char *host, uint16_t remortPort, Pin irqPin=PIN_NC)
Connect to remote TCP server.
Connection object to remote server.
#define WICONNECT_WAIT_FOREVER
Never timeout.
The provides an interface for creating TCP/UDP/TLS/HTTP client sockets. A client socket connects to a...
WiconnectResult tcpServerStop(void)
Stop TCP server from listening on port. Close all connected clients.
The root WiConnect library class. This class inheriets all WiConnect functionality.
WiconnectResult tcpListen(uint16_t listeningPort, int maxClients=0, Pin irqPin=PIN_NC)
Start internal TCP server and listen on specified port.
WiconnectResult connect(WiconnectSocket &socket, SocketType type, const char *host, uint16_t remortPort, uint16_t localPort, const void *args, Pin irqPin)
Connect to remote server.
Struct for hold HTTP socket configuration.
#define PIN_NC
Default value for a pin, Not connected.
Definition: sdk.h:117
WiconnectResult httpGetStatus(WiconnectSocket &socket, uint32_t *statusCodePtr)
Get the HTTP status code from HTTP request.