DJI Onboard SDK  4.0
dji_thread_manager.hpp
Go to the documentation of this file.
1 
29 #ifndef ONBOARDSDK_THREADMANAGER_H
30 #define ONBOARDSDK_THREADMANAGER_H
31 
32 namespace DJI
33 {
34 namespace OSDK
35 {
36 
38 class Vehicle;
39 
41 class Mutex
42 {
43 public:
44  Mutex();
45  virtual ~Mutex();
46 
47 public:
48  virtual void lock() = 0;
49  virtual void unlock() = 0;
50 }; // class Mutex
51 
52 class ThreadAbstract
53 {
54 public:
55  ThreadAbstract();
56  virtual ~ThreadAbstract();
57 
59 public:
60  virtual void lockRecvContainer() = 0;
61  virtual void freeRecvContainer() = 0;
62 
63  virtual void lockMSG() = 0;
64  virtual void freeMSG() = 0;
65 
66  virtual void lockACK() = 0;
67  virtual void freeACK() = 0;
68 
69  virtual void lockProtocolHeader();
70  virtual void freeProtocolHeader();
71 
72  virtual void lockNonBlockCBAck();
73  virtual void freeNonBlockCBAck();
74 
75  virtual void notifyNonBlockCBAckRecv();
76  virtual void nonBlockWait();
77 
78  virtual void lockStopCond();
79  virtual void freeStopCond();
80 
81  virtual void lockFrame();
82  virtual void freeFrame();
83 
85 public:
86  virtual void notify() = 0;
87  virtual void wait(int timeout) = 0;
88 
89 public:
90  virtual void init() = 0;
91 };
92 
93 class Thread
94 {
95 public:
96  Thread();
97  virtual ~Thread();
98 
99  virtual bool createThread() = 0;
100  virtual int stopThread() = 0;
101 
102  bool getStopCondition();
103 
104  void setStopCondition(bool condition);
105 
106 protected:
107  Vehicle* vehicle;
108  int type;
109  bool stop_condition;
110 };
111 
112 } // namespace DJI
113 } // namespace OSDK
114 
115 #endif // ONBOARDSDK_THREADMANAGER_H
handle array of characters
Definition: commondatarangehandler.h:14
Definition: dji_thread_manager.hpp:41