mbed OS5に対応したMilkcocoaライブラリのテストバージョンです。

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
jksoft
Date:
Tue Jan 24 13:41:36 2017 +0000
Revision:
24:6ba1245bf049
??????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jksoft 24:6ba1245bf049 1 #if !defined(MQTTSOCKET_H)
jksoft 24:6ba1245bf049 2 #define MQTTSOCKET_H
jksoft 24:6ba1245bf049 3
jksoft 24:6ba1245bf049 4 #include "MQTTmbed.h"
jksoft 24:6ba1245bf049 5 #include "TCPSocket.h"
jksoft 24:6ba1245bf049 6
jksoft 24:6ba1245bf049 7 class MQTTSocket
jksoft 24:6ba1245bf049 8 {
jksoft 24:6ba1245bf049 9 public:
jksoft 24:6ba1245bf049 10 int open(NetworkInterface* nif)
jksoft 24:6ba1245bf049 11 {
jksoft 24:6ba1245bf049 12 return socket.open(nif);
jksoft 24:6ba1245bf049 13 }
jksoft 24:6ba1245bf049 14
jksoft 24:6ba1245bf049 15 int connect(char* hostname, int port, int timeout=1000)
jksoft 24:6ba1245bf049 16 {
jksoft 24:6ba1245bf049 17 socket.set_blocking (false);
jksoft 24:6ba1245bf049 18 socket.set_timeout(timeout);
jksoft 24:6ba1245bf049 19 _mutex.lock();
jksoft 24:6ba1245bf049 20 int ret = (int)socket.connect(hostname, port);
jksoft 24:6ba1245bf049 21 _mutex.unlock();
jksoft 24:6ba1245bf049 22
jksoft 24:6ba1245bf049 23 return ret;
jksoft 24:6ba1245bf049 24 }
jksoft 24:6ba1245bf049 25
jksoft 24:6ba1245bf049 26 int read(unsigned char* buffer, int len, int timeout)
jksoft 24:6ba1245bf049 27 {
jksoft 24:6ba1245bf049 28 socket.set_blocking (false);
jksoft 24:6ba1245bf049 29 socket.set_timeout(timeout);
jksoft 24:6ba1245bf049 30 _mutex.lock();
jksoft 24:6ba1245bf049 31 int ret = (int)socket.recv((char*)buffer, len);
jksoft 24:6ba1245bf049 32 _mutex.unlock();
jksoft 24:6ba1245bf049 33
jksoft 24:6ba1245bf049 34 return ret;
jksoft 24:6ba1245bf049 35 }
jksoft 24:6ba1245bf049 36
jksoft 24:6ba1245bf049 37 int write(unsigned char* buffer, int len, int timeout)
jksoft 24:6ba1245bf049 38 {
jksoft 24:6ba1245bf049 39 socket.set_blocking (false);
jksoft 24:6ba1245bf049 40 socket.set_timeout(timeout);
jksoft 24:6ba1245bf049 41 _mutex.lock();
jksoft 24:6ba1245bf049 42 int ret = (int)socket.send((char*)buffer, len);
jksoft 24:6ba1245bf049 43 _mutex.unlock();
jksoft 24:6ba1245bf049 44
jksoft 24:6ba1245bf049 45 return ret;
jksoft 24:6ba1245bf049 46 }
jksoft 24:6ba1245bf049 47
jksoft 24:6ba1245bf049 48 int disconnect()
jksoft 24:6ba1245bf049 49 {
jksoft 24:6ba1245bf049 50 _mutex.lock();
jksoft 24:6ba1245bf049 51 int ret = (int)socket.close();
jksoft 24:6ba1245bf049 52 _mutex.unlock();
jksoft 24:6ba1245bf049 53
jksoft 24:6ba1245bf049 54 return ret;
jksoft 24:6ba1245bf049 55 }
jksoft 24:6ba1245bf049 56
jksoft 24:6ba1245bf049 57 private:
jksoft 24:6ba1245bf049 58 Mutex _mutex;
jksoft 24:6ba1245bf049 59 TCPSocket socket;
jksoft 24:6ba1245bf049 60
jksoft 24:6ba1245bf049 61 };
jksoft 24:6ba1245bf049 62
jksoft 24:6ba1245bf049 63
jksoft 24:6ba1245bf049 64
jksoft 24:6ba1245bf049 65 #endif