t3

Fork of C027_Support by u-blox

Committer:
PetriI2
Date:
Mon Dec 12 11:05:33 2016 +0000
Revision:
140:a74a4445159d
Parent:
138:dafbbf31bf76
t;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mazgch 44:9d12223b78ff 1 #ifndef TCPSOCKET_H
mazgch 44:9d12223b78ff 2 #define TCPSOCKET_H
mazgch 44:9d12223b78ff 3
mazgch 44:9d12223b78ff 4 #include "Socket.h"
mazgch 44:9d12223b78ff 5
mazgch 44:9d12223b78ff 6 /** TCP socket connection
mazgch 44:9d12223b78ff 7 */
mazgch 44:9d12223b78ff 8 class TCPSocketConnection: public Socket
mazgch 44:9d12223b78ff 9 {
mazgch 44:9d12223b78ff 10 friend class TCPSocketServer;
mazgch 44:9d12223b78ff 11
mazgch 44:9d12223b78ff 12 public:
mazgch 44:9d12223b78ff 13 /** TCP socket connection
mazgch 44:9d12223b78ff 14 */
mazgch 44:9d12223b78ff 15 TCPSocketConnection() {}
mazgch 44:9d12223b78ff 16
mazgch 44:9d12223b78ff 17 /** Connects this TCP socket to the server
mazgch 44:9d12223b78ff 18 \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS.
mazgch 44:9d12223b78ff 19 \param port The host's port to connect to.
mazgch 44:9d12223b78ff 20 \return 0 on success, -1 on failure.
mazgch 44:9d12223b78ff 21 */
mazgch 44:9d12223b78ff 22 int connect(const char* host, const int port)
mazgch 44:9d12223b78ff 23 {
mazgch 63:42cb563a25bc 24 if (_mdm == NULL)
mazgch 63:42cb563a25bc 25 _mdm = MDMParser::getInstance();
mazgch 54:7ba8e4c218e2 26 if (_mdm == NULL)
mazgch 54:7ba8e4c218e2 27 return -1;
mazgch 54:7ba8e4c218e2 28
mazgch 44:9d12223b78ff 29 if (_socket < 0) {
mazgch 44:9d12223b78ff 30 _socket = _mdm->socketSocket(MDMParser::IPPROTO_TCP);
mazgch 44:9d12223b78ff 31 if (_socket < 0) {
mazgch 44:9d12223b78ff 32 return -1;
mazgch 44:9d12223b78ff 33 }
mazgch 44:9d12223b78ff 34 }
mazgch 44:9d12223b78ff 35
mazgch 67:ff9472d344d4 36 _mdm->socketSetBlocking(_socket, _timeout_ms);
mazgch 44:9d12223b78ff 37 if (!_mdm->socketConnect(_socket, host, port)) {
mazgch 60:1f65abb842be 38 return -1;
mazgch 44:9d12223b78ff 39 }
mazgch 60:1f65abb842be 40 return 0;
mazgch 44:9d12223b78ff 41 }
mazgch 44:9d12223b78ff 42 /** Check if the socket is connected
mazgch 44:9d12223b78ff 43 \return true if connected, false otherwise.
mazgch 44:9d12223b78ff 44 */
walser 138:dafbbf31bf76 45 bool is_connected(void)
walser 138:dafbbf31bf76 46 {
walser 138:dafbbf31bf76 47 if (_socket < 0)
walser 138:dafbbf31bf76 48 return false;
walser 138:dafbbf31bf76 49 return _mdm->socketIsConnected(_socket);
walser 138:dafbbf31bf76 50 }
mazgch 44:9d12223b78ff 51
mazgch 44:9d12223b78ff 52 /** Send data to the remote host.
mazgch 44:9d12223b78ff 53 \param data The buffer to send to the host.
mazgch 44:9d12223b78ff 54 \param length The length of the buffer to send.
mazgch 44:9d12223b78ff 55 \return the number of written bytes on success (>=0) or -1 on failure
mazgch 44:9d12223b78ff 56 */
mazgch 44:9d12223b78ff 57 int send(char* data, int length) { return _mdm->socketSend(_socket, data, length); }
mazgch 44:9d12223b78ff 58
mazgch 44:9d12223b78ff 59 /** Send all the data to the remote host.
mazgch 44:9d12223b78ff 60 \param data The buffer to send to the host.
mazgch 44:9d12223b78ff 61 \param length The length of the buffer to send.
mazgch 44:9d12223b78ff 62 \return the number of written bytes on success (>=0) or -1 on failure
mazgch 44:9d12223b78ff 63 */
mazgch 44:9d12223b78ff 64 int send_all(char* data, int length) { return send(data,length); }
mazgch 44:9d12223b78ff 65
mazgch 44:9d12223b78ff 66 /** Receive data from the remote host.
mazgch 44:9d12223b78ff 67 \param data The buffer in which to store the data received from the host.
mazgch 44:9d12223b78ff 68 \param length The maximum length of the buffer.
mazgch 44:9d12223b78ff 69 \return the number of received bytes on success (>=0) or -1 on failure
mazgch 44:9d12223b78ff 70 */
mazgch 44:9d12223b78ff 71 int receive(char* data, int length) { return _mdm->socketRecv(_socket, data, length); }
mazgch 44:9d12223b78ff 72
mazgch 44:9d12223b78ff 73 /** Receive all the data from the remote host.
mazgch 44:9d12223b78ff 74 \param data The buffer in which to store the data received from the host.
mazgch 44:9d12223b78ff 75 \param length The maximum length of the buffer.
mazgch 44:9d12223b78ff 76 \return the number of received bytes on success (>=0) or -1 on failure
mazgch 44:9d12223b78ff 77 */
mazgch 44:9d12223b78ff 78 int receive_all(char* data, int length) { return receive(data,length); }
mazgch 44:9d12223b78ff 79
mazgch 44:9d12223b78ff 80 };
mazgch 44:9d12223b78ff 81
mazgch 44:9d12223b78ff 82 #endif