Slicer 5.6
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLCommandLineModuleNode.h
Go to the documentation of this file.
1/*=auto=========================================================================
2
3 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
4
5 See COPYRIGHT.txt
6 or http://www.slicer.org/copyright/copyright.txt for details.
7
8=========================================================================auto=*/
9
10#ifndef __vtkMRMLCommandLineModuleNode_h
11#define __vtkMRMLCommandLineModuleNode_h
12
14#include <vtkMRMLNode.h>
15
16#include "vtkMRMLCLIExport.h"
17
18class ModuleDescription;
19
26class VTK_MRML_CLI_EXPORT vtkMRMLCommandLineModuleNode : public vtkMRMLNode
27{
28public:
31 void PrintSelf(ostream& os, vtkIndent indent) override;
32
34
36 void ReadXMLAttributes(const char** atts) override;
37
39 void WriteXML(ostream& of, int indent) override;
40
44
46 const char* GetNodeTagName() override
47 {return "CommandLineModule";}
48
51 {
56 ParameterChangedEvent = 17000,
67 StatusModifiedEvent
68 };
69
72 const ModuleDescription& GetModuleDescription() const;
73 ModuleDescription& GetModuleDescription();
74 std::string GetModuleDescriptionAsString() const;
75 void SetModuleDescription(const ModuleDescription& description);
76
78 {
80 Idle=0x00,
82 Scheduled=0x01,
84 Running=0x02,
86 Cancelling=0x04,
90 Cancelled=0x08,
93 Completing=0x10,
96 Completed=0x20,
98 ErrorsMask=0x40,
100 CompletedWithErrors= Completed | ErrorsMask,
102 BusyMask = Scheduled | Running | Cancelling | Completing
103 };
104
112 void SetStatus(int status, bool modify=true);
114 int GetStatus() const;
115
118 const char* GetStatusString() const;
119
122 std::string GetDisplayableStatusString() const;
123
125
139
141
144 void SetOutputText(const std::string& text, bool modify = true);
145 std::string GetOutputText() const;
147
149
152 void SetErrorText(const std::string& text, bool modify = true);
153 std::string GetErrorText() const;
155
159 bool IsBusy()const;
160
161 int GetProgress()const;
162
166 void Cancel();
167
171 {
175 AutoRunCancelsRunningProcess = 0x01,
179 AutoRunOnChangedParameter = 0x10,
184 AutoRunOnModifiedInputEvent = 0x20,
187 AutoRunOnOtherInputEvents = 0x40,
189 AutoRunOnAnyInputEvent = AutoRunOnModifiedInputEvent | AutoRunOnOtherInputEvents,
190 // <- add here new options
192 AutoRunEnabledMask = AutoRunOnChangedParameter | AutoRunOnAnyInputEvent
193 };
194
199 void SetAutoRun(bool enable);
200
203 bool GetAutoRun()const;
204
210 void SetAutoRunMode(int autoRunMode);
211
214 int GetAutoRunMode()const;
215
219 void SetAutoRunDelay(unsigned int delayInMs);
220
224 unsigned int GetAutoRunDelay()const;
225
228 vtkMTimeType GetLastRunTime()const;
229
232 vtkMTimeType GetParameterMTime()const;
233
236 vtkMTimeType GetInputMTime()const;
237
240 bool ReadParameterFile(const std::string& filename);
241
247 bool WriteParameterFile(const std::string& filename, bool withHandlesToBulkParameters = true);
248
254 bool SetParameterAsNode(const char* name, vtkMRMLNode* value);
258 bool SetParameterAsString(const char* name, const std::string& value);
262 bool SetParameterAsInt(const char* name, int value);
266 bool SetParameterAsBool(const char* name, bool value);
270 bool SetParameterAsDouble(const char* name, double value);
274 bool SetParameterAsFloat(const char* name, float value);
275
276 std::string GetParameterAsString(const char* name) const;
277
278 void SetModuleDescription(const char *name);
279 std::string GetModuleVersion() const;
280 std::string GetModuleTitle() const;
281 std::string GetModuleTarget() const;
282 std::string GetModuleType() const;
283 bool IsValidGroupId(unsigned int group) const;
284 bool IsValidParamId(unsigned int group, unsigned int param) const;
285 unsigned int GetNumberOfParameterGroups() const;
286 unsigned int GetNumberOfParametersInGroup(unsigned int group) const;
287 std::string GetParameterGroupLabel(unsigned int group) const;
288 std::string GetParameterGroupDescription(unsigned int group) const;
289 std::string GetParameterGroupAdvanced(unsigned int group) const;
290 std::string GetParameterTag(unsigned int group, unsigned int param) const;
291 std::string GetParameterType(unsigned int group, unsigned int param) const;
292 std::string GetParameterArgType(unsigned int group, unsigned int param) const;
293 std::string GetParameterName(unsigned int group, unsigned int param) const;
294 std::string GetParameterLongFlag(unsigned int group, unsigned int param) const;
295 std::string GetParameterLabel(unsigned int group, unsigned int param) const;
296 std::string GetParameterConstraints(unsigned int group, unsigned int param) const;
297 std::string GetParameterMaximum(unsigned int group, unsigned int param) const;
298 std::string GetParameterMinimum(unsigned int group, unsigned int param) const;
299 std::string GetParameterDescription(unsigned int group, unsigned int param) const;
300 std::string GetParameterChannel(unsigned int group, unsigned int param) const;
301 std::string GetParameterIndex(unsigned int group, unsigned int param) const;
303 std::string GetParameterDefault(unsigned int group, unsigned int param) const;
304 std::string GetParameterValue(unsigned int group, unsigned int param) const;
305 std::string GetParameterFlag(unsigned int group, unsigned int param) const;
306 std::string GetParameterMultiple(unsigned int group, unsigned int param) const;
307 std::string GetParameterFileExtensions(unsigned int group, unsigned int param) const;
308 std::string GetParameterCoordinateSystem(unsigned int group, unsigned int param) const;
309
313 bool IsInputDefaultValue(const std::string& value)const;
314
317 static const char* GetRegisteredModuleNameByIndex(int idx);
318 static void RegisterModuleDescription(ModuleDescription md);
319 static bool HasRegisteredModule(const std::string& name);
320 static ModuleDescription GetRegisteredModuleDescription(const std::string& name);
321
323 void Modified() override;
324protected:
326 void ProcessMRMLEvents(vtkObject *caller, unsigned long event,
327 void *callData) override;
328
329 int ContinuousOutputUpdateInProgressCount{0};
330
331private:
335 void operator=(const vtkMRMLCommandLineModuleNode&) = delete;
336
337 class vtkInternal;
338 vtkInternal * Internal;
339};
340
341#endif
MRML node for representing the parameters allowing to run a command line interface module (CLI)....
bool IsValidGroupId(unsigned int group) const
std::string GetParameterChannel(unsigned int group, unsigned int param) const
std::string GetParameterGroupLabel(unsigned int group) const
std::string GetModuleDescriptionAsString() const
static const char * GetRegisteredModuleNameByIndex(int idx)
static vtkMRMLCommandLineModuleNode * New()
std::string GetParameterMultiple(unsigned int group, unsigned int param) const
std::string GetParameterGroupAdvanced(unsigned int group) const
bool IsValidParamId(unsigned int group, unsigned int param) const
bool SetParameterAsString(const char *name, const std::string &value)
std::string GetModuleVersion() const
vtkMTimeType GetInputMTime() const
static ModuleDescription GetRegisteredModuleDescription(const std::string &name)
void Modified() override
Reimplemented for internal reasons.
std::string GetParameterLabel(unsigned int group, unsigned int param) const
std::string GetParameterDescription(unsigned int group, unsigned int param) const
void SetAutoRun(bool enable)
bool SetParameterAsInt(const char *name, int value)
static void RegisterModuleDescription(ModuleDescription md)
void SetModuleDescription(const char *name)
bool SetParameterAsNode(const char *name, vtkMRMLNode *value)
std::string GetParameterGroupDescription(unsigned int group) const
static bool HasRegisteredModule(const std::string &name)
bool WriteParameterFile(const std::string &filename, bool withHandlesToBulkParameters=true)
bool SetParameterAsBool(const char *name, bool value)
unsigned int GetNumberOfParametersInGroup(unsigned int group) const
std::string GetParameterTag(unsigned int group, unsigned int param) const
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
std::string GetParameterValue(unsigned int group, unsigned int param) const
vtkMTimeType GetParameterMTime() const
std::string GetParameterMaximum(unsigned int group, unsigned int param) const
std::string GetParameterFlag(unsigned int group, unsigned int param) const
std::string GetParameterCoordinateSystem(unsigned int group, unsigned int param) const
const ModuleDescription & GetModuleDescription() const
vtkMRMLCopyContentMacro(vtkMRMLCommandLineModuleNode)
unsigned int GetAutoRunDelay() const
std::string GetModuleType() const
void ReadXMLAttributes(const char **atts) override
Set node attributes.
static int GetNumberOfRegisteredModules()
Methods to manage the master list of module description prototypes.
vtkMRMLNode * CreateNodeInstance() override
Create instance of the default node. Like New only virtual.
std::string GetParameterLongFlag(unsigned int group, unsigned int param) const
bool IsInputDefaultValue(const std::string &value) const
std::string GetParameterAsString(const char *name) const
std::string GetModuleTitle() const
void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData) override
Propagate events generated in mrml.
ModuleDescription & GetModuleDescription()
std::string GetModuleTarget() const
void SetAutoRunDelay(unsigned int delayInMs)
void SetModuleDescription(const ModuleDescription &description)
std::string GetParameterConstraints(unsigned int group, unsigned int param) const
std::string GetParameterIndex(unsigned int group, unsigned int param) const
void SetAutoRunMode(int autoRunMode)
bool SetParameterAsFloat(const char *name, float value)
void SetErrorText(const std::string &text, bool modify=true)
std::string GetParameterMinimum(unsigned int group, unsigned int param) const
std::string GetErrorText() const
std::string GetParameterFileExtensions(unsigned int group, unsigned int param) const
bool SetParameterAsDouble(const char *name, double value)
std::string GetParameterArgType(unsigned int group, unsigned int param) const
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
unsigned int GetNumberOfParameterGroups() const
void SetStatus(int status, bool modify=true)
std::string GetParameterType(unsigned int group, unsigned int param) const
std::string GetOutputText() const
const char * GetStatusString() const
std::string GetDisplayableStatusString() const
bool ReadParameterFile(const std::string &filename)
std::string GetParameterDefault(unsigned int group, unsigned int param) const
void SetOutputText(const std::string &text, bool modify=true)
std::string GetParameterName(unsigned int group, unsigned int param) const
void PrintSelf(ostream &os, vtkIndent indent) override
CLINodeEvent
List of events that can be fired on or by the node.
vtkMTimeType GetLastRunTime() const
Abstract Superclass for all specific types of MRML nodes.
void operator=(const vtkMRMLNode &)