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:
37  {
42  QObject *Handler_ = nullptr;
43 
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