LeechCraft
0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
ientitymanager.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 <QObject>
12
#include <QFuture>
13
#include <
util/sll/either.h
>
14
#include <
interfaces/idownload.h
>
15
16
namespace
LC
17
{
18
struct
Entity;
19
}
20
31
class
Q_DECL_EXPORT
IEntityManager
32
{
33
public
:
36
struct
DelegationResult
37
{
42
QObject *Handler_ =
nullptr
;
43
46
QFuture<IDownload::Result>
DownloadResult_
;
47
48
explicit
operator
bool ()
const
49
{
50
return
Handler_;
51
}
52
};
53
54
virtual
~IEntityManager
() {}
55
72
virtual
DelegationResult DelegateEntity (
LC::Entity
entity, QObject *desired =
nullptr
) = 0;
73
88
virtual
bool
HandleEntity (
LC::Entity
entity, QObject *desired =
nullptr
) = 0;
89
96
virtual
bool
CouldHandle (
const
LC::Entity
& entity) = 0;
97
104
virtual
QList<QObject*>
GetPossibleHandlers (
const
LC::Entity
& entity) = 0;
105
};
106
107
Q_DECLARE_INTERFACE (
IEntityManager
,
"org.Deviant.LeechCraft.IEntityManager/1.0"
)
IEntityManager::DelegationResult
The result of delegating this entity to another plugin.
Definition:
ientitymanager.h:36
QList< QObject * >
LC::Entity
A message used for inter-plugin communication.
Definition:
structures.h:95
either.h
IEntityManager::~IEntityManager
virtual ~IEntityManager()
Definition:
ientitymanager.h:54
IEntityManager
Proxy to core entity manager.
Definition:
ientitymanager.h:31
LC
Definition:
constants.h:14
QFuture
Definition:
idownload.h:17
IEntityManager::DelegationResult::DownloadResult_
QFuture< IDownload::Result > DownloadResult_
Definition:
ientitymanager.h:46
idownload.h
src
interfaces
core
ientitymanager.h
Generated by
1.8.17