IndexAlloc.h 560 B

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef __INDEXALLOC_H__
  2. #define __INDEXALLOC_H__
  3. #include "Lock.h"
  4. typedef struct _SIndex
  5. {
  6. int m_nIdx; // 索引
  7. BOOL m_bUsed; // 是否已使用
  8. _SIndex()
  9. {
  10. m_nIdx = -1;
  11. m_bUsed = FALSE;
  12. }
  13. }SINDEX, *LPINDEX;
  14. class CIndexAlloc
  15. {
  16. public:
  17. CIndexAlloc();
  18. ~CIndexAlloc();
  19. BOOL Initialize(IN CONST int dwMaxNum);
  20. int AllocIndex();
  21. void FreeIndex(IN CONST int dwIndex);
  22. int GetIndexNum(){return m_nIndexNum;}
  23. private:
  24. LPINDEX m_lpIndexs; //索引集
  25. int m_nIndexNum; //索引数量
  26. CLock m_lock;
  27. };
  28. #endif //__INDEXALLOC_H__