2011-06-17 38 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);