GrabBag/Device/MvsDevice/_Inc/MvsSDKManager.h
2026-06-08 17:36:13 +08:00

37 lines
802 B
C++

#ifndef MVS_SDK_MANAGER_H
#define MVS_SDK_MANAGER_H
#include <mutex>
#include <atomic>
/**
* @brief MvsSDKManager
*
* 海康 MVS SDK 全局生命周期管理:内部走引用计数,多个 IMvsDevice 共享。
* 真正调用 MV_CC_Initialize / MV_CC_Finalize 仅在第一次和最后一次时执行。
*/
class MvsSDKManager
{
public:
static MvsSDKManager& GetInstance();
int InitSDK();
int UninitSDK();
bool IsSDKInitialized() const;
int GetRefCount() const;
private:
MvsSDKManager();
~MvsSDKManager();
MvsSDKManager(const MvsSDKManager&) = delete;
MvsSDKManager& operator=(const MvsSDKManager&) = delete;
std::mutex m_mutex;
std::atomic<int> m_refCount;
bool m_bSDKInitialized;
};
#endif // MVS_SDK_MANAGER_H