X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fnetwork%2Fconnectionthreads.h;h=612407c3b5cf9190c6e665bbdb62736dc436ee99;hb=8ef239b448c52485cf94d334c1d8b1c6de37d976;hp=57825e1a15b071bbb49b32e097ba3ffbbbe65d3e;hpb=ad7daf7b52348e1b71aa803be10de5b2134cba11;p=minetest.git diff --git a/src/network/connectionthreads.h b/src/network/connectionthreads.h index 57825e1a1..612407c3b 100644 --- a/src/network/connectionthreads.h +++ b/src/network/connectionthreads.h @@ -21,7 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once #include -#include "../threading/thread.h" +#include "threading/thread.h" #include "connection.h" namespace con @@ -52,8 +52,8 @@ class ConnectionSendThread : public Thread private: void runTimeouts(float dtime); void rawSend(const BufferedPacket &packet); - bool rawSendAsPacket( - session_t peer_id, u8 channelnum, SharedBuffer data, bool reliable); + bool rawSendAsPacket(session_t peer_id, u8 channelnum, + const SharedBuffer &data, bool reliable); void processReliableCommand(ConnectionCommand &c); void processNonReliableCommand(ConnectionCommand &c); @@ -61,14 +61,14 @@ class ConnectionSendThread : public Thread void connect(Address address); void disconnect(); void disconnect_peer(session_t peer_id); - void send(session_t peer_id, u8 channelnum, SharedBuffer data); + void send(session_t peer_id, u8 channelnum, const SharedBuffer &data); void sendReliable(ConnectionCommand &c); - void sendToAll(u8 channelnum, SharedBuffer data); + void sendToAll(u8 channelnum, const SharedBuffer &data); void sendToAllReliable(ConnectionCommand &c); void sendPackets(float dtime); - void sendAsPacket(session_t peer_id, u8 channelnum, SharedBuffer data, + void sendAsPacket(session_t peer_id, u8 channelnum, const SharedBuffer &data, bool ack = false); void sendAsPacketReliable(BufferedPacket &p, Channel *channel); @@ -101,14 +101,15 @@ class ConnectionReceiveThread : public Thread } private: - void receive(); + void receive(SharedBuffer &packetdata, bool &packet_queued); // Returns next data from a buffer if possible // If found, returns true; if not, false. // If found, sets peer_id and dst bool getFromBuffers(session_t &peer_id, SharedBuffer &dst); - bool checkIncomingBuffers(Channel *channel, session_t &peer_id, SharedBuffer &dst); + bool checkIncomingBuffers( + Channel *channel, session_t &peer_id, SharedBuffer &dst); /* Processes a packet with the basic header stripped out. @@ -118,26 +119,27 @@ class ConnectionReceiveThread : public Thread channelnum: channel on which the packet was sent reliable: true if recursing into a reliable packet */ - SharedBuffer processPacket(Channel *channel, SharedBuffer packetdata, - session_t peer_id, u8 channelnum, bool reliable); + SharedBuffer processPacket(Channel *channel, + const SharedBuffer &packetdata, session_t peer_id, + u8 channelnum, bool reliable); SharedBuffer handlePacketType_Control(Channel *channel, - SharedBuffer packetdata, Peer *peer, u8 channelnum, + const SharedBuffer &packetdata, Peer *peer, u8 channelnum, bool reliable); SharedBuffer handlePacketType_Original(Channel *channel, - SharedBuffer packetdata, Peer *peer, u8 channelnum, + const SharedBuffer &packetdata, Peer *peer, u8 channelnum, bool reliable); SharedBuffer handlePacketType_Split(Channel *channel, - SharedBuffer packetdata, Peer *peer, u8 channelnum, + const SharedBuffer &packetdata, Peer *peer, u8 channelnum, bool reliable); SharedBuffer handlePacketType_Reliable(Channel *channel, - SharedBuffer packetdata, Peer *peer, u8 channelnum, + const SharedBuffer &packetdata, Peer *peer, u8 channelnum, bool reliable); struct PacketTypeHandler { SharedBuffer (ConnectionReceiveThread::*handler)(Channel *channel, - SharedBuffer packet, Peer *peer, u8 channelnum, + const SharedBuffer &packet, Peer *peer, u8 channelnum, bool reliable); };