localconnection.h
来自「这是整套横扫千军3D版游戏的源码」· C头文件 代码 · 共 62 行
H
62 行
#ifndef _LOCALCONNECTION
#define _LOCALCONNECTION
#include <boost/thread/mutex.hpp>
#include <deque>
#include "Connection.h"
#include "RawPacket.h"
namespace netcode {
/**
@brief Class for local connection between server / client
Directly connects to each others inputbuffer to increase performance. The server and the client have to run in one instance of spring for this to work, otherwise a normal UDP connection had to be used.
IMPORTANT: You must not have more than two instances of this
*/
class CLocalConnection : public CConnection
{
public:
/**
@brief Constructor
@throw network_error When there already 2 instances
*/
CLocalConnection();
virtual ~CLocalConnection();
/**
@brief Send data to other instance
*/
virtual void SendData(const unsigned char *data, const unsigned length);
virtual const RawPacket* Peek(unsigned ahead) const;
/**
@brief Get data
*/
virtual RawPacket* GetData();
/// does nothing
virtual void Flush(const bool forced = false);
/// is always false
virtual bool CheckTimeout() const;
private:
typedef std::deque<RawPacket*> MsgQueue;
static MsgQueue Data[2];
static boost::mutex Mutex[2];
unsigned OtherInstance() const;
/// we can have 2 Instances, one in serverNet and one in net
static unsigned Instances;
/// which instance we are
unsigned instance;
};
} // namespace netcode
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?