Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

48 lines
1.2 KiB

//====== Copyright (c), Valve Corporation, All rights reserved. =======
//
// Purpose: Holds the CNetPacket class
//
//=============================================================================
#ifndef GCNETPACKET_H
#define GCNETPACKET_H
namespace GCSDK
{
//-----------------------------------------------------------------------------
// Purpose: reference-counted received network packet
//-----------------------------------------------------------------------------
class CNetPacket
{
public:
CNetPacket();
~CNetPacket();
//called to allocate a buffer for the net packet of the specified size. This takes an optional pointer
//of which it will copy into the data if appropriate
void Init( uint32 cubData, const void* pCopyData = NULL );
//called when working with a net packet that you want to reference a separate buffer
void InitAdoptBuffer( uint32 cubData, uint8* pubData );
void OrphanBuffer();
// data
uint8 *PubData() const { return m_pubData; }
uint CubData() const { return m_cubData; }
// ownership
void AddRef();
void Release();
private:
int m_cRef; // reference count, deletes self when 0
uint m_cubData;
uint8 *m_pubData;
};
} // namespace GCSDK
#endif // GCNETPACKET_H