summaryrefslogtreecommitdiff
path: root/tiger-compiler/src/task/multiple-string-task.hh
blob: a770b3baed8df8ae907b335efede0716127edaba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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