// MCpp_MulticamObjectWithSignaling.h - MULTICAM C++ API - MulticamObjectWithSignaling #if !defined(__MCPP_MULTICAMOBJECTWITHSIGNALING_H__) #define __MCPP_MULTICAMOBJECTWITHSIGNALING_H__ namespace Euresys { namespace MultiCam { namespace Internal { template class Container { public: Container() {} virtual inline ~Container() {} virtual T At(int Index) const = 0; virtual int GetCount() const = 0; virtual int Add(T &item) = 0; virtual void Assign(int , T ) {} virtual void DeleteAll() {} }; } class SignalInfo; class Callback; template class UserCallback; class MultiCamObjectWithSignaling : public MultiCamObject { private: Internal::Container *Callbacks; bool CbReg; void GetSignalInfo(PMCSIGNALINFO mcInfo, SignalInfo *Info); public: void CbRoutine(PMCSIGNALINFO mcInfo); void RegisterCallbackInternal(Callback *cb, MCSIGNAL Signal); MultiCamObjectWithSignaling(); virtual ~MultiCamObjectWithSignaling(); void UnregisterCallback(MCSIGNAL signal); void RegisterRawCallback(void *, void *, int); void WaitSignal(MCSIGNAL signal, unsigned int timeout, SignalInfo &info) { WaitForSignal(signal, timeout, info); } void WaitForSignal(MCSIGNAL signal, unsigned int timeout, SignalInfo &info); void GetSignalInfo(MCSIGNAL signal, SignalInfo &info); }; } } #endif