|
JNetLibray
|
'JNetGroupServer' 인스턴스로부터 그룹 메시지 큐에 전달된 메시지를 싱글 스레드가 수신하여 메시지 처리 콜백을 호출
단일 세션에 대한 수신 직렬 처리를 보장하며, 세션 참조에 대한 유일성이 보장됨으로 수신 이벤트 처리 시 락 없는 로직 구현 가능
더 자세히 ...
#include <JNetCore.h>
클래스 | |
| struct | GroupTheradMessage |
| 그룹 스레드에 전달되는 메시지 구조체 더 자세히 ... | |
Public 멤버 함수 | |
| int | GetGroupThreadLoopFPS () |
| void | Init (JNetGroupServer *server, GroupID groupID, bool threadPriorBoost=false, bool calcFps=false) |
| bool | Start () |
| void | Stop () |
| void | EnterSession (SessionID64 sessionID) |
| void | LeaveSession (SessionID64 sessionID) |
| void | PushSessionMessage (SessionID64 sessionID, JBuffer *msg) |
| void | PushGroupMessage (GroupID senderGroupID, JBuffer *msg) |
Protected 멤버 함수 | |
| GroupID | GetGroupID () |
| void | Disconnect (SessionID64 sessionID) |
| bool | SendPacket (SessionID64 sessionID, JBuffer *sendPktPtr, bool postToWorker=false, bool encoded=false) |
| bool | SendPacketBlocking (SessionID64 sessionID, JBuffer *sendPktPtr, bool encoded=false) |
| bool | BufferSendPacket (SessionID64 sessionID, JBuffer *sendPktPtr, bool encoded=false) |
| bool | SendBufferedPacket (SessionID64 sessionID, bool postToWorker=false) |
| void | CreateGroup (GroupID newGroupID, JNetGroupThread *groupThread, bool threadPriorBoost=false) |
| void | DeleteGroup (GroupID delGroupID) |
| void | ForwardSessionToGroup (SessionID64 sessionID, GroupID destGroup) |
| void | ForwardSessionMessage (SessionID64 sessionID, JBuffer *msg) |
| void | SendGroupMessage (GroupID groupID, JBuffer *msg) |
| DWORD | AllocTlsMemPool () |
| JBuffer * | AllocSerialBuff () |
| JBuffer * | AllocSerialSendBuff (uint16 len, bool LAN=false) |
| void | FreeSerialBuff (JBuffer *buff) |
| void | AddRefSerialBuff (JBuffer *buff) |
| virtual void | OnStart () |
| virtual void | OnStop () |
| virtual void | OnEnterClient (SessionID64 sessionID)=0 |
| virtual void | OnLeaveClient (SessionID64 sessionID)=0 |
| virtual void | OnMessage (SessionID64 sessionID, JBuffer &recvData)=0 |
| virtual void | OnGroupMessage (GroupID groupID, JBuffer &msg)=0 |
Protected 속성 | |
| JNetGroupServer * | m_Server |
Private 타입 | |
| enum | GroupTheradMessageType { enSessionEnter , enSessionLeave , enSessionMessage , enGroupMessage } |
정적 Private 멤버 함수 | |
| static UINT __stdcall | SessionGroupThreadFunc (void *arg) |
Private 속성 | |
| GroupID | m_GroupID |
| 그룹 스레드 인스턴스의 관리 대상인 그룹 ID | |
| bool | m_PriorBoost |
| 그룹 스레드의 우선순위 부스팅 여부 플래그 | |
| bool | m_CalcFps |
| 그룹 스레드의 FPS(Framge per second) 측정 여부 플래그 | |
| HANDLE | m_GroupThreadHnd |
| 그룹 스레드 핸들 | |
| bool | m_GroupThreadStop |
| 그룹 스레드 중지 플래그 | |
| LockFreeQueue< GroupTheradMessage > | m_LockFreeMessageQueue |
| int | m_GroupThreadProcFPS |
'JNetGroupServer' 인스턴스로부터 그룹 메시지 큐에 전달된 메시지를 싱글 스레드가 수신하여 메시지 처리 콜백을 호출
단일 세션에 대한 수신 직렬 처리를 보장하며, 세션 참조에 대한 유일성이 보장됨으로 수신 이벤트 처리 시 락 없는 로직 구현 가능
| 열거형 멤버 | |
|---|---|
| enSessionEnter | |
| enSessionLeave | |
| enSessionMessage | |
| enGroupMessage | |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
staticprivate |
|
protected |
|
private |
그룹 스레드 인스턴스의 관리 대상인 그룹 ID
|
private |
그룹 스레드의 우선순위 부스팅 여부 플래그
|
private |
그룹 스레드의 FPS(Framge per second) 측정 여부 플래그
|
private |
그룹 스레드 핸들
|
private |
그룹 스레드 중지 플래그
|
private |
|
private |