#include "networkmodel.h"
#include "types.h"
-class BacklogManager;
+class ClientBacklogManager;
class BacklogRequester {
public:
enum RequesterTypes {
InvalidRequester = 0,
- GlobalUnread,
+ PerBufferFixed,
PerBufferUnread,
- PerBufferFixed
+ GlobalUnread
};
- BacklogRequester(bool buffering, BacklogManager *backlogManger);
+ BacklogRequester(bool buffering, ClientBacklogManager *backlogManger);
virtual inline ~BacklogRequester() {}
inline bool isBuffering() { return _isBuffering; }
inline void setWaitingBuffers(const QList<BufferId> &buffers) { _buffersWaiting = buffers.toSet(); }
inline void setWaitingBuffers(const QSet<BufferId> &buffers) { _buffersWaiting = buffers; }
inline void addWaitingBuffer(BufferId buffer) { _buffersWaiting << buffer; }
- BacklogManager *backlogManager;
+
+ ClientBacklogManager *backlogManager;
private:
bool _isBuffering;
// ========================================
class FixedBacklogRequester : public BacklogRequester {
public:
- FixedBacklogRequester(BacklogManager *backlogManager);
+ FixedBacklogRequester(ClientBacklogManager *backlogManager);
virtual void requestBacklog();
private:
int _backlogCount;
};
+// ========================================
+// GLOBAL UNREAD BACKLOG REQUESTER
+// ========================================
+class GlobalUnreadBacklogRequester : public BacklogRequester {
+public:
+ GlobalUnreadBacklogRequester(ClientBacklogManager *backlogManager);
+ virtual void requestBacklog();
+
+private:
+ int _limit;
+ int _additional;
+};
+
+// ========================================
+// PER BUFFER UNREAD BACKLOG REQUESTER
+// ========================================
+class PerBufferUnreadBacklogRequester : public BacklogRequester {
+public:
+ PerBufferUnreadBacklogRequester(ClientBacklogManager *backlogManager);
+ virtual void requestBacklog();
+
+private:
+ int _limit;
+ int _additional;
+};
#endif //BACKLOGREQUESTER_H