5 #include "instance.hpp"
10 explicit Transformer();
12 virtual void run(
const Instance & input) = 0;
13 virtual Instance get_transformed() = 0;
15 virtual TraitsRouter::transform_profile get_transformation()
const = 0;
16 virtual TraitsRouter::transform_profile get_requirements()
const = 0;
21 class SameStartEndTransformer :
public Transformer {
23 explicit SameStartEndTransformer();
24 virtual void run(
const Instance & input);
27 virtual TraitsRouter::transform_profile get_transformation()
const;
28 virtual TraitsRouter::transform_profile get_requirements()
const;
34 class DummyStartEndTransformer :
public Transformer {
36 explicit DummyStartEndTransformer();
37 virtual void run(
const Instance & input);
40 virtual TraitsRouter::transform_profile get_transformation()
const;
41 virtual TraitsRouter::transform_profile get_requirements()
const;
46 class ConsistentWindowTransformer :
public Transformer {
48 explicit ConsistentWindowTransformer();
49 virtual void run(
const Instance & input);
52 virtual TraitsRouter::transform_profile get_transformation()
const;
53 virtual TraitsRouter::transform_profile get_requirements()
const;
58 class TransformerManager {
60 static const TransformerManager& get();
62 const std::set<Transformer *> get_all()
const;
64 ~TransformerManager();
69 static std::set<Transformer *> all_transformers;