moved QoS down to pqistreamer pipes. This removes one out queue, and removes lags due to many packets being sent at ones.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5249 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2012-06-23 12:10:41 +00:00
parent fd34bbfdaf
commit 8d070bb030
10 changed files with 242 additions and 127 deletions

View file

@ -61,17 +61,26 @@ class pqistreamer: public PQInterface
time_t getLastIncomingTS(); // Time of last data packet, for checking a connection is alive.
virtual void getRates(RsBwRates &rates);
virtual int getQueueSize(bool in); // extracting data.
private:
protected:
/* Implementation */
// These methods are redefined in pqiQoSstreamer
//
virtual void locked_storeInOutputQueue(void *ptr,int priority) ;
virtual int out_queue_size() const ;
virtual void locked_clear_out_queue() ;
virtual int locked_compute_out_pkt_size() const ;
virtual void *locked_pop_out_data() ;
private:
// to filter functions - detect filecancel/data and act!
int queue_outpqi( RsItem *i,uint32_t& serialized_size);
int handleincomingitem(RsItem *i);
int queue_outpqi(RsItem *i,uint32_t& serialized_size);
int handleincomingitem(RsItem *i);
// ticked regularly (manages out queues and sending
// via above interfaces.
int handleoutgoing();
int handleincoming();
virtual int handleoutgoing();
virtual int handleincoming();
// Bandwidth/Streaming Management.
float outTimeSlice();
@ -124,5 +133,4 @@ class pqistreamer: public PQInterface
};
#endif //MRK_PQI_STREAMER_HEADER