X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fnetwork%2Fconnectionthreads.h;h=612407c3b5cf9190c6e665bbdb62736dc436ee99;hb=291a6b70d674d9003f522b5875a60f7e2753e32b;hp=11bec0c6cb5d5c52dfc084d3966d5c9ce5d723a1;hpb=3cea7a349ac55df93b3eac1bf40365e00e472480;p=minetest.git diff --git a/src/network/connectionthreads.h b/src/network/connectionthreads.h index 11bec0c6c..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,23 +52,23 @@ class ConnectionSendThread : public Thread private: void runTimeouts(float dtime); void rawSend(const BufferedPacket &packet); - bool rawSendAsPacket(u16 peer_id, u8 channelnum, const 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); void serve(Address bind_address); void connect(Address address); void disconnect(); - void disconnect_peer(u16 peer_id); - void send(u16 peer_id, u8 channelnum, SharedBuffer data); + void disconnect_peer(session_t peer_id); + 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(u16 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(u16 &peer_id, SharedBuffer &dst); + bool getFromBuffers(session_t &peer_id, SharedBuffer &dst); - bool checkIncomingBuffers(Channel *channel, u16 &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, - u16 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); };