Own fork of C027_Support

Dependents:   MbedSmartRestMain MbedSmartRestMain

Fork of C027_Support by u-blox

Revision:
44:9d12223b78ff
Child:
47:9a89e5195721
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Socket/Socket.h	Thu Apr 17 20:41:30 2014 +0000
@@ -0,0 +1,41 @@
+#ifndef SOCKET_H_
+#define SOCKET_H_
+
+#include "MDM.h"
+
+/** Socket file descriptor and select wrapper
+  */
+class Socket {
+public:
+    Socket() {
+        _socket = -1;
+        _mdm = MDMParser::getInstance();
+        if (_mdm == NULL) {
+            error("Socket constructor error: no modem instance available!\r\n");
+        }       
+    }
+    
+    void set_blocking(bool blocking, unsigned int timeout=1) { 
+        _mdm->socketSetBlocking(_socket, blocking ? (unsigned int) -1 /* blocking */ : timeout); 
+    }
+    
+    int close() {
+        bool ret = false;
+        if (_socket >= 0)
+        {
+            ret = _mdm->socketClose(_socket);
+            _mdm->socketFree(_socket);
+            _socket = -1;
+        }
+        return ret ? 0 : -1;
+    }
+    
+    ~Socket() { close(); }
+    
+protected:
+    int _socket;
+    MDMParser* _mdm;
+};
+
+
+#endif /* SOCKET_H_ */