00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef FILTER_H
00014 #define FILTER_H
00015
00016 #include <odindata/filter_step.h>
00017
00024
00025 struct Filter {
00026 static const char* get_compName();
00027 };
00028
00030
00034 class FilterChain {
00035
00036 public:
00037
00041 FilterChain() {}
00042
00046 FilterChain(const STD_string& argstr) {init(argstr);}
00047
00051 FilterChain(int argc,char *argv[]);
00052
00056 bool init(const STD_string& argstr) {return create(tokens(argstr,' ','\"','\"'));}
00057
00061 bool apply(FileIO::ProtocolDataMap& pdmap) const;
00062
00066 bool apply(Protocol& prot, Data<float,4>& data) const;
00067
00068
00069 private:
00070 FilterFactory factory;
00071 STD_list<FilterStep*> filters;
00072
00073 bool create(const svector& args);
00074
00075 };
00076
00077
00082 #endif