141 return QStringList ();
169 return QStringList ();
194 virtual QStringList
Uses ()
const
196 return QStringList ();
216 const QString& feature)
261Q_DECLARE_INTERFACE (
IInfo,
"org.Deviant.LeechCraft.IInfo/1.0")
263#define CURRENT_API_LEVEL 20
265#define LC_EXPORT_PLUGIN(file,klass) \
266 ICoreProxy_ptr klass::S_Proxy_; \
267 const ICoreProxy_ptr& GetProxyHolder () { return klass::S_Proxy_; } \
271 Q_DECL_EXPORT quint64 GetAPILevels () { return CURRENT_API_LEVEL; } \
277#define LC_PUSH_OVERRIDE_WARNING \
278 _Pragma("clang diagnostic push") \
279 _Pragma("clang diagnostic ignored \"-Winconsistent-missing-override\"")
280#define LC_POP_OVERRIDE_WARNING \
281 _Pragma("clang diagnostic pop")
283#define LC_PUSH_OVERRIDE_WARNING
284#define LC_POP_OVERRIDE_WARNING
287#define DEFINE_PROXY \
288 static ICoreProxy_ptr S_Proxy_; \
289 LC_PUSH_OVERRIDE_WARNING \
290 void SetProxy (ICoreProxy_ptr proxy) { S_Proxy_ = std::move (proxy); } \
291 LC_POP_OVERRIDE_WARNING \
292 friend const ICoreProxy_ptr& ::GetProxyHolder ();
294#define LC_PLUGIN_METADATA(id) \
295 Q_PLUGIN_METADATA (IID id) \
Proxy class for the communication with LeechCraft.
Required interface for every plugin.
virtual void SetProxy(ICoreProxy_ptr)=0
virtual void gotEntity(const LC::Entity &entity)
virtual QString GetInfo() const =0
Returns the information string about the plugin.
virtual void SetProvider(QObject *object, const QString &feature)
Sets the provider plugin for a given feature.
virtual ~IInfo()
Virtual destructor.
virtual QIcon GetIcon() const =0
Returns the plugin icon.
virtual QByteArray GetUniqueID() const =0
Returns the unique ID of the plugin.
virtual void Init(ICoreProxy_ptr proxy)=0
Initializes the plugin.
virtual QStringList Needs() const
Returns the list of needed features.
virtual QString GetName() const =0
Returns the name of the plugin.
virtual void Release()=0
Destroys the plugin.
virtual void SecondInit()=0
Performs second stage of initialization.
virtual QStringList Provides() const
Returns the list of provided features.
virtual QStringList Uses() const
Returns the list of used features.
std::shared_ptr< ICoreProxy > ICoreProxy_ptr
std::shared_ptr< ICoreProxy > ICoreProxy_ptr
const ICoreProxy_ptr & GetProxyHolder()
A message used for inter-plugin communication.