-BufferIdList ClientBacklogManager::filterNewBufferIds(const BufferIdList &bufferIds) {
- BufferIdList newBuffers;
- foreach(BufferId bufferId, bufferIds) {
- if(!_buffersRequested.contains(bufferId))
- newBuffers << bufferId;
- }
- _buffersRequested += bufferIds.toSet();
- return newBuffers;
+ BacklogSettings settings;
+ switch (settings.requesterType()) {
+ case BacklogRequester::AsNeeded:
+ _requester = new AsNeededBacklogRequester(this);
+ break;
+ case BacklogRequester::GlobalUnread:
+ _requester = new GlobalUnreadBacklogRequester(this);
+ break;
+ case BacklogRequester::PerBufferUnread:
+ _requester = new PerBufferUnreadBacklogRequester(this);
+ break;
+ case BacklogRequester::PerBufferFixed:
+ default:
+ _requester = new FixedBacklogRequester(this);
+ };
+
+ _requester->requestInitialBacklog();
+ _initBacklogRequested = true;
+ if (_requester->isBuffering()) {
+ updateProgress(0, _requester->totalBuffers());
+ }