This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

53 lines
1.6 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef INETWORK_H
#define INETWORK_H
#ifdef _WIN32
#pragma once
#endif
class IConnectionlessPacketHandler;
abstract_class INetwork {
public:
virtual ~INetwork(void){};
virtual void Init(void) = 0;
virtual void Config(bool multiplayer);
virtual void IsMultiplayer(
void) = 0; // true = full MP mode, false = loopback SP mode
virtual void IsEnabled(void) = 0;
// shuts down Network, closes all UPD/TCP channels
virtual void Shutdown(void) = 0;
// must be called each system frame to do any asynchronouse TCP stuff
virtual void RunFrame(double time) = 0;
virtual void ProcessSocket(netsrc_t sock,
IConnectionlessPacketHandler * handler) = 0;
virtual void OutOfBandPrintf(netsrc_t sock, netadr_t & adr,
PRINTF_FORMAT_STRING const char *format,
...) = 0;
virtual void SendConnectionless(netsrc_t sock, netadr_t & adr,
unsigned char *data, int length) = 0;
virtual void LogBadPacket(netpacket_t * packet) = 0;
// Address conversion
virtual bool StringToAdr(const char *s, netadr_t *a) = 0;
// Convert from host to network byte ordering
virtual unsigned short HostToNetShort(unsigned short us_in);
// and vice versa
virtual unsigned short NetToHostShort(unsigned short us_in);
};
#endif // INETWORK_H