2011-06-17 34 views
1

我在网络程序的工作,我有这样的代码在我的线程池无符号的字符来枚举

unsigned char type = pdata[0]; 
Packet *packet = m_packetFactory->createInstance(type); 

的CreateInstance需要一个枚举类型箱子一个包基于枚举变量;

客户端是使用Java和序列化这样

final byte LOGIN_REQUEST = 1; 
. 
. 
bBuffer.put(LOGIN_REQUEST); 

我如何得到这个枚举类型,所以我可以传递到的createInstance method..Thanks提前的第一个字节..

+1

使用typecast的问题是什么? – 2011-06-17 06:08:22

回答

3

如果您确定数据是有效的,只需将其转换为枚举类型:

enum MyEnum{ 
    EXAMPLE_1 = 0, 
    ... 
}; 

char type = 0; 
MyEnum etype = static_cast<MyEnum>(type);