mirror of
https://github.com/SWG-Source/src.git
synced 2026-07-14 23:07:48 -04:00
92 lines
3.1 KiB
C++
Executable File
92 lines
3.1 KiB
C++
Executable File
// ======================================================================
|
|
//
|
|
// ServerConnection.h
|
|
// copyright 2000 Verant Interactive
|
|
// Author: Justin Randall
|
|
// ======================================================================
|
|
|
|
#ifndef _ServerConnection_H
|
|
#define _ServerConnection_H
|
|
|
|
// ======================================================================
|
|
|
|
#include "sharedMessageDispatch/Emitter.h"
|
|
#include "sharedMessageDispatch/Message.h"
|
|
#include "sharedNetwork/Connection.h"
|
|
|
|
// ======================================================================
|
|
|
|
class GameNetworkMessage;
|
|
|
|
// ======================================================================
|
|
|
|
class ServerConnection: public Connection, public MessageDispatch::Emitter
|
|
{
|
|
public:
|
|
ServerConnection (const std::string & address, const unsigned short port, const NetworkSetupData &);
|
|
ServerConnection (UdpConnectionMT *, TcpClient * t);
|
|
virtual ~ServerConnection ();
|
|
|
|
static void install ();
|
|
static const unsigned long makeProcessId ();
|
|
static bool isMessageForwardable (unsigned long int type);
|
|
|
|
const unsigned long getProcessId () const;
|
|
const unsigned long getOsProcessId () const;
|
|
virtual void onConnectionClosed ();
|
|
virtual void onConnectionOpened ();
|
|
virtual void onConnectionOverflowing (const unsigned int bytesPending);
|
|
virtual void onConnectionStalled (const unsigned long stallTimeMs);
|
|
virtual void onReceive (const Archive::ByteStream & message);
|
|
virtual void reportReceive (const Archive::ByteStream & bs);
|
|
virtual void reportSend (const Archive::ByteStream & bs);
|
|
virtual void send (const GameNetworkMessage & message, const bool reliable);
|
|
virtual void setProcessId (const uint32 newProcessId);
|
|
|
|
public:
|
|
class MessageConnectionCallback: public MessageDispatch::MessageBase
|
|
{
|
|
public:
|
|
MessageConnectionCallback(const char * const messageName);
|
|
~MessageConnectionCallback();
|
|
};
|
|
|
|
class MessageConnectionOverflowing : public MessageDispatch::MessageBase
|
|
{
|
|
public:
|
|
MessageConnectionOverflowing(const unsigned int bytesPending);
|
|
~MessageConnectionOverflowing();
|
|
|
|
const unsigned int getBytesPending() const;
|
|
private:
|
|
unsigned int bytesPending;
|
|
};
|
|
|
|
private:
|
|
ServerConnection(const ServerConnection&); //disable
|
|
ServerConnection &operator=(const ServerConnection&); //disable
|
|
|
|
private:
|
|
unsigned long processId;
|
|
unsigned long osProcessId; // remote's operating system assigned PID
|
|
};
|
|
|
|
//-----------------------------------------------------------------------
|
|
|
|
inline const unsigned long ServerConnection::getProcessId(void) const
|
|
{
|
|
return processId;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------
|
|
|
|
inline const unsigned long ServerConnection::getOsProcessId() const
|
|
{
|
|
return osProcessId;
|
|
}
|
|
|
|
// ======================================================================
|
|
|
|
#endif // _ServerConnection_H
|
|
|