Update EntityEditPacketSender to use packet callbacks

This commit is contained in:
Ryan Huffman 2015-07-09 09:24:50 -07:00
parent 32b232c87a
commit 0180bdc4fb
2 changed files with 17 additions and 3 deletions

View file

@ -17,16 +17,26 @@
#include "EntitiesLogging.h"
#include "EntityItem.h"
EntityEditPacketSender::EntityEditPacketSender() {
auto& packetReceiver = DependencyManager::get<NodeList>()->getPacketReceiver();
packetReceiver.registerPacketListener(PacketType::EntityEditNack, this, "processEntityEditNackPacket");
}
void EntityEditPacketSender::adjustEditPacketForClockSkew(PacketType::Value type,
void EntityEditPacketSender::processEntityEditNackPacket(std::unique_ptr<NLPacket> packet, HifiSockAddr senderSockAddr) {
if (!Menu::getInstance()->isOptionChecked(MenuOption::DisableNackPackets)) {
processNackPacket(QByteArray::fromRawData(packet->getData()));
}
}
void EntityEditPacketSender::adjustEditPacketForClockSkew(PacketType::Value type,
unsigned char* editBuffer, size_t length, int clockSkew) {
if (type == PacketType::EntityAdd || type == PacketType::EntityEdit) {
EntityItem::adjustEditPacketForClockSkew(editBuffer, length, clockSkew);
}
}
void EntityEditPacketSender::queueEditEntityMessage(PacketType::Value type, EntityItemID modelID,
void EntityEditPacketSender::queueEditEntityMessage(PacketType::Value type, EntityItemID modelID,
const EntityItemProperties& properties) {
if (!_shouldSend) {
return; // bail early

View file

@ -20,6 +20,8 @@
class EntityEditPacketSender : public OctreeEditPacketSender {
Q_OBJECT
public:
EntityEditPacketSender();
/// Queues an array of several voxel edit messages. Will potentially send a pending multi-command packet. Determines
/// which voxel-server node or nodes the packet should be sent to. Can be called even before voxel servers are known, in
/// which case up to MaxPendingMessages will be buffered and processed when voxel servers are known.
@ -28,6 +30,8 @@ public:
void queueEraseEntityMessage(const EntityItemID& entityItemID);
void processEntityEditNackPacket(std::unique_ptr<NLPacket> packet, HifiSockAddr senderSockAddr);
// My server type is the model server
virtual char getMyNodeType() const { return NodeType::EntityServer; }
virtual void adjustEditPacketForClockSkew(PacketType::Value type, unsigned char* editBuffer, size_t length, int clockSkew);