Documentation/CLI Support in CTK: Difference between revisions
No edit summary |
|||
Line 20: | Line 20: | ||
=== API Design === | === API Design === | ||
... | Overview of some central classes and their scope: | ||
==== ctkCmdLineModuleDescription ==== | |||
C++ API for accessing the command line arguments meta-data defined in the XML description. | |||
This class is ''read-only''. | |||
==== ctkCmdLineModuleReference ==== | |||
A handle to a command line module. | |||
* Get ctkCmdLineModuleDescription class | |||
* Convenient meta-data access (module location etc.) | |||
* Used to get actual ctkCmdLineModuleInstance instances from ctkCmdLineModuleManager | |||
==== ctkCmdLineModuleInstance ==== | |||
Represents an invokable command line module and its current parameter values. | |||
Multiple instances for the same ModuleReference may exist. | |||
* Set/Get individual parameter values or all at once | |||
* Reset to default parameters | |||
* Run/Abort | |||
* Status | |||
* Progress reporting | |||
* Get GUI representation (QObject*) | |||
* Get parameter value change notifications | |||
==== ctkCmdLineModuleManager ==== | |||
Responsible for instantiating other ctkCmdLineModule* classes. | |||
* Register factory for customizing GUI generation | |||
* Register/Unregister modules | |||
* Get ctkCmdLineModuleReference objects | |||
* Create/List ModuleInstance objects | |||
=== Customizability === | === Customizability === |
Revision as of 15:43, 9 July 2012
Home < Documentation < CLI Support in CTKThis page is a working draft and does not contain final information.
Command Line Interface (CLI) support in CTK will primarly focus on providing an API for working with existing CLI modules. Providing utiltities and tools for creating CLI modules from scratch is a desired addition but there are no concrete plans for this yet.
Experimental Code
Some experimental code can be found here:
https://github.com/commontk/CTK/tree/cli-module-support
Enable the following CMake options to be able to play with the code:
- BUILD_TESTING (for creating CLI test modules)
- CTK_APP_ctkCommandLineModuleExplorer (small program allowing you to test-drive CLI modules using the CTK CLI module API)
- CTK_BUILD_QTDESIGNER_PLUGINS (needed by the ctkCLIPluginExplorer to create a Qt GUI from the generated .ui files at runtime)
- CTK_LIB_CommandLineModules (the CTK library providing the CLI module API)
- CTK_LIB_Widgets (used by the ctkCLIPluginExplorer to create a Qt GUI for the CLI module from the .ui file)
API Design
Overview of some central classes and their scope:
ctkCmdLineModuleDescription
C++ API for accessing the command line arguments meta-data defined in the XML description.
This class is read-only.
ctkCmdLineModuleReference
A handle to a command line module.
- Get ctkCmdLineModuleDescription class
- Convenient meta-data access (module location etc.)
- Used to get actual ctkCmdLineModuleInstance instances from ctkCmdLineModuleManager
ctkCmdLineModuleInstance
Represents an invokable command line module and its current parameter values.
Multiple instances for the same ModuleReference may exist.
- Set/Get individual parameter values or all at once
- Reset to default parameters
- Run/Abort
- Status
- Progress reporting
- Get GUI representation (QObject*)
- Get parameter value change notifications
ctkCmdLineModuleManager
Responsible for instantiating other ctkCmdLineModule* classes.
- Register factory for customizing GUI generation
- Register/Unregister modules
- Get ctkCmdLineModuleReference objects
- Create/List ModuleInstance objects
Customizability
...
Boston Hackfest Work Items
...