File: filter_step.h

package info (click to toggle)
odin 2.0.5-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,224 kB
  • sloc: cpp: 62,639; sh: 4,541; makefile: 779
file content (59 lines) | stat: -rw-r--r-- 1,270 bytes parent folder | download | duplicates (6)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//
// C++ Interface: filterstep
//
// Description:
//
//
// Author:  <Enrico Reimer>, (C) 2007
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef FILTERSTEP_H
#define FILTERSTEP_H

#include <odindata/data.h>
#include <odindata/step.h>
#include <odindata/fileio.h>


// helper class for debugging the filter component
struct Filter {
  static const char* get_compName();
};

///////////////////////////////////////////////////////////////////////////////////


/**
	@author Enrico Reimer
*/
class FilterStep : public Step<FilterStep> {
public:
  virtual ~FilterStep() {}

  /**
   * Apply filter to protocol-data pair.
   */
  virtual bool process(Data<float,4>& data, Protocol& prot)const;

  /**
   * Apply filter to a 'pdmap'.
   */
  virtual bool process(FileIO::ProtocolDataMap& pdmap)const;

  // To be used by factory via duck typing
  static void create_templates(STD_list<FilterStep*>& result);
  static STD_string manual_group() {return "filter_steps";}
  static void interface_description(const FilterStep* step, STD_string& in, STD_string& out) {}

};

///////////////////////////////////////////////////////////////////////////////////



typedef StepFactory<FilterStep> FilterFactory; // The factory for filter steps


#endif