ex
Fork of mbed-os-example-mbed5-blinky by
Diff: DuerOS-Light-SDK-v1.1.0/duer-os-light/src/iot-baidu-ca-adapter/baidu_ca_network_socket.h
- Revision:
- 47:9e361da97763
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/DuerOS-Light-SDK-v1.1.0/duer-os-light/src/iot-baidu-ca-adapter/baidu_ca_network_socket.h Tue Jul 18 16:54:45 2017 +0800
@@ -0,0 +1,57 @@
+// Copyright 2017 Baidu Inc. All Rights Reserved.
+// Author: Su Hao (suhao@baidu.com)
+//
+// Description: SocketAdapter
+
+#ifndef BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_ADAPTER_BAIDU_CA_NETWORK_SOCKET_H
+#define BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_ADAPTER_BAIDU_CA_NETWORK_SOCKET_H
+
+#include "mbed.h"
+#include "baidu_ca.h"
+
+namespace duer {
+
+class SocketAdapter {
+public:
+
+ typedef mbed::Callback<void (const bca_addr_t*)> Callback;
+
+ SocketAdapter();
+
+ virtual ~SocketAdapter();
+
+ int connect(const bca_addr_t* addr);
+
+ int send(const void* data, size_t size);
+
+ int recv(void* data, size_t size);
+
+ int close();
+
+ void attach(Callback callback);
+
+ template <typename T, typename M>
+ void attach(T* obj, M method) {
+ attach(Callback(obj, method));
+ }
+
+ static void set_network_interface(NetworkInterface* ifc);
+
+ static NetworkInterface* get_network_interface();
+
+ // the unit of speed is k/s
+ static void bca_coap_get_statistic(float* upload_speed, float* download_speed);
+private:
+
+ void on_read();
+
+ Socket* _socket;
+ bca_addr_t _addr;
+ Callback _callback;
+
+ static NetworkInterface* _s_interface;
+};
+
+} // namespace duer
+
+#endif // BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_ADAPTER_BAIDU_CA_NETWORK_SOCKET_H
