Snap Live SDK  8.2.1
ThreadManager.h
1 
15 #ifndef THREAD_MANAGER_H
16 #define THREAD_MANAGER_H
17 
18 #include <stdlib.h>
19 #include "Errors.h"
20 
21 namespace KantarMedia
22 {
37  {
38  public:
39 #if defined(__linux__) || defined(__unix__) || defined(MAC_OS)
40 
44  {
48  };
49 
50 #endif
51 
52  public:
53  virtual ~IThreadManager();
54 
63  virtual AUDIOSDK_Error SetThreadCPUAffinity(size_t affinity_mask) = 0;
64 
65 #if defined(_WIN32)
66 
78  virtual AUDIOSDK_Error SetThreadPriority(int priority) = 0;
79 #elif defined(__linux__) || defined(__unix__) || defined(__APPLE__)
80 
102  virtual AUDIOSDK_Error SetThreadPriority(eSchedulerPolicy policy, int priority) = 0;
103 #endif
104  };
105 
110 }
111 
112 #endif // THREAD_MANAGER_H
AUDIOSDK_Error
Error codes definition.
Definition: Errors.h:36
virtual AUDIOSDK_Error SetThreadCPUAffinity(size_t affinity_mask)=0
Set CPU affinity for all threads created by the watermarking library.
virtual AUDIOSDK_Error SetThreadPriority(eSchedulerPolicy policy, int priority)=0
Set thread priority on all threads created by the SDK.
Definition: ACRCommonEmbedder.h:22
Base interface for thread priority/affinity management.
Definition: ThreadManager.h:36
real-time scheduling policy with timeslice
Definition: ThreadManager.h:47
Error codes definition.
real-time scheduling policy with no timeslice
Definition: ThreadManager.h:46
eSchedulerPolicy
scheduler policies available for thread priority management
Definition: ThreadManager.h:43
Default scheduling policy.
Definition: ThreadManager.h:45