ex

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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers baidu_ca_handler.h Source File

baidu_ca_handler.h

00001 // Copyright 2017 Baidu Inc. All Rights Reserved.
00002 // Author: Su Hao (suhao@baidu.com)
00003 //
00004 // Description: Handler
00005 
00006 #ifndef BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_SCHEDULER_BAIDU_CA_HANDLER_H
00007 #define BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_SCHEDULER_BAIDU_CA_HANDLER_H
00008 
00009 #include "rtos.h"
00010 #include "baidu_ca_message.h"
00011 
00012 namespace duer {
00013 
00014 class Handler {
00015 public:
00016     class OnMessageListener {
00017     public:
00018 
00019         virtual bool on_message(Message& message) = 0;
00020 
00021         virtual ~OnMessageListener() {}
00022 
00023     };
00024 
00025     Handler();
00026 
00027     virtual ~Handler();
00028 
00029     void send_message(int what, void* object);
00030 
00031     void send_message(const Message& message);
00032 
00033     void set_on_message_listener(OnMessageListener* listener);
00034 
00035 protected:
00036 
00037     virtual void handle_message(Message& message);
00038 
00039 private:
00040 
00041     void loop();
00042 
00043     rtos::Thread                _thread;
00044     rtos::Queue<Message, 20>    _queue;
00045     OnMessageListener*          _listener;
00046 };
00047 
00048 } // namespace duer
00049 
00050 #endif // BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_SCHEDULER_BAIDU_CA_HANDLER_H