LeechCraft 0.6.70-17335-ge406ffdcaf
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
isyncable.h
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#pragma once
10
11#include <QList>
12#include <QtPlugin>
13
14class QObject;
15
16namespace Laretz
17{
18 class Item;
19 class Operation;
20}
21
23{
24public:
25 virtual ~ISyncProxy () {}
26
27 virtual QObject* GetQObject () = 0;
28
29 virtual QList<Laretz::Operation> GetAllOps () const = 0;
30
31 virtual QList<Laretz::Operation> GetNewOps () const = 0;
32
33 virtual void Merge (QList<Laretz::Operation>& ours, const QList<Laretz::Operation>& theirs) = 0;
34protected:
35 virtual void gotNewOps (const QList<Laretz::Operation>&) = 0;
36};
37
38class Q_DECL_EXPORT ISyncable
39{
40public:
41 virtual ~ISyncable () {}
42
43 virtual ISyncProxy* GetSyncProxy () = 0;
44};
45
46Q_DECLARE_INTERFACE (ISyncProxy, "org.Deviant.LeechCraft.ISyncProxy/1.0")
47Q_DECLARE_INTERFACE (ISyncable, "org.Deviant.LeechCraft.ISyncable/1.0")
virtual void gotNewOps(const QList< Laretz::Operation > &)=0
virtual void Merge(QList< Laretz::Operation > &ours, const QList< Laretz::Operation > &theirs)=0
virtual QObject * GetQObject()=0
virtual QList< Laretz::Operation > GetAllOps() const =0
virtual ~ISyncProxy()
Definition isyncable.h:25
virtual QList< Laretz::Operation > GetNewOps() const =0
virtual ISyncProxy * GetSyncProxy()=0
virtual ~ISyncable()
Definition isyncable.h:41