MediaServer.hpp
1 //
2 // Created by xiong on 2020/10/27.
3 //
4 
5 #ifndef EMX_MEDIASERVER_HPP
6 #define EMX_MEDIASERVER_HPP
7 
8 #include "EmxCore.hpp"
9 #include "media/common/MediaTypedef.hpp"
10 #include "media/server/MediaServerBase.hpp"
11 namespace Emx {
15  class MediaServerCtx;
16 
17  class MediaFactory;
18 
19  class MediaServer {
20  public:
22 
23  virtual ~MediaServer() {}
24 
25  using OnCreated = std::function<void()>;
26 
27  void Create(OnCreated cb, MediaFactory *factory);
28 
29  void Destroy();
30 
31  private:
32  ErrCodeE OnRecvReq(uint32_t module, uint32_t method, int32_t chn, const char *data, int32_t size,
33  std::string &out);
34 
35  protected:
36  virtual ErrCodeE OnRecvReqSub(uint32_t module, uint32_t method, int chn, const char *data, int32_t size,
37  std::string &out) {
39  }
40 
41  private:
42  void RunRpc();
43 
44  void RunTopic();
45 
46  private:
47  MediaServerCtx *m_ctx;
48  MsgRpcRep m_resp;
49  OnCreated m_cb;
50  EuvTimer m_timer;
51  };
53 }// namespace Emx
54 
55 #endif//EMX_MEDIASERVER_HPP
基于EuvLoop的定时器,很有用的一个东西
Definition: EuvTimer.hpp:16
Definition: MediaFactory.hpp:18
Definition: MediaServerCtx.hpp:17
Definition: MediaServer.hpp:19
std::function< void()> OnCreated
Definition: MediaServer.hpp:25
void Create(OnCreated cb, MediaFactory *factory)
virtual ~MediaServer()
Definition: MediaServer.hpp:23
virtual ErrCodeE OnRecvReqSub(uint32_t module, uint32_t method, int chn, const char *data, int32_t size, std::string &out)
Definition: MediaServer.hpp:36
异步非阻塞响应端
Definition: MsgRpc.hpp:136
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
@ OperationNotSupport
操作不支持
Definition: EmxGpio.hpp:10