Files
Sun1602/Server/AuthSystem/include/ClientStub/WBANetwork/util/EventQueue.h
T
2022-10-26 12:25:11 +08:00

43 lines
851 B
C++

#ifndef __WBANetwork_EventQueue_H
#define __WBANetwork_EventQueue_H
namespace WBANetwork
{
typedef struct tag_AsyncResult AsyncResult;
class Socket;
class EventHandler
{
public:
virtual ~EventHandler() {}
virtual void HandleEvent(AsyncResult* result) = 0;
virtual Socket* GetHandle() = 0;
virtual char* GetBuffer() = 0;
virtual int GetBufferSize() = 0;
protected:
EventHandler() {}
};
class EventQueue
{
public:
EventQueue();
~EventQueue();
bool Create(int threadCount);
void Close();
bool AddEvent(EventHandler* handler);
void RemoveEvent(EventHandler* handler);
EventHandler* GetCompletionEvent(AsyncResult** result, int ms);
void PostCompletion(EventHandler* handler, AsyncResult* result);
private:
HANDLE m_handleQueue;
};
}
#endif