ctkCmdLineModule.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /*=============================================================================
  2. Library: CTK
  3. Copyright (c) German Cancer Research Center,
  4. Division of Medical and Biological Informatics
  5. Licensed under the Apache License, Version 2.0 (the "License");
  6. you may not use this file except in compliance with the License.
  7. You may obtain a copy of the License at
  8. http://www.apache.org/licenses/LICENSE-2.0
  9. Unless required by applicable law or agreed to in writing, software
  10. distributed under the License is distributed on an "AS IS" BASIS,
  11. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. See the License for the specific language governing permissions and
  13. limitations under the License.
  14. =============================================================================*/
  15. #ifndef CTKCMDLINEMODULE_H
  16. #define CTKCMDLINEMODULE_H
  17. #include "ctkCommandLineModulesCoreExport.h"
  18. #include <QObject>
  19. template<class K, class V> class QHash;
  20. template<class T> class QFuture;
  21. class ctkCmdLineModuleResult;
  22. typedef QFuture<ctkCmdLineModuleResult> ctkCmdLineModuleFuture;
  23. class ctkCmdLineModuleReference;
  24. class ctkCmdLineModulePrivate;
  25. /**
  26. * \ingroup CommandLineModulesCore
  27. */
  28. class CTK_CMDLINEMODULECORE_EXPORT ctkCmdLineModule : public QObject
  29. {
  30. Q_OBJECT
  31. public:
  32. ~ctkCmdLineModule();
  33. virtual QObject* guiHandle() const = 0;
  34. virtual QVariant value(const QString& parameter) const = 0;
  35. virtual void setValue(const QString& parameter, const QVariant& value) = 0;
  36. virtual QList<QString> parameterNames() const;
  37. virtual QHash<QString,QVariant> values() const;
  38. virtual void setValues(const QHash<QString,QVariant>& values);
  39. ctkCmdLineModuleReference moduleReference() const;
  40. QString location() const;
  41. QStringList commandLineArguments() const;
  42. ctkCmdLineModuleFuture run() const;
  43. Q_SIGNAL void valueChanged(const QString& parameter, const QVariant& value);
  44. protected:
  45. ctkCmdLineModule(const ctkCmdLineModuleReference& moduleRef);
  46. private:
  47. friend class ctkCmdLineModulePrivate;
  48. QScopedPointer<ctkCmdLineModulePrivate> d;
  49. };
  50. #endif // CTKCMDLINEMODULE_H