Finishing my personal crusade against Buffer.
[quassel.git] / src / client / backlogrequester.h
similarity index 69%
rename from src/client/buffer.h
rename to src/client/backlogrequester.h
index 84f34a3..5ef71b2 100644 (file)
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef _BUFFER_H_
-#define _BUFFER_H_
+#ifndef BACKLOGREQUESTER_H
+#define BACKLOGREQUESTER_H
 
 
-#include <QDateTime>
+#include <QList>
 
 
-class AbstractUiMsg;
-class IrcChannel;
-class NickModel;
+#include "client.h"
+#include "networkmodel.h"
+#include "types.h"
 
 
-struct BufferState;
+class BacklogManager;
 
 
-#include "message.h"
-#include "bufferinfo.h"
+class BacklogRequester {
+public:
+  BacklogRequester(BacklogManager *backlogManger);
+  virtual inline ~BacklogRequester() {}
 
 
-/**
- */
-class Buffer : public QObject {
-  Q_OBJECT
+  virtual void requestBacklog() = 0;
 
 
-public:
-  enum Activity {
-    NoActivity = 0x00,
-    OtherActivity = 0x01,
-    NewMessage = 0x02,
-    Highlight = 0x40
-  };
-  Q_DECLARE_FLAGS(ActivityLevel, Activity)
+protected:
+  inline QList<BufferId> allBufferIds() const { return Client::networkModel()->allBufferIds(); }
+  BacklogManager *backlogManager;
+};
 
 
-  Buffer(BufferInfo, QObject *parent = 0);
 
 
-  BufferInfo bufferInfo() const;
+class FixedBacklogRequester : public BacklogRequester {
+public:
+  FixedBacklogRequester(BacklogManager *backlogManager);
+
+  virtual void requestBacklog();
 
 private:
 
 private:
-  BufferInfo _bufferInfo;
+  static const int backlogCount;
 };
 
 };
 
-Q_DECLARE_OPERATORS_FOR_FLAGS(Buffer::ActivityLevel)
 
 
-#endif
+#endif //BACKLOGREQUESTER_H