#pragma once #include "CGlass.h" #include #include namespace SERVO { class CGlassPool { public: CGlassPool(); ~CGlassPool(); public: void initPool(); void term(); CGlass* allocaGlass(); void freeGlass(CGlass* pGlass); int getAvailableSize(); private: inline void Lock() { EnterCriticalSection(&m_criticalSection); } inline void Unlock() { LeaveCriticalSection(&m_criticalSection); } private: CRITICAL_SECTION m_criticalSection; std::map m_mapOccupation; // ʹÓÃÖÐµÄ std::list m_lsitAvailable; // ¿ÕÏÐµÄ }; }