summaryrefslogtreecommitdiff
path: root/tiger-compiler/src/task/multiple-string-task.hh
diff options
context:
space:
mode:
Diffstat (limited to 'tiger-compiler/src/task/multiple-string-task.hh')
-rw-r--r--tiger-compiler/src/task/multiple-string-task.hh34
1 files changed, 34 insertions, 0 deletions
diff --git a/tiger-compiler/src/task/multiple-string-task.hh b/tiger-compiler/src/task/multiple-string-task.hh
new file mode 100644
index 0000000..a770b3b
--- /dev/null
+++ b/tiger-compiler/src/task/multiple-string-task.hh
@@ -0,0 +1,34 @@
+/**
+ ** \file task/multiple-string-task.hh
+ ** \brief Declaration of task::MultipleStringTask.
+ **
+ */
+
+#pragma once
+
+#include <string>
+
+#include <task/argument-task.hh>
+
+namespace task
+{
+ /// A simple task that invokes callback function with string argument.
+ class MultipleStringTask : public ArgumentTask
+ {
+ public:
+ using callback_type = auto(const std::string&) -> void;
+
+ MultipleStringTask(callback_type& cb,
+ const char* module_name,
+ const char* desc,
+ const char* name,
+ std::string deps);
+
+ public:
+ void execute() const override;
+
+ public:
+ callback_type& execute_;
+ };
+
+} // namespace task