TrinityCore
Loading...
Searching...
No Matches
ObjectGuid.h File Reference
#include "Define.h"
#include "EnumFlag.h"
#include "advstd.h"
#include <array>
#include <functional>
#include <list>
#include <set>
#include <string>
#include <type_traits>
#include <vector>
#include <unordered_set>
+ Include dependency graph for ObjectGuid.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ObjectGuidTraits< high >
 
class  ObjectGuidFactory
 
class  ObjectGuid
 
class  ObjectGuidGenerator
 
struct  std::hash< ObjectGuid >
 

Namespaces

namespace  std
 STL namespace.
 
namespace  Trinity
 
namespace  Trinity::Legacy
 

Macros

#define NUM_CLIENT_OBJECT_TYPES   14
 
#define MAKE_GUID_TRAIT(high, sequence, format)
 

Typedefs

using GuidSet = std::set< ObjectGuid >
 
using GuidList = std::list< ObjectGuid >
 
using GuidVector = std::vector< ObjectGuid >
 
using GuidUnorderedSet = std::unordered_set< ObjectGuid >
 

Enumerations

enum  TypeID {
  TYPEID_OBJECT = 0 , TYPEID_ITEM = 1 , TYPEID_CONTAINER = 2 , TYPEID_AZERITE_EMPOWERED_ITEM = 3 ,
  TYPEID_AZERITE_ITEM = 4 , TYPEID_UNIT = 5 , TYPEID_PLAYER = 6 , TYPEID_ACTIVE_PLAYER = 7 ,
  TYPEID_GAMEOBJECT = 8 , TYPEID_DYNAMICOBJECT = 9 , TYPEID_CORPSE = 10 , TYPEID_AREATRIGGER = 11 ,
  TYPEID_SCENEOBJECT = 12 , TYPEID_CONVERSATION = 13
}
 
enum  TypeMask {
  TYPEMASK_OBJECT = 0x0001 , TYPEMASK_ITEM = 0x0002 , TYPEMASK_CONTAINER = 0x0004 , TYPEMASK_AZERITE_EMPOWERED_ITEM = 0x0008 ,
  TYPEMASK_AZERITE_ITEM = 0x0010 , TYPEMASK_UNIT = 0x0020 , TYPEMASK_PLAYER = 0x0040 , TYPEMASK_ACTIVE_PLAYER = 0x0080 ,
  TYPEMASK_GAMEOBJECT = 0x0100 , TYPEMASK_DYNAMICOBJECT = 0x0200 , TYPEMASK_CORPSE = 0x0400 , TYPEMASK_AREATRIGGER = 0x0800 ,
  TYPEMASK_SCENEOBJECT = 0x1000 , TYPEMASK_CONVERSATION = 0x2000 , TYPEMASK_SEER = TYPEMASK_PLAYER | TYPEMASK_UNIT | TYPEMASK_DYNAMICOBJECT
}
 
enum class  HighGuid {
  Null = 0 , Uniq = 1 , Player = 2 , Item = 3 ,
  WorldTransaction = 4 , StaticDoor = 5 , Transport = 6 , Conversation = 7 ,
  Creature = 8 , Vehicle = 9 , Pet = 10 , GameObject = 11 ,
  DynamicObject = 12 , AreaTrigger = 13 , Corpse = 14 , LootObject = 15 ,
  SceneObject = 16 , Scenario = 17 , AIGroup = 18 , DynamicDoor = 19 ,
  ClientActor = 20 , Vignette = 21 , CallForHelp = 22 , AIResource = 23 ,
  AILock = 24 , AILockTicket = 25 , ChatChannel = 26 , Party = 27 ,
  Guild = 28 , WowAccount = 29 , BNetAccount = 30 , GMTask = 31 ,
  MobileSession = 32 , RaidGroup = 33 , Spell = 34 , Mail = 35 ,
  WebObj = 36 , LFGObject = 37 , LFGList = 38 , UserRouter = 39 ,
  PVPQueueGroup = 40 , UserClient = 41 , PetBattle = 42 , UniqUserClient = 43 ,
  BattlePet = 44 , CommerceObj = 45 , ClientSession = 46 , Cast = 47 ,
  ClientConnection = 48 , ClubFinder = 49 , ToolsClient = 50 , WorldLayer = 51 ,
  ArenaTeam = 52 , Count
}
 
enum class  ObjectGuidSequenceSource { None = 0x0 , Global = 0x1 , Realm = 0x2 , Map = 0x4 }
 
enum class  ObjectGuidFormatType {
  Null , Uniq , Player , Item ,
  WorldObject , Transport , ClientActor , ChatChannel ,
  Global , Guild , MobileSession , WebObj ,
  LFGObject , LFGList , Client , ClubFinder ,
  ToolsClient , WorldLayer
}
 
enum class  Trinity::Legacy::TypeID {
  Trinity::Legacy::Object = 0 , Trinity::Legacy::Item = 1 , Trinity::Legacy::Container = 2 , Trinity::Legacy::Unit = 3 ,
  Trinity::Legacy::Player = 4 , Trinity::Legacy::GameObject = 5 , Trinity::Legacy::DynamicObject = 6 , Trinity::Legacy::Corpse = 7 ,
  Trinity::Legacy::AreaTrigger = 8 , Trinity::Legacy::SceneObject = 9 , Trinity::Legacy::Conversation = 10 , Trinity::Legacy::Max
}
 

Functions

 DEFINE_ENUM_FLAG (ObjectGuidSequenceSource)
 
 MAKE_GUID_TRAIT (HighGuid::Null, ObjectGuidSequenceSource::None, ObjectGuidFormatType::Null)
 
 MAKE_GUID_TRAIT (HighGuid::Uniq, ObjectGuidSequenceSource::None, ObjectGuidFormatType::Uniq)
 
 MAKE_GUID_TRAIT (HighGuid::Player, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::Player)
 
 MAKE_GUID_TRAIT (HighGuid::Item, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::Item)
 
 MAKE_GUID_TRAIT (HighGuid::WorldTransaction, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::StaticDoor, ObjectGuidSequenceSource::Global|ObjectGuidSequenceSource::Map, ObjectGuidFormatType::Transport)
 
 MAKE_GUID_TRAIT (HighGuid::Transport, ObjectGuidSequenceSource::Global|ObjectGuidSequenceSource::Map, ObjectGuidFormatType::Transport)
 
 MAKE_GUID_TRAIT (HighGuid::Conversation, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::Creature, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::Vehicle, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::Pet, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::GameObject, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::DynamicObject, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::AreaTrigger, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::Corpse, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::LootObject, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::SceneObject, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::Scenario, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::AIGroup, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::DynamicDoor, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::ClientActor, ObjectGuidSequenceSource::None, ObjectGuidFormatType::ClientActor)
 
 MAKE_GUID_TRAIT (HighGuid::Vignette, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::CallForHelp, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::AIResource, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::AILock, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::AILockTicket, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::ChatChannel, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::ChatChannel)
 
 MAKE_GUID_TRAIT (HighGuid::Party, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::Guild, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::Guild)
 
 MAKE_GUID_TRAIT (HighGuid::WowAccount, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::BNetAccount, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::GMTask, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::MobileSession, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::MobileSession)
 
 MAKE_GUID_TRAIT (HighGuid::RaidGroup, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::Spell, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::Mail, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::WebObj, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::WebObj)
 
 MAKE_GUID_TRAIT (HighGuid::LFGObject, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::LFGObject)
 
 MAKE_GUID_TRAIT (HighGuid::LFGList, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::LFGList)
 
 MAKE_GUID_TRAIT (HighGuid::UserRouter, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::PVPQueueGroup, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::UserClient, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::PetBattle, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::Client)
 
 MAKE_GUID_TRAIT (HighGuid::UniqUserClient, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::Client)
 
 MAKE_GUID_TRAIT (HighGuid::BattlePet, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::CommerceObj, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::Global)
 
 MAKE_GUID_TRAIT (HighGuid::ClientSession, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::Client)
 
 MAKE_GUID_TRAIT (HighGuid::Cast, ObjectGuidSequenceSource::Map, ObjectGuidFormatType::WorldObject)
 
 MAKE_GUID_TRAIT (HighGuid::ClientConnection, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::Client)
 
 MAKE_GUID_TRAIT (HighGuid::ClubFinder, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::ClubFinder)
 
 MAKE_GUID_TRAIT (HighGuid::ToolsClient, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::ToolsClient)
 
 MAKE_GUID_TRAIT (HighGuid::WorldLayer, ObjectGuidSequenceSource::Global, ObjectGuidFormatType::WorldLayer)
 
 MAKE_GUID_TRAIT (HighGuid::ArenaTeam, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::Guild)
 
TC_GAME_API ByteBufferoperator<< (ByteBuffer &buf, ObjectGuid const &guid)
 
TC_GAME_API ByteBufferoperator>> (ByteBuffer &buf, ObjectGuid &guid)
 
constexpr ::TypeID Trinity::Legacy::ConvertLegacyTypeID (TypeID legacyTypeID)
 
constexpr TypeMask Trinity::Legacy::ConvertLegacyTypeMask (uint32 legacyTypeMask)
 

Macro Definition Documentation

◆ MAKE_GUID_TRAIT

#define MAKE_GUID_TRAIT (   high,
  sequence,
  format 
)
Value:
template<> struct ObjectGuidTraits<high> \
{ \
static constexpr EnumFlag<ObjectGuidSequenceSource> SequenceSource = sequence; \
using Format = std::integral_constant<ObjectGuidFormatType, format>; \
}
std::integral_constant< ObjectGuidFormatType, ObjectGuidFormatType::Null > Format
Definition: ObjectGuid.h:167
static constexpr EnumFlag< ObjectGuidSequenceSource > SequenceSource
Definition: ObjectGuid.h:166

Definition at line 170 of file ObjectGuid.h.

◆ NUM_CLIENT_OBJECT_TYPES

#define NUM_CLIENT_OBJECT_TYPES   14

Definition at line 51 of file ObjectGuid.h.

Typedef Documentation

◆ GuidList

using GuidList = std::list<ObjectGuid>

Definition at line 385 of file ObjectGuid.h.

◆ GuidSet

using GuidSet = std::set<ObjectGuid>

Definition at line 384 of file ObjectGuid.h.

◆ GuidUnorderedSet

using GuidUnorderedSet = std::unordered_set<ObjectGuid>

Definition at line 387 of file ObjectGuid.h.

◆ GuidVector

using GuidVector = std::vector<ObjectGuid>

Definition at line 386 of file ObjectGuid.h.

Enumeration Type Documentation

◆ HighGuid

enum class HighGuid
strong
Enumerator
Null 
Uniq 
Player 
Item 
WorldTransaction 
StaticDoor 
Transport 
Conversation 
Creature 
Vehicle 
Pet 
GameObject 
DynamicObject 
AreaTrigger 
Corpse 
LootObject 
SceneObject 
Scenario 
AIGroup 
DynamicDoor 
ClientActor 
Vignette 
CallForHelp 
AIResource 
AILock 
AILockTicket 
ChatChannel 
Party 
Guild 
WowAccount 
BNetAccount 
GMTask 
MobileSession 
RaidGroup 
Spell 
Mail 
WebObj 
LFGObject 
LFGList 
UserRouter 
PVPQueueGroup 
UserClient 
PetBattle 
UniqUserClient 
BattlePet 
CommerceObj 
ClientSession 
Cast 
ClientConnection 
ClubFinder 
ToolsClient 
WorldLayer 
ArenaTeam 
Count 

Definition at line 72 of file ObjectGuid.h.

73{
74 Null = 0,
75 Uniq = 1,
76 Player = 2,
77 Item = 3,
79 StaticDoor = 5, //NYI
80 Transport = 6,
81 Conversation = 7,
82 Creature = 8,
83 Vehicle = 9,
84 Pet = 10,
85 GameObject = 11,
86 DynamicObject = 12,
87 AreaTrigger = 13,
88 Corpse = 14,
89 LootObject = 15,
90 SceneObject = 16,
91 Scenario = 17,
92 AIGroup = 18,
93 DynamicDoor = 19,
94 ClientActor = 20, //NYI
95 Vignette = 21,
96 CallForHelp = 22,
97 AIResource = 23,
98 AILock = 24,
99 AILockTicket = 25,
100 ChatChannel = 26,
101 Party = 27,
102 Guild = 28,
103 WowAccount = 29,
104 BNetAccount = 30,
105 GMTask = 31,
106 MobileSession = 32, //NYI
107 RaidGroup = 33,
108 Spell = 34,
109 Mail = 35,
110 WebObj = 36, //NYI
111 LFGObject = 37, //NYI
112 LFGList = 38, //NYI
113 UserRouter = 39,
114 PVPQueueGroup = 40,
115 UserClient = 41,
116 PetBattle = 42, //NYI
117 UniqUserClient = 43,
118 BattlePet = 44,
119 CommerceObj = 45,
120 ClientSession = 46,
121 Cast = 47,
122 ClientConnection = 48,
123 ClubFinder = 49,
124 ToolsClient = 50,
125 WorldLayer = 51,
126 ArenaTeam = 52,
127
128 Count,
129};
@ UniqUserClient
@ WorldTransaction
@ ClientConnection
Definition: Corpse.h:53
Definition: Guild.h:306
Definition: Item.h:170
Definition: Pet.h:46
Definition: Spell.h:239
Definition: Mail.h:173

◆ ObjectGuidFormatType

enum class ObjectGuidFormatType
strong
Enumerator
Null 
Uniq 
Player 
Item 
WorldObject 
Transport 
ClientActor 
ChatChannel 
Global 
Guild 
MobileSession 
WebObj 
LFGObject 
LFGList 
Client 
ClubFinder 
ToolsClient 
WorldLayer 

Definition at line 141 of file ObjectGuid.h.

◆ ObjectGuidSequenceSource

enum class ObjectGuidSequenceSource
strong
Enumerator
None 
Global 
Realm 
Map 

Definition at line 131 of file ObjectGuid.h.

132{
133 None = 0x0,
134 Global = 0x1,
135 Realm = 0x2,
136 Map = 0x4
137};
Definition: Map.h:185
Definition: Realm.h:79

◆ TypeID

enum TypeID
Enumerator
TYPEID_OBJECT 
TYPEID_ITEM 
TYPEID_CONTAINER 
TYPEID_AZERITE_EMPOWERED_ITEM 
TYPEID_AZERITE_ITEM 
TYPEID_UNIT 
TYPEID_PLAYER 
TYPEID_ACTIVE_PLAYER 
TYPEID_GAMEOBJECT 
TYPEID_DYNAMICOBJECT 
TYPEID_CORPSE 
TYPEID_AREATRIGGER 
TYPEID_SCENEOBJECT 
TYPEID_CONVERSATION 

Definition at line 33 of file ObjectGuid.h.

34{
35 TYPEID_OBJECT = 0,
36 TYPEID_ITEM = 1,
40 TYPEID_UNIT = 5,
41 TYPEID_PLAYER = 6,
45 TYPEID_CORPSE = 10,
49};
@ TYPEID_AZERITE_ITEM
Definition: ObjectGuid.h:39
@ TYPEID_OBJECT
Definition: ObjectGuid.h:35
@ TYPEID_AREATRIGGER
Definition: ObjectGuid.h:46
@ TYPEID_ACTIVE_PLAYER
Definition: ObjectGuid.h:42
@ TYPEID_DYNAMICOBJECT
Definition: ObjectGuid.h:44
@ TYPEID_GAMEOBJECT
Definition: ObjectGuid.h:43
@ TYPEID_UNIT
Definition: ObjectGuid.h:40
@ TYPEID_CORPSE
Definition: ObjectGuid.h:45
@ TYPEID_ITEM
Definition: ObjectGuid.h:36
@ TYPEID_SCENEOBJECT
Definition: ObjectGuid.h:47
@ TYPEID_CONVERSATION
Definition: ObjectGuid.h:48
@ TYPEID_PLAYER
Definition: ObjectGuid.h:41
@ TYPEID_AZERITE_EMPOWERED_ITEM
Definition: ObjectGuid.h:38
@ TYPEID_CONTAINER
Definition: ObjectGuid.h:37

◆ TypeMask

enum TypeMask
Enumerator
TYPEMASK_OBJECT 
TYPEMASK_ITEM 
TYPEMASK_CONTAINER 
TYPEMASK_AZERITE_EMPOWERED_ITEM 
TYPEMASK_AZERITE_ITEM 
TYPEMASK_UNIT 
TYPEMASK_PLAYER 
TYPEMASK_ACTIVE_PLAYER 
TYPEMASK_GAMEOBJECT 
TYPEMASK_DYNAMICOBJECT 
TYPEMASK_CORPSE 
TYPEMASK_AREATRIGGER 
TYPEMASK_SCENEOBJECT 
TYPEMASK_CONVERSATION 
TYPEMASK_SEER 

Definition at line 53 of file ObjectGuid.h.

54{
55 TYPEMASK_OBJECT = 0x0001,
56 TYPEMASK_ITEM = 0x0002,
57 TYPEMASK_CONTAINER = 0x0004,
59 TYPEMASK_AZERITE_ITEM = 0x0010,
60 TYPEMASK_UNIT = 0x0020,
61 TYPEMASK_PLAYER = 0x0040,
63 TYPEMASK_GAMEOBJECT = 0x0100,
65 TYPEMASK_CORPSE = 0x0400,
66 TYPEMASK_AREATRIGGER = 0x0800,
67 TYPEMASK_SCENEOBJECT = 0x1000,
68 TYPEMASK_CONVERSATION = 0x2000,
70};
@ TYPEMASK_OBJECT
Definition: ObjectGuid.h:55
@ TYPEMASK_ITEM
Definition: ObjectGuid.h:56
@ TYPEMASK_SCENEOBJECT
Definition: ObjectGuid.h:67
@ TYPEMASK_DYNAMICOBJECT
Definition: ObjectGuid.h:64
@ TYPEMASK_SEER
Definition: ObjectGuid.h:69
@ TYPEMASK_AZERITE_ITEM
Definition: ObjectGuid.h:59
@ TYPEMASK_UNIT
Definition: ObjectGuid.h:60
@ TYPEMASK_CONVERSATION
Definition: ObjectGuid.h:68
@ TYPEMASK_CONTAINER
Definition: ObjectGuid.h:57
@ TYPEMASK_CORPSE
Definition: ObjectGuid.h:65
@ TYPEMASK_GAMEOBJECT
Definition: ObjectGuid.h:63
@ TYPEMASK_PLAYER
Definition: ObjectGuid.h:61
@ TYPEMASK_AREATRIGGER
Definition: ObjectGuid.h:66
@ TYPEMASK_ACTIVE_PLAYER
Definition: ObjectGuid.h:62
@ TYPEMASK_AZERITE_EMPOWERED_ITEM
Definition: ObjectGuid.h:58

Function Documentation

◆ DEFINE_ENUM_FLAG()

DEFINE_ENUM_FLAG ( ObjectGuidSequenceSource  )

◆ MAKE_GUID_TRAIT() [1/53]

◆ MAKE_GUID_TRAIT() [2/53]

◆ MAKE_GUID_TRAIT() [3/53]

◆ MAKE_GUID_TRAIT() [4/53]

◆ MAKE_GUID_TRAIT() [5/53]

◆ MAKE_GUID_TRAIT() [6/53]

◆ MAKE_GUID_TRAIT() [7/53]

◆ MAKE_GUID_TRAIT() [8/53]

◆ MAKE_GUID_TRAIT() [9/53]

◆ MAKE_GUID_TRAIT() [10/53]

◆ MAKE_GUID_TRAIT() [11/53]

◆ MAKE_GUID_TRAIT() [12/53]

◆ MAKE_GUID_TRAIT() [13/53]

◆ MAKE_GUID_TRAIT() [14/53]

◆ MAKE_GUID_TRAIT() [15/53]

◆ MAKE_GUID_TRAIT() [16/53]

◆ MAKE_GUID_TRAIT() [17/53]

◆ MAKE_GUID_TRAIT() [18/53]

◆ MAKE_GUID_TRAIT() [19/53]

◆ MAKE_GUID_TRAIT() [20/53]

◆ MAKE_GUID_TRAIT() [21/53]

◆ MAKE_GUID_TRAIT() [22/53]

◆ MAKE_GUID_TRAIT() [23/53]

◆ MAKE_GUID_TRAIT() [24/53]

◆ MAKE_GUID_TRAIT() [25/53]

◆ MAKE_GUID_TRAIT() [26/53]

◆ MAKE_GUID_TRAIT() [27/53]

◆ MAKE_GUID_TRAIT() [28/53]

◆ MAKE_GUID_TRAIT() [29/53]

◆ MAKE_GUID_TRAIT() [30/53]

◆ MAKE_GUID_TRAIT() [31/53]

◆ MAKE_GUID_TRAIT() [32/53]

◆ MAKE_GUID_TRAIT() [33/53]

◆ MAKE_GUID_TRAIT() [34/53]

◆ MAKE_GUID_TRAIT() [35/53]

◆ MAKE_GUID_TRAIT() [36/53]

◆ MAKE_GUID_TRAIT() [37/53]

◆ MAKE_GUID_TRAIT() [38/53]

◆ MAKE_GUID_TRAIT() [39/53]

◆ MAKE_GUID_TRAIT() [40/53]

◆ MAKE_GUID_TRAIT() [41/53]

◆ MAKE_GUID_TRAIT() [42/53]

◆ MAKE_GUID_TRAIT() [43/53]

◆ MAKE_GUID_TRAIT() [44/53]

◆ MAKE_GUID_TRAIT() [45/53]

◆ MAKE_GUID_TRAIT() [46/53]

◆ MAKE_GUID_TRAIT() [47/53]

◆ MAKE_GUID_TRAIT() [48/53]

◆ MAKE_GUID_TRAIT() [49/53]

◆ MAKE_GUID_TRAIT() [50/53]

◆ MAKE_GUID_TRAIT() [51/53]

◆ MAKE_GUID_TRAIT() [52/53]

◆ MAKE_GUID_TRAIT() [53/53]

◆ operator<<()

TC_GAME_API ByteBuffer & operator<< ( ByteBuffer buf,
ObjectGuid const &  guid 
)

Definition at line 262 of file ObjectGuid.cpp.

726{
727 uint8 lowMask = 0;
728 uint8 highMask = 0;
729 buf.FlushBits(); // flush any unwritten bits to make wpos return a meaningful value
730 std::size_t pos = buf.wpos();
731 buf << uint8(lowMask);
732 buf << uint8(highMask);
733
734 uint8 packed[8];
735 if (size_t packedSize = ByteBuffer::PackUInt64(guid._data[0], &lowMask, packed))
736 buf.append(packed, packedSize);
737 if (size_t packedSize = ByteBuffer::PackUInt64(guid._data[1], &highMask, packed))
738 buf.append(packed, packedSize);
739
740 buf.put(pos, lowMask);
741 buf.put(pos + 1, highMask);
742
743 return buf;
744}
uint8_t uint8
Definition: Define.h:145
static size_t PackUInt64(uint64 value, uint8 *mask, uint8 *result)
Definition: ByteBuffer.h:607
void append(T value)
Definition: ByteBuffer.h:143
size_t wpos() const
Definition: ByteBuffer.h:412
void put(std::size_t pos, T value)
Definition: ByteBuffer.h:220
void FlushBits()
Definition: ByteBuffer.h:155
+ Here is the caller graph for this function:

◆ operator>>()

TC_GAME_API ByteBuffer & operator>> ( ByteBuffer buf,
ObjectGuid guid 
)

Definition at line 263 of file ObjectGuid.cpp.

747{
748 uint8 lowMask, highMask;
749 buf >> lowMask >> highMask;
750 buf.ReadPackedUInt64(lowMask, guid._data[0]);
751 buf.ReadPackedUInt64(highMask, guid._data[1]);
752 return buf;
753}
void ReadPackedUInt64(uint64 &guid)
Definition: ByteBuffer.h:485
std::array< uint64, 2 > _data
Definition: ObjectGuid.h:378
+ Here is the call graph for this function: