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

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