ctkPlugin.h 900 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef CTKPLUGIN_H
  2. #define CTKPLUGIN_H
  3. #include "ctkPluginContext.h"
  4. #include "ctkVersion.h"
  5. namespace ctk {
  6. class PluginArchiveInterface;
  7. class PluginFrameworkContext;
  8. class PluginPrivate;
  9. class Plugin {
  10. Q_DECLARE_PRIVATE(Plugin)
  11. public:
  12. enum State {
  13. UNINSTALLED,
  14. INSTALLED,
  15. RESOLVED,
  16. STARTING,
  17. STOPPING,
  18. ACTIVE
  19. };
  20. Q_DECLARE_FLAGS(States, State)
  21. virtual ~Plugin();
  22. State state() const;
  23. virtual void start();
  24. virtual void stop();
  25. PluginContext* getPluginContext() const;
  26. long getPluginId() const;
  27. QString getSymbolicName() const;
  28. Version getVersion() const;
  29. protected:
  30. PluginPrivate * const d_ptr;
  31. Plugin(PluginFrameworkContext* fw, PluginArchiveInterface* ba);
  32. Plugin(PluginPrivate& dd);
  33. };
  34. }
  35. Q_DECLARE_OPERATORS_FOR_FLAGS(ctk::Plugin::States)
  36. #endif // CTKPLUGIN_H