C++11 cleanup on constructors dir network (#6021)
authorVincent Glize <vincentglize@hotmail.fr>
Wed, 21 Jun 2017 06:28:57 +0000 (08:28 +0200)
committerLoïc Blot <nerzhul@users.noreply.github.com>
Wed, 21 Jun 2017 06:28:57 +0000 (08:28 +0200)
* C++11 cleanup on constructors dir network

src/network/connection.cpp
src/network/connection.h
src/network/networkpacket.cpp
src/network/networkpacket.h

index 61b98b6d743bace3ab49f0698e9b93c817beca1d..d1ab948db8db5bc0426aa999341908f99da34d50 100644 (file)
@@ -60,14 +60,6 @@ static inline float CALC_DTIME(u64 lasttime, u64 curtime)
        return MYMAX(MYMIN(value,0.1),0.0);
 }
 
-/* maximum window size to use, 0xFFFF is theoretical maximum  don't think about
- * touching it, the less you're away from it the more likely data corruption
- * will occur
- */
-#define MAX_RELIABLE_WINDOW_SIZE 0x8000
- /* starting value for window size */
-#define MIN_RELIABLE_WINDOW_SIZE 0x40
-
 #define MAX_UDP_PEERS 65535
 
 #define PING_TIMEOUT 5.0
@@ -209,8 +201,6 @@ SharedBuffer<u8> makeReliablePacket(
        ReliablePacketBuffer
 */
 
-ReliablePacketBuffer::ReliablePacketBuffer(): m_list_size(0) {}
-
 void ReliablePacketBuffer::print()
 {
        MutexAutoLock listlock(m_list_mutex);
@@ -577,36 +567,6 @@ void IncomingSplitBuffer::removeUnreliableTimedOuts(float dtime, float timeout)
        Channel
 */
 
-Channel::Channel() :
-               window_size(MIN_RELIABLE_WINDOW_SIZE),
-               next_incoming_seqnum(SEQNUM_INITIAL),
-               next_outgoing_seqnum(SEQNUM_INITIAL),
-               next_outgoing_split_seqnum(SEQNUM_INITIAL),
-               current_packet_loss(0),
-               current_packet_too_late(0),
-               current_packet_successfull(0),
-               packet_loss_counter(0),
-               current_bytes_transfered(0),
-               current_bytes_received(0),
-               current_bytes_lost(0),
-               max_kbps(0.0),
-               cur_kbps(0.0),
-               avg_kbps(0.0),
-               max_incoming_kbps(0.0),
-               cur_incoming_kbps(0.0),
-               avg_incoming_kbps(0.0),
-               max_kbps_lost(0.0),
-               cur_kbps_lost(0.0),
-               avg_kbps_lost(0.0),
-               bpm_counter(0.0),
-               rate_samples(0)
-{
-}
-
-Channel::~Channel()
-{
-}
-
 u16 Channel::readNextIncomingSeqNum()
 {
        MutexAutoLock internal(m_internal_mutex);
@@ -849,40 +809,26 @@ void Channel::UpdateTimers(float dtime,bool legacy_peer)
        Peer
 */
 
-PeerHelper::PeerHelper() :
-       m_peer(0)
-{}
-
 PeerHelper::PeerHelper(Peer* peer) :
        m_peer(peer)
 {
-       if (peer != NULL)
-       {
-               if (!peer->IncUseCount())
-               {
-                       m_peer = 0;
-               }
-       }
+       if (peer && !peer->IncUseCount())
+               m_peer = nullptr;
 }
 
 PeerHelper::~PeerHelper()
 {
-       if (m_peer != 0)
+       if (m_peer)
                m_peer->DecUseCount();
 
-       m_peer = 0;
+       m_peer = nullptr;
 }
 
 PeerHelper& PeerHelper::operator=(Peer* peer)
 {
        m_peer = peer;
-       if (peer != NULL)
-       {
-               if (!peer->IncUseCount())
-               {
-                       m_peer = 0;
-               }
-       }
+       if (peer && !peer->IncUseCount())
+               m_peer = nullptr;
        return *this;
 }
 
@@ -909,8 +855,7 @@ bool Peer::IncUseCount()
 {
        MutexAutoLock lock(m_exclusive_access_mutex);
 
-       if (!m_pending_deletion)
-       {
+       if (!m_pending_deletion) {
                this->m_usage++;
                return true;
        }
@@ -1014,10 +959,7 @@ void Peer::Drop()
 }
 
 UDPPeer::UDPPeer(u16 a_id, Address a_address, Connection* connection) :
-       Peer(a_address,a_id,connection),
-       m_pending_disconnect(false),
-       resend_timeout(0.5),
-       m_legacy_peer(true)
+       Peer(a_address,a_id,connection)
 {
 }
 
@@ -1261,12 +1203,9 @@ SharedBuffer<u8> UDPPeer::addSpiltPacket(u8 channel,
 ConnectionSendThread::ConnectionSendThread(unsigned int max_packet_size,
                float timeout) :
        Thread("ConnectionSend"),
-       m_connection(NULL),
        m_max_packet_size(max_packet_size),
        m_timeout(timeout),
-       m_max_commands_per_iteration(1),
-       m_max_data_packets_per_iteration(g_settings->getU16("max_packets_per_iteration")),
-       m_max_packets_requeued(256)
+       m_max_data_packets_per_iteration(g_settings->getU16("max_packets_per_iteration"))
 {
 }
 
@@ -2031,8 +1970,7 @@ void ConnectionSendThread::sendAsPacket(u16 peer_id, u8 channelnum,
 }
 
 ConnectionReceiveThread::ConnectionReceiveThread(unsigned int max_packet_size) :
-       Thread("ConnectionReceive"),
-       m_connection(NULL)
+       Thread("ConnectionReceive")
 {
 }
 
@@ -2676,17 +2614,10 @@ SharedBuffer<u8> ConnectionReceiveThread::processPacket(Channel *channel,
 Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout,
                bool ipv6, PeerHandler *peerhandler) :
        m_udpSocket(ipv6),
-       m_command_queue(),
-       m_event_queue(),
-       m_peer_id(0),
        m_protocol_id(protocol_id),
        m_sendThread(max_packet_size, timeout),
        m_receiveThread(max_packet_size),
-       m_info_mutex(),
-       m_bc_peerhandler(peerhandler),
-       m_bc_receive_timeout(0),
-       m_shutting_down(false),
-       m_next_remote_peer_id(2)
+       m_bc_peerhandler(peerhandler)
 
 {
        m_udpSocket.setTimeoutMs(5);
index 51cf6aec63640c3c71e108356f906897582ac978..1ee4f676210ce82ba2ea838f68255f8290c9ef08 100644 (file)
@@ -165,19 +165,18 @@ inline bool seqnum_in_window(u16 seqnum, u16 next,u16 window_size)
 struct BufferedPacket
 {
        BufferedPacket(u8 *a_data, u32 a_size):
-               data(a_data, a_size), time(0.0), totaltime(0.0), absolute_send_time(-1),
-               resend_count(0)
+               data(a_data, a_size)
        {}
        BufferedPacket(u32 a_size):
                data(a_size), time(0.0), totaltime(0.0), absolute_send_time(-1),
                resend_count(0)
        {}
        Buffer<u8> data; // Data of the packet, including headers
-       float time; // Seconds from buffering the packet or re-sending
-       float totaltime; // Seconds from buffering the packet
-       u64 absolute_send_time;
+       float time = 0.0f; // Seconds from buffering the packet or re-sending
+       float totaltime = 0.0f; // Seconds from buffering the packet
+       u64 absolute_send_time = -1;
        Address address; // Sender or destination
-       unsigned int resend_count;
+       unsigned int resend_count = 0;
 };
 
 // This adds the base headers to the data and makes a packet out of it
@@ -210,16 +209,12 @@ SharedBuffer<u8> makeReliablePacket(
 
 struct IncomingSplitPacket
 {
-       IncomingSplitPacket()
-       {
-               time = 0.0;
-               reliable = false;
-       }
+       IncomingSplitPacket() {}
        // Key is chunk number, value is data without headers
        std::map<u16, SharedBuffer<u8> > chunks;
        u32 chunk_count;
-       float time; // Seconds from adding
-       bool reliable; // If true, isn't deleted on timeout
+       float time = 0.0f; // Seconds from adding
+       bool reliable = false; // If true, isn't deleted on timeout
 
        bool allReceived()
        {
@@ -322,7 +317,7 @@ typedef std::list<BufferedPacket>::iterator RPBSearchResult;
 class ReliablePacketBuffer
 {
 public:
-       ReliablePacketBuffer();
+       ReliablePacketBuffer() {};
 
        bool getFirstSeqnum(u16& result);
 
@@ -345,7 +340,7 @@ private:
        RPBSearchResult findPacket(u16 seqnum);
 
        std::list<BufferedPacket> m_list;
-       u32 m_list_size;
+       u32 m_list_size = 0;
 
        u16 m_oldest_non_answered_ack;
 
@@ -409,15 +404,15 @@ enum ConnectionCommandType{
 
 struct ConnectionCommand
 {
-       enum ConnectionCommandType type;
+       enum ConnectionCommandType type = CONNCMD_NONE;
        Address address;
-       u16 peer_id;
+       u16 peer_id = PEER_ID_INEXISTENT;
        u8 channelnum;
        Buffer<u8> data;
-       bool reliable;
-       bool raw;
+       bool reliable = false;
+       bool raw = false;
 
-       ConnectionCommand(): type(CONNCMD_NONE), peer_id(PEER_ID_INEXISTENT), reliable(false), raw(false) {}
+       ConnectionCommand() {}
 
        void serve(Address address_)
        {
@@ -478,6 +473,14 @@ struct ConnectionCommand
        }
 };
 
+/* maximum window size to use, 0xFFFF is theoretical maximum  don't think about
+ * touching it, the less you're away from it the more likely data corruption
+ * will occur
+ */
+#define MAX_RELIABLE_WINDOW_SIZE 0x8000
+       /* starting value for window size */
+#define MIN_RELIABLE_WINDOW_SIZE 0x40
+
 class Channel
 {
 
@@ -507,8 +510,8 @@ public:
 
        IncomingSplitBuffer incoming_splits;
 
-       Channel();
-       ~Channel();
+       Channel() {};
+       ~Channel() {};
 
        void UpdatePacketLossCounter(unsigned int count);
        void UpdatePacketTooLateCounter();
@@ -545,33 +548,33 @@ public:
        void setWindowSize(unsigned int size) { window_size = size; };
 private:
        std::mutex m_internal_mutex;
-       int window_size;
-
-       u16 next_incoming_seqnum;
-
-       u16 next_outgoing_seqnum;
-       u16 next_outgoing_split_seqnum;
-
-       unsigned int current_packet_loss;
-       unsigned int current_packet_too_late;
-       unsigned int current_packet_successfull;
-       float packet_loss_counter;
-
-       unsigned int current_bytes_transfered;
-       unsigned int current_bytes_received;
-       unsigned int current_bytes_lost;
-       float max_kbps;
-       float cur_kbps;
-       float avg_kbps;
-       float max_incoming_kbps;
-       float cur_incoming_kbps;
-       float avg_incoming_kbps;
-       float max_kbps_lost;
-       float cur_kbps_lost;
-       float avg_kbps_lost;
-       float bpm_counter;
-
-       unsigned int rate_samples;
+       int window_size = MIN_RELIABLE_WINDOW_SIZE;
+
+       u16 next_incoming_seqnum = SEQNUM_INITIAL;
+
+       u16 next_outgoing_seqnum = SEQNUM_INITIAL;
+       u16 next_outgoing_split_seqnum = SEQNUM_INITIAL;
+
+       unsigned int current_packet_loss = 0;
+       unsigned int current_packet_too_late = 0;
+       unsigned int current_packet_successfull = 0;
+       float packet_loss_counter = 0.0f;
+
+       unsigned int current_bytes_transfered = 0;
+       unsigned int current_bytes_received = 0;
+       unsigned int current_bytes_lost = 0;
+       float max_kbps = 0.0f;
+       float cur_kbps = 0.0f;
+       float avg_kbps = 0.0f;
+       float max_incoming_kbps = 0.0f;
+       float cur_incoming_kbps = 0.0f;
+       float avg_incoming_kbps = 0.0f;
+       float max_kbps_lost = 0.0f;
+       float cur_kbps_lost = 0.0f;
+       float avg_kbps_lost = 0.0f;
+       float bpm_counter = 0.0f;
+
+       unsigned int rate_samples = 0;
 };
 
 class Peer;
@@ -614,7 +617,7 @@ public:
 class PeerHelper
 {
 public:
-       PeerHelper();
+       PeerHelper() {};
        PeerHelper(Peer* peer);
        ~PeerHelper();
 
@@ -625,7 +628,7 @@ public:
        bool          operator!=(void* ptr);
 
 private:
-       Peer* m_peer;
+       Peer *m_peer = nullptr;
 };
 
 class Connection;
@@ -654,23 +657,10 @@ class Peer {
 
                Peer(Address address_,u16 id_,Connection* connection) :
                        id(id_),
-                       m_increment_packets_remaining(9),
-                       m_increment_bytes_remaining(0),
-                       m_pending_deletion(false),
                        m_connection(connection),
                        address(address_),
-                       m_ping_timer(0.0),
-                       m_last_rtt(-1.0),
-                       m_usage(0),
-                       m_timeout_counter(0.0),
                        m_last_timeout_check(porting::getTimeMs())
                {
-                       m_rtt.avg_rtt = -1.0;
-                       m_rtt.jitter_avg = -1.0;
-                       m_rtt.jitter_max = 0.0;
-                       m_rtt.max_rtt = 0.0;
-                       m_rtt.jitter_min = FLT_MAX;
-                       m_rtt.min_rtt = FLT_MAX;
                };
 
                virtual ~Peer() {
@@ -692,12 +682,12 @@ class Peer {
                { MutexAutoLock lock(m_exclusive_access_mutex); return m_pending_deletion; };
 
                void ResetTimeout()
-                       {MutexAutoLock lock(m_exclusive_access_mutex); m_timeout_counter=0.0; };
+                       {MutexAutoLock lock(m_exclusive_access_mutex); m_timeout_counter = 0.0; };
 
                bool isTimedOut(float timeout);
 
-               unsigned int m_increment_packets_remaining;
-               unsigned int m_increment_bytes_remaining;
+               unsigned int m_increment_packets_remaining = 9;
+               unsigned int m_increment_bytes_remaining = 0;
 
                virtual u16 getNextSplitSequenceNumber(u8 channel) { return 0; };
                virtual void setNextSplitSequenceNumber(u8 channel, u16 seqnum) {};
@@ -740,7 +730,7 @@ class Peer {
 
                std::mutex m_exclusive_access_mutex;
 
-               bool m_pending_deletion;
+               bool m_pending_deletion = false;
 
                Connection* m_connection;
 
@@ -748,26 +738,28 @@ class Peer {
                Address address;
 
                // Ping timer
-               float m_ping_timer;
+               float m_ping_timer = 0.0f;
        private:
 
                struct rttstats {
-                       float jitter_min;
-                       float jitter_max;
-                       float jitter_avg;
-                       float min_rtt;
-                       float max_rtt;
-                       float avg_rtt;
+                       float jitter_min = FLT_MAX;
+                       float jitter_max = 0.0f;
+                       float jitter_avg = -1.0f;
+                       float min_rtt = FLT_MAX;
+                       float max_rtt = 0.0f;
+                       float avg_rtt = -1.0f;
+
+                       rttstats() {};
                };
 
                rttstats m_rtt;
-               float    m_last_rtt;
+               float m_last_rtt = -1.0f;
 
                // current usage count
-               unsigned int m_usage;
+               unsigned int m_usage = 0;
 
                // Seconds from last receive
-               float m_timeout_counter;
+               float m_timeout_counter = 0.0f;
 
                u64 m_last_timeout_check;
 };
@@ -822,16 +814,16 @@ protected:
        bool Ping(float dtime,SharedBuffer<u8>& data);
 
        Channel channels[CHANNEL_COUNT];
-       bool m_pending_disconnect;
+       bool m_pending_disconnect = false;
 private:
        // This is changed dynamically
-       float resend_timeout;
+       float resend_timeout = 0.5;
 
        bool processReliableSendCommand(
                                        ConnectionCommand &c,
                                        unsigned int max_packet_size);
 
-       bool m_legacy_peer;
+       bool m_legacy_peer = true;
 };
 
 /*
@@ -848,14 +840,13 @@ enum ConnectionEventType{
 
 struct ConnectionEvent
 {
-       enum ConnectionEventType type;
-       u16 peer_id;
+       enum ConnectionEventType type = CONNEVENT_NONE;
+       u16 peer_id = 0;
        Buffer<u8> data;
-       bool timeout;
+       bool timeout = false;
        Address address;
 
-       ConnectionEvent(): type(CONNEVENT_NONE), peer_id(0),
-                       timeout(false) {}
+       ConnectionEvent() {}
 
        std::string describe()
        {
@@ -946,16 +937,16 @@ private:
 
        bool packetsQueued();
 
-       Connection*           m_connection;
+       Connection           *m_connection = nullptr;
        unsigned int          m_max_packet_size;
        float                 m_timeout;
        std::queue<OutgoingPacket> m_outgoing_queue;
        Semaphore             m_send_sleep_semaphore;
 
        unsigned int          m_iteration_packets_avaialble;
-       unsigned int          m_max_commands_per_iteration;
+       unsigned int          m_max_commands_per_iteration = 1;
        unsigned int          m_max_data_packets_per_iteration;
-       unsigned int          m_max_packets_requeued;
+       unsigned int          m_max_packets_requeued = 256;
 };
 
 class ConnectionReceiveThread : public Thread {
@@ -993,7 +984,7 @@ private:
                                                        u8 channelnum, bool reliable);
 
 
-       Connection*           m_connection;
+       Connection *m_connection = nullptr;
 };
 
 class Connection
@@ -1059,7 +1050,7 @@ private:
 
        MutexedQueue<ConnectionEvent> m_event_queue;
 
-       u16 m_peer_id;
+       u16 m_peer_id = 0;
        u32 m_protocol_id;
 
        std::map<u16, Peer*> m_peers;
@@ -1073,11 +1064,11 @@ private:
 
        // Backwards compatibility
        PeerHandler *m_bc_peerhandler;
-       int m_bc_receive_timeout;
+       int m_bc_receive_timeout = 0;
 
-       bool m_shutting_down;
+       bool m_shutting_down = false;
 
-       u16 m_next_remote_peer_id;
+       u16 m_next_remote_peer_id = 2;
 };
 
 } // namespace
index f7a6499ddbcbe032f4b33ddc8a9d50b75f61077e..48cf3a374b64058015e89a144afb657f242b9d09 100644 (file)
@@ -23,13 +23,13 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "util/serialize.h"
 
 NetworkPacket::NetworkPacket(u16 command, u32 datasize, u16 peer_id):
-m_datasize(datasize), m_read_offset(0), m_command(command), m_peer_id(peer_id)
+m_datasize(datasize), m_command(command), m_peer_id(peer_id)
 {
        m_data.resize(m_datasize);
 }
 
 NetworkPacket::NetworkPacket(u16 command, u32 datasize):
-m_datasize(datasize), m_read_offset(0), m_command(command), m_peer_id(0)
+m_datasize(datasize), m_command(command)
 {
        m_data.resize(m_datasize);
 }
index 83dc33f6f5d98b4ef5c007f022a07bea9d434133..3058a22ca22a5e197e4dfb808625e4e982e71403 100644 (file)
@@ -30,8 +30,7 @@ class NetworkPacket
 public:
                NetworkPacket(u16 command, u32 datasize, u16 peer_id);
                NetworkPacket(u16 command, u32 datasize);
-               NetworkPacket(): m_datasize(0), m_read_offset(0), m_command(0),
-                               m_peer_id(0) {}
+               NetworkPacket() {}
                ~NetworkPacket();
 
                void putRawPacket(u8 *data, u32 datasize, u16 peer_id);
@@ -126,10 +125,10 @@ private:
                }
 
                std::vector<u8> m_data;
-               u32 m_datasize;
-               u32 m_read_offset;
-               u16 m_command;
-               u16 m_peer_id;
+               u32 m_datasize = 0;
+               u32 m_read_offset = 0;
+               u16 m_command = 0;
+               u16 m_peer_id = 0;
 };
 
 #endif