51 lines
1.7 KiB
C++
51 lines
1.7 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//
|
|
// Utilities for globally unique IDs
|
|
//=============================================================================//
|
|
|
|
#ifndef UNIQUEID_H
|
|
#define UNIQUEID_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "tier1/utlvector.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Forward declarations
|
|
//-----------------------------------------------------------------------------
|
|
struct UniqueId_t;
|
|
class CUtlBuffer;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Defines a globally unique ID
|
|
//-----------------------------------------------------------------------------
|
|
struct UniqueId_t {
|
|
unsigned char m_Value[16];
|
|
};
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Methods related to unique ids
|
|
//-----------------------------------------------------------------------------
|
|
void CreateUniqueId(UniqueId_t *pDest);
|
|
void InvalidateUniqueId(UniqueId_t *pDest);
|
|
bool IsUniqueIdValid(const UniqueId_t &id);
|
|
bool IsUniqueIdEqual(const UniqueId_t &id1, const UniqueId_t &id2);
|
|
void UniqueIdToString(const UniqueId_t &id, char *pBuf, int nMaxLen);
|
|
bool UniqueIdFromString(UniqueId_t *pDest, const char *pBuf, int nMaxLen = 0);
|
|
void CopyUniqueId(const UniqueId_t &src, UniqueId_t *pDest);
|
|
bool Serialize(CUtlBuffer &buf, const UniqueId_t &src);
|
|
bool Unserialize(CUtlBuffer &buf, UniqueId_t &dest);
|
|
|
|
inline bool operator==(const UniqueId_t &lhs, const UniqueId_t &rhs) {
|
|
return !Q_memcmp((void *)&lhs.m_Value[0], (void *)&rhs.m_Value[0],
|
|
sizeof(lhs.m_Value));
|
|
}
|
|
|
|
#endif // UNIQUEID_H
|