33 lines
517 B
C
33 lines
517 B
C
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#ifndef __IDALLOCATOR_H__
|
|||
|
|
#define __IDALLOCATOR_H__
|
|||
|
|
|
|||
|
|
#include <map>
|
|||
|
|
using namespace std;
|
|||
|
|
|
|||
|
|
// ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49>Ǵ<EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD>
|
|||
|
|
|
|||
|
|
#define INVALID_ID 0xFFFF
|
|||
|
|
|
|||
|
|
class IDAllocator
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
IDAllocator(unsigned short max);
|
|||
|
|
virtual ~IDAllocator(void);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|||
|
|
void resetMaxID(unsigned short max);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ID
|
|||
|
|
unsigned short allocateID();
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ID
|
|||
|
|
bool recycleID(unsigned short id);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
unsigned short m_max; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
map<unsigned short,unsigned short> m_idMap;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif
|