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 , LMMParty = 53 , LMMLobby = 54 , 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 , LMMLobby
}
 
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)
 
 MAKE_GUID_TRAIT (HighGuid::LMMParty, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::Client)
 
 MAKE_GUID_TRAIT (HighGuid::LMMLobby, ObjectGuidSequenceSource::Realm, ObjectGuidFormatType::LMMLobby)
 
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:170
static constexpr EnumFlag< ObjectGuidSequenceSource > SequenceSource
Definition: ObjectGuid.h:169

Definition at line 173 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 392 of file ObjectGuid.h.

◆ GuidSet

using GuidSet = std::set<ObjectGuid>

Definition at line 391 of file ObjectGuid.h.

◆ GuidUnorderedSet

using GuidUnorderedSet = std::unordered_set<ObjectGuid>

Definition at line 394 of file ObjectGuid.h.

◆ GuidVector

using GuidVector = std::vector<ObjectGuid>

Definition at line 393 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 
LMMParty 
LMMLobby 
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 LMMParty = 53,
128 LMMLobby = 54,
129
130 Count,
131};
@ UniqUserClient
@ WorldTransaction
@ ClientConnection
Definition: Corpse.h:53
Definition: Guild.h:310
Definition: Item.h:170
Definition: Pet.h:40
Definition: Spell.h:249
Definition: Mail.h:175

◆ ObjectGuidFormatType

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

Definition at line 143 of file ObjectGuid.h.

◆ ObjectGuidSequenceSource

enum class ObjectGuidSequenceSource
strong
Enumerator
None 
Global 
Realm 
Map 

Definition at line 133 of file ObjectGuid.h.

134{
135 None = 0x0,
136 Global = 0x1,
137 Realm = 0x2,
138 Map = 0x4
139};
Definition: Map.h:187
Definition: Realm.h:81

◆ 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/55]

◆ MAKE_GUID_TRAIT() [2/55]

◆ MAKE_GUID_TRAIT() [3/55]

◆ MAKE_GUID_TRAIT() [4/55]

◆ MAKE_GUID_TRAIT() [5/55]

◆ MAKE_GUID_TRAIT() [6/55]

◆ MAKE_GUID_TRAIT() [7/55]

◆ MAKE_GUID_TRAIT() [8/55]

◆ MAKE_GUID_TRAIT() [9/55]

◆ MAKE_GUID_TRAIT() [10/55]

◆ MAKE_GUID_TRAIT() [11/55]

◆ MAKE_GUID_TRAIT() [12/55]

◆ MAKE_GUID_TRAIT() [13/55]

◆ MAKE_GUID_TRAIT() [14/55]

◆ MAKE_GUID_TRAIT() [15/55]

◆ MAKE_GUID_TRAIT() [16/55]

◆ MAKE_GUID_TRAIT() [17/55]

◆ MAKE_GUID_TRAIT() [18/55]

◆ MAKE_GUID_TRAIT() [19/55]

◆ MAKE_GUID_TRAIT() [20/55]

◆ MAKE_GUID_TRAIT() [21/55]

◆ MAKE_GUID_TRAIT() [22/55]

◆ MAKE_GUID_TRAIT() [23/55]

◆ MAKE_GUID_TRAIT() [24/55]

◆ MAKE_GUID_TRAIT() [25/55]

◆ MAKE_GUID_TRAIT() [26/55]

◆ MAKE_GUID_TRAIT() [27/55]

◆ MAKE_GUID_TRAIT() [28/55]

◆ MAKE_GUID_TRAIT() [29/55]

◆ MAKE_GUID_TRAIT() [30/55]

◆ MAKE_GUID_TRAIT() [31/55]

◆ MAKE_GUID_TRAIT() [32/55]

◆ MAKE_GUID_TRAIT() [33/55]

◆ MAKE_GUID_TRAIT() [34/55]

◆ MAKE_GUID_TRAIT() [35/55]

◆ MAKE_GUID_TRAIT() [36/55]

◆ MAKE_GUID_TRAIT() [37/55]

◆ MAKE_GUID_TRAIT() [38/55]

◆ MAKE_GUID_TRAIT() [39/55]

◆ MAKE_GUID_TRAIT() [40/55]

◆ MAKE_GUID_TRAIT() [41/55]

◆ MAKE_GUID_TRAIT() [42/55]

◆ MAKE_GUID_TRAIT() [43/55]

◆ MAKE_GUID_TRAIT() [44/55]

◆ MAKE_GUID_TRAIT() [45/55]

◆ MAKE_GUID_TRAIT() [46/55]

◆ MAKE_GUID_TRAIT() [47/55]

◆ MAKE_GUID_TRAIT() [48/55]

◆ MAKE_GUID_TRAIT() [49/55]

◆ MAKE_GUID_TRAIT() [50/55]

◆ MAKE_GUID_TRAIT() [51/55]

◆ MAKE_GUID_TRAIT() [52/55]

◆ MAKE_GUID_TRAIT() [53/55]

◆ MAKE_GUID_TRAIT() [54/55]

◆ MAKE_GUID_TRAIT() [55/55]

◆ operator<<()

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

Definition at line 268 of file ObjectGuid.cpp.

759{
760 uint8 lowMask = 0;
761 uint8 highMask = 0;
762 buf.FlushBits(); // flush any unwritten bits to make wpos return a meaningful value
763 std::size_t pos = buf.wpos();
764 buf << uint8(lowMask);
765 buf << uint8(highMask);
766
767 uint8 packed[8];
768 if (size_t packedSize = ByteBuffer::PackUInt64(guid._data[0], &lowMask, packed))
769 buf.append(packed, packedSize);
770 if (size_t packedSize = ByteBuffer::PackUInt64(guid._data[1], &highMask, packed))
771 buf.append(packed, packedSize);
772
773 buf.put(pos, lowMask);
774 buf.put(pos + 1, highMask);
775
776 return buf;
777}
uint8_t uint8
Definition: Define.h:145
static size_t PackUInt64(uint64 value, uint8 *mask, uint8 *result)
Definition: ByteBuffer.h:605
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 269 of file ObjectGuid.cpp.

780{
781 uint8 lowMask, highMask;
782 buf >> lowMask >> highMask;
783 buf.ReadPackedUInt64(lowMask, guid._data[0]);
784 buf.ReadPackedUInt64(highMask, guid._data[1]);
785 return buf;
786}
void ReadPackedUInt64(uint64 &guid)
Definition: ByteBuffer.h:485
std::array< uint64, 2 > _data
Definition: ObjectGuid.h:385