#ifndef INTERFACEDRIVER_H #define INTERFACEDRIVER_H #include <QRunnable> #include <QString> #include <QVariant> #include "DoricExport.h" #include "DoricRegistry.h" #include "async/DoricAsyncResult.h" #include "utils/DoricThreadMode.h" class DORIC_EXPORT DoricInterfaceDriver { public: virtual std::shared_ptr<DoricAsyncResult> invokeContextEntityMethod(QString contextId, QString method, QVariantList args) = 0; virtual std::shared_ptr<DoricAsyncResult> invokeDoricMethod(QString method, QVariantList args) = 0; virtual std::shared_ptr<DoricAsyncResult> asyncCall(std::function<void()> lambda, DoricThreadMode mode) = 0; virtual std::shared_ptr<DoricAsyncResult> createContext(QString contextId, QString script, QString source) = 0; virtual std::shared_ptr<DoricAsyncResult> destroyContext(QString contextId) = 0; virtual DoricRegistry *getRegistry() = 0; }; #endif // INTERFACEDRIVER_H