raw_data_uv_ipc_server.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "raw_data_uv_ipc_server.h"
  2. #ifdef _WIN32
  3. #else
  4. #include <unistd.h>
  5. #endif
  6. RawDataUVIPCServer::RawDataUVIPCServer()
  7. {
  8. _client_connected_count = 0;
  9. _external_sink = NULL;
  10. }
  11. RawDataUVIPCServer::~RawDataUVIPCServer()
  12. {
  13. }
  14. bool RawDataUVIPCServer::StartPipeServer(char* pipe_name, UVIPCSink* sink)
  15. {
  16. _external_sink = sink;
  17. return _pipe_server.StartInSubThread(pipe_name, true, this, NULL);
  18. }
  19. bool RawDataUVIPCServer::StopPipeServer()
  20. {
  21. return _pipe_server.Stop();
  22. }
  23. bool RawDataUVIPCServer::SendMessage(const char* buf, int len)
  24. {
  25. if (_pipe_server.IsSubThreadRunning())
  26. {
  27. return _pipe_server.SendMessage(buf, len);
  28. }
  29. return false;
  30. }
  31. bool RawDataUVIPCServer::SendMessage(UVIPCMessage* msg)
  32. {
  33. if (_pipe_server.IsSubThreadRunning())
  34. {
  35. return _pipe_server.SendMessage(msg);
  36. }
  37. return false;
  38. }
  39. void RawDataUVIPCServer::onMessageRecvNotification(UVIPCMessage* msg)
  40. {
  41. if (_external_sink)
  42. _external_sink->onMessageRecvNotification(msg);
  43. }
  44. void RawDataUVIPCServer::onConnect()
  45. {
  46. ++_client_connected_count;
  47. if (_external_sink)
  48. _external_sink->onConnect();
  49. }
  50. void RawDataUVIPCServer::onDisconnect()
  51. {
  52. --_client_connected_count;
  53. if (_external_sink)
  54. _external_sink->onConnect();
  55. }
  56. void RawDataUVIPCServer::onIdle()
  57. {
  58. if (_external_sink)
  59. _external_sink->onIdle();
  60. }