ctkCmdLineModule.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. class ctkCmdLineModuleResult;
  21. class ctkCmdLineModuleFuture;
  22. class ctkCmdLineModuleReference;
  23. class ctkCmdLineModulePrivate;
  24. /**
  25. * \ingroup CommandLineModulesCore
  26. */
  27. class CTK_CMDLINEMODULECORE_EXPORT ctkCmdLineModule : public QObject
  28. {
  29. Q_OBJECT
  30. public:
  31. ~ctkCmdLineModule();
  32. virtual QObject* guiHandle() const = 0;
  33. virtual QVariant value(const QString& parameter) const = 0;
  34. virtual void setValue(const QString& parameter, const QVariant& value) = 0;
  35. virtual QList<QString> parameterNames() const;
  36. virtual QHash<QString,QVariant> values() const;
  37. virtual void setValues(const QHash<QString,QVariant>& values);
  38. ctkCmdLineModuleReference moduleReference() const;
  39. QString location() const;
  40. QStringList commandLineArguments() const;
  41. ctkCmdLineModuleFuture run() const;
  42. Q_SIGNAL void valueChanged(const QString& parameter, const QVariant& value);
  43. protected:
  44. ctkCmdLineModule(const ctkCmdLineModuleReference& moduleRef);
  45. private:
  46. friend class ctkCmdLineModulePrivate;
  47. QScopedPointer<ctkCmdLineModulePrivate> d;
  48. };
  49. #endif // CTKCMDLINEMODULE_H