// MCpp_Board.h - MULTICAM C++ API - BoardList #if !defined(__MCPP_BOARDLIST_H__) #define __MCPP_BOARDLIST_H__ namespace Euresys { namespace MultiCam { // ******************************************************************************************** // BoardList class // --------------- class BoardListImpl { private: Board **List; int Count; public: BoardListImpl(); ~BoardListImpl(); void Init(); Board *operator[] (int driverIndex) { return GetBoardByDriverIndex(driverIndex); } Board *GetBoardByDriverIndex(int driverIndex); Board *GetBoardByPciPosition(int pciPosition); Board *GetBoardByBoardName(const char *boardName); Board *GetBoardByBoardIdentifier(const char *boardIdentifier); int GetCount(); void Clear(); }; inline BoardListImpl* GetBoardListImpl() { static BoardListImpl impl; return &impl; } class BoardList { public: void Init() { GetBoardListImpl()->Init(); } Board *operator[] (int driverIndex) { return GetBoardListImpl()->GetBoardByDriverIndex(driverIndex); } Board *GetBoardByDriverIndex(int driverIndex) { return GetBoardListImpl()->GetBoardByDriverIndex(driverIndex); } Board *GetBoardByPciPosition(int pciPosition) { return GetBoardListImpl()->GetBoardByPciPosition(pciPosition); } Board *GetBoardByBoardName(const char *boardName) { return GetBoardListImpl()->GetBoardByBoardName(boardName); } Board *GetBoardByBoardIdentifier(const char *boardIdentifier) { return GetBoardListImpl()->GetBoardByBoardIdentifier(boardIdentifier); } int GetCount() { return GetBoardListImpl()->GetCount(); } void Clear() { GetBoardListImpl()->Clear(); } }; } } #endif