Files

33 lines
517 B
C
Raw Permalink Normal View History

2026-03-03 13:56:44 +08:00
#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