kdemm backends & Helix
Marco Lohse
mlohse at cs.uni-sb.de
Sun Sep 19 09:38:59 BST 2004
Matthias Welwarsky wrote:
[..]
>
>
>As a sidenote, this is also how plugins are accessed in Trolltechs Qtopia
>environment. Basically, you are guaranteed that each plugin implements a
>queryInterface() method which can be asked by means of a UUID: " do you
>support this interface?". In case of a match, queryInterface() returns a
>pointer to an instance implementing said interface, or a null pointer in case
>of a mismatch. Of course you need to static_cast<> the pointer you receive.
>
>
>
Just a short remark:
NMM provides 'built-in' support for such things using its
object-oriented interface system. You can ask any plug-in what
interfaces (i.e. what functionality) it supports, e.g.:
INode* readfile = graph.getINode(readfile_descr);
IFileHandler_var filehandler (readfile-> getParentObject()-> getCheckedInterface<IFileHandler> ());
filehandler-> setFilename(argv[1]);
(the _var type is just a C++ auto_ptr<>)
=> tries to get the interface IFileHandler from the plug-in node
readfile. When using the 'checked' get interface method, if this
interface is not available, an InterfaceNotFoundExceotion is thrown. Or
you can use getInterface<IFileHandler>() which will return a null
pointer in this case.
Have fun, Marco.
More information about the kde-multimedia
mailing list