2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-08-31 06:35:14 +00:00

Improve queued by pts updates handling.

The updates are ordered by pts and applied in the correct order.
Also some pts-dependent updates handling was moved to ApiWrap.
This commit is contained in:
John Preston
2017-07-14 14:54:47 +03:00
parent 101ec9a1c1
commit 949104d879
6 changed files with 273 additions and 223 deletions

View File

@@ -376,6 +376,12 @@ public:
void gotRangeDifference(ChannelData *channel, const MTPupdates_ChannelDifference &diff);
void onSelfParticipantUpdated(ChannelData *channel);
// Mayde public for ApiWrap, while it is still here.
// Better would be for this to be moved to ApiWrap.
bool requestingDifference() const {
return _ptsWaiter.requesting();
}
bool contentOverlapped(const QRect &globalRect);
void documentLoadProgress(DocumentData *document);
@@ -584,13 +590,9 @@ private:
QPoint getFloatPlayerHiddenPosition(QPoint position, QSize size, RectPart side) const;
RectPart getFloatPlayerSide(QPoint center) const;
bool ptsUpdated(int32 pts, int32 ptsCount);
bool ptsUpdated(int32 pts, int32 ptsCount, const MTPUpdates &updates);
bool ptsUpdated(int32 pts, int32 ptsCount, const MTPUpdate &update);
void ptsApplySkippedUpdates();
bool requestingDifference() const {
return _ptsWaiter.requesting();
}
bool ptsUpdateAndApply(int32 pts, int32 ptsCount, const MTPUpdates &updates);
bool ptsUpdateAndApply(int32 pts, int32 ptsCount, const MTPUpdate &update);
bool ptsUpdateAndApply(int32 pts, int32 ptsCount);
bool getDifferenceTimeChanged(ChannelData *channel, int32 ms, ChannelGetDifferenceTime &channelCurTime, TimeMs &curTime);
void viewsIncrementDone(QVector<MTPint> ids, const MTPVector<MTPint> &result, mtpRequestId req);