![]() |
LeechCraft Monocle
0.6.70-6645-gcd10d7e
Modular document viewer for LeechCraft
|
Basic interface for plugins providing support for various document formats for Monocle. More...
#include "ibackendplugin.h"
Public Types | |
enum | LoadCheckResult { LoadCheckResult::Cannot, LoadCheckResult::Can, LoadCheckResult::Redirect } |
Describes the result of checking whether a file can be loaded. More... | |
Public Member Functions | |
virtual | ~IBackendPlugin () |
Virtual destructor. More... | |
virtual LoadCheckResult | CanLoadDocument (const QString &filename)=0 |
Checks whether the given document can be loaded. More... | |
virtual IDocument_ptr | LoadDocument (const QString &filename)=0 |
Loads the given document. More... | |
virtual IRedirectProxy_ptr | GetRedirection (const QString &filename) |
Returns the redirection proxy for the given document. More... | |
virtual QStringList | GetSupportedMimes () const =0 |
Returns the MIME types supported by the backend. More... | |
virtual bool | IsThreaded () const |
Returns whether the backend supports threads. More... | |
Basic interface for plugins providing support for various document formats for Monocle.
This interface should be implemented by plugins that provide format backends for Monocle document reader — that is, for those plugins that can load documents or convert them.
Some backends only convert a document from their format to another format, probably supported by another Monocle plugin. This is called a redirection, and the backend should return LoadCheckResult::Redirect from the CanLoadDocument() method in this case. The backend should also return a valid redirect proxy from the GetRedirection() method in this case.
Definition at line 59 of file ibackendplugin.h.
Describes the result of checking whether a file can be loaded.
Enumerator | |
---|---|
Cannot |
The file cannot be loaded by this backend. |
Can |
The file can be loaded by this backend. |
Redirect |
The file cannot be loaded by this backend, but can be converted to another format. |
Definition at line 71 of file ibackendplugin.h.
|
inlinevirtual |
Virtual destructor.
Definition at line 64 of file ibackendplugin.h.
|
pure virtual |
Checks whether the given document can be loaded.
This method should return LoadCheckResult::Can if the document can possibly be loaded, LoadCheckResult::Cannot if it can't be loaded at all, and LoadCheckResult::Redirect if the document can be preprocessed and converted to some other format probably loadable by another Monocle plugin.
The cheaper this function is, the better. It is discouraged to just check by document extension, though.
It is OK to return nullptr or invalid document from LoadDocument() even if this method returns LoadCheckResult::Can for a given filename.
If this function returns LoadCheckResult::Redirect, then the GetRedirection() method should return a non-null redirect proxy (which can fail to convert the document, though).
[in] | filename | Path to the document to check. |
|
inlinevirtual |
Returns the redirection proxy for the given document.
This function should return a redirect proxy for the document at filename, or a null pointer if the document cannot be redirected (for example, if it is invalid or can be handled directly by this module). However, a null pointer can be returned only if CanLoadDocument() returned LoadCheckResult::Can or LoadCheckResult::Cannot for the same document.
The default implementation simply does nothing and returns a null pointer.
[in] | filename | The document to redirect. |
Definition at line 157 of file ibackendplugin.h.
References GetSupportedMimes().
|
pure virtual |
Returns the MIME types supported by the backend.
Only those MIMEs that can be handled directly (by the LoadDocument() method) should be returned.
The returned MIME types are only considered when dealing with redirections. CanLoadDocument() and LoadDocument() methods can still be called on a file whose MIME isn't contained in the returned list. The reverse is also true: CanLoadDocument() and LoadDocument() can reject loading a document even if its MIME is contained in the list returned by this method.
Referenced by GetRedirection().
|
inlinevirtual |
Returns whether the backend supports threads.
This function returns true if the implementation supports threaded pages rendering.
The default implementation simply returns false.
Definition at line 189 of file ibackendplugin.h.
References Q_DECLARE_INTERFACE().
|
pure virtual |
Loads the given document.
This method should load the document at filename and return a pointer to it, or a null pointer if the document is invalid.
The ownership is passed to the caller: that is, this backend plugin should keep no strong owning references to the returned document.
It is OK for this method to return a null or invalid document even if CanLoadDocument() returned true
for this filename.
[in] | filename | The document to load. |