1 /*
2    Drawpile - a collaborative drawing program.
3 
4    Copyright (C) 2019 Calle Laakkonen
5 
6    Drawpile is free software: you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation, either version 3 of the License, or
9    (at your option) any later version.
10 
11    Drawpile is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15 
16    You should have received a copy of the GNU General Public License
17    along with Drawpile.  If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #ifndef THINSERVERCLIENT_H
21 #define THINSERVERCLIENT_H
22 
23 #include "client.h"
24 
25 namespace server {
26 
27 class ThinServerClient : public Client
28 {
29 public:
30 	ThinServerClient(QTcpSocket *socket, ServerLog *logger, QObject *parent=nullptr);
31 
32 	/**
33 	 * @brief Get this client's position in the session history
34 	 * The returned index in the index of the last history message that
35 	 * is (or was) in the client's upload queue.
36 	 */
historyPosition()37 	int historyPosition() const { return m_historyPosition; }
38 
setHistoryPosition(int pos)39 	void setHistoryPosition(int pos) { m_historyPosition = pos; }
40 
41 public slots:
42 	void sendNextHistoryBatch();
43 
44 private:
45 	int m_historyPosition;
46 };
47 
48 }
49 
50 #endif // THINSERVERCLIENT_H
51