00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _gnBaseFilter_h_
00014 #define _gnBaseFilter_h_
00015
00016 #include "gn/gnDefs.h"
00017
00018 #include <string>
00019 #include "gn/gnClone.h"
00020 #include "gn/gnDefs.h"
00021
00022 class GNDLLEXPORT gnBaseFilter : public gnClone
00023 {
00024 public:
00025 virtual gnBaseFilter* Clone() const = 0;
00026
00027
00028
00029
00030
00031 virtual string GetName() const;
00032
00033
00034
00035
00036 virtual void SetName( string name );
00037
00038
00039
00040
00041
00042
00043 virtual gnSeqC Filter( const gnSeqC ch ) const = 0;
00044
00045
00046
00047
00048
00049
00050
00051 virtual void Filter( gnSeqC** seq, uint32& len ) const = 0;
00052
00053
00054
00055
00056
00057 virtual void Filter( string &seq ) const = 0;
00058
00059 protected:
00060 string m_name;
00061
00062 };
00063
00064 inline
00065 string gnBaseFilter::GetName() const
00066 {
00067 return m_name;
00068 }
00069 inline
00070 void gnBaseFilter::SetName( string name )
00071 {
00072 m_name = name;
00073 }
00074
00075 #endif
00076