为之后的跨平台Select模型作准备,先写一个网络事件类:
#ifndef __NETWORKEVENT_H__
#define __NETWORKEVENT_H__
#include "Platform.h"
namespace LinWin
{
class CNetworkEvent
{
public:
virtual int OnAccept(net_socket_fd &fdAccept) = 0;
virtual int OnRead(net_socket_fd fd) = 0;
virtual int OnWrite(net_socket_fd fd) = 0;
virtual int OnClose(net_socket_fd fd) = 0;
};
}
#endif // !__NETWORKEVENT_H__
这也是一个纯虚类,真正的实现类继承此类实现所有功能。不知道这样实现起来,会使编程起来更容易,还是更复杂。但尝试一下总是可以的。我的目标是尽量降低类之间的耦合,更依赖抽象(类),而不是更依赖实现(类)。