Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/network/src/lib/network/connection_monitor.h @ 7776

Last change on this file since 7776 was 7776, checked in by rennerc, 18 years ago

removed some features

File size: 1.6 KB
Line 
1/*!
2 * @file connection_monitor.h
3    \brief provides information about the quality of a connection.
4 */
5
6#ifndef _CONNECTION_MONITOR_H
7#define _CONNECTION_MONITOR_H
8
9#include "base_object.h"
10#include "netdefs.h"
11
12#include <map>
13
14#define N_PACKETS_FOR_PING 20
15#define MSECS_TO_CALC_BWIDTH 1000
16#define SECS_TO_TIMEOUT 10
17
18class ConnectionMonitor : virtual public BaseObject
19{
20  public:
21    ConnectionMonitor( int userId );
22    virtual ~ConnectionMonitor();
23
24    void processUnzippedOutgoingPacket( byte * data, int length, int stateId );
25    void processUnzippedIncomingPacket( byte * data, int length, int stateId, int ackedState );
26
27   
28    void calculatePing();
29   
30    //TODO
31    bool hasTimedOut(){ return false; return ( lastPacketTick + SECS_TO_TIMEOUT*1000 < SDL_GetTicks() ) && nIncomingPackets > 0; }
32   
33    int getMaxPacketSize();
34   
35  private:
36    float calculateBandWidth( std::map<int,int> packetHistory, int tick );
37   
38    int userId;       //!< user's id
39
40    std::map<int,int>   sentStateTicks;
41   
42    std::map<int,int>   incomingUnzippedPacketHistory;
43    std::map<int,int>   outgoingUnzippedPacketHistory;
44   
45    std::map<int,int>   incomingZippedPacketHistory;
46    std::map<int,int>   outgoingZippedPacketHistory;
47   
48    std::list<int>      ackDelay;
49    int                 ping;
50
51    float               incomingUnzippedBandWidth;
52    float               outgoingUnzippedBandWidth;
53   
54    float               incomingZippedBandWidth;
55    float               outgoingZippedBandWidth;
56   
57    int                 nIncomingPackets;
58    int                 nOutgoingPackets;
59   
60    int                 lastPacketTick;
61  };
62
63#endif
Note: See TracBrowser for help on using the repository browser.