TrinityCore
UpdateData.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef __UPDATEDATA_H
19#define __UPDATEDATA_H
20
21#include "Define.h"
22#include "ByteBuffer.h"
23#include "ObjectGuid.h"
24#include <set>
25
26class WorldPacket;
27
29{
34};
35
37{
38 public:
39 UpdateData(uint32 map);
40 UpdateData(UpdateData&& right) noexcept : m_map(right.m_map), m_blockCount(right.m_blockCount),
41 m_outOfRangeGUIDs(std::move(right.m_outOfRangeGUIDs)),
42 m_data(std::move(right.m_data))
43 {
44 }
45
47 void AddOutOfRangeGUID(GuidSet& guids);
51 bool BuildPacket(WorldPacket* packet);
52 bool HasData() const { return m_blockCount > 0 || !m_outOfRangeGUIDs.empty() || !m_destroyGUIDs.empty(); }
53 void Clear();
54
55 GuidSet const& GetOutOfRangeGUIDs() const { return m_outOfRangeGUIDs; }
56
57 protected:
63
64 UpdateData(UpdateData const& right) = delete;
65 UpdateData& operator=(UpdateData const& right) = delete;
66};
67#endif
uint32_t uint32
Definition: Define.h:142
std::set< ObjectGuid > GuidSet
Definition: ObjectGuid.h:393
OBJECT_UPDATE_TYPE
Definition: UpdateData.h:29
@ UPDATETYPE_VALUES
Definition: UpdateData.h:30
@ UPDATETYPE_CREATE_OBJECT
Definition: UpdateData.h:31
@ UPDATETYPE_OUT_OF_RANGE_OBJECTS
Definition: UpdateData.h:33
@ UPDATETYPE_CREATE_OBJECT2
Definition: UpdateData.h:32
GuidSet m_destroyGUIDs
Definition: UpdateData.h:60
bool HasData() const
Definition: UpdateData.h:52
void AddDestroyObject(ObjectGuid guid)
Definition: UpdateData.cpp:25
UpdateData(UpdateData const &right)=delete
uint32 m_blockCount
Definition: UpdateData.h:59
void AddOutOfRangeGUID(GuidSet &guids)
Definition: UpdateData.cpp:30
GuidSet const & GetOutOfRangeGUIDs() const
Definition: UpdateData.h:55
ByteBuffer & GetBuffer()
Definition: UpdateData.h:50
UpdateData(uint32 map)
Definition: UpdateData.cpp:23
UpdateData(UpdateData &&right) noexcept
Definition: UpdateData.h:40
bool BuildPacket(WorldPacket *packet)
Definition: UpdateData.cpp:40
ByteBuffer m_data
Definition: UpdateData.h:62
UpdateData & operator=(UpdateData const &right)=delete
void AddUpdateBlock()
Definition: UpdateData.h:49
void Clear()
Definition: UpdateData.cpp:65
GuidSet m_outOfRangeGUIDs
Definition: UpdateData.h:61
uint32 m_map
Definition: UpdateData.h:58