00001 00002 #ifndef _FlagControl_hxx_ 00003 #define _FlagControl_hxx_ 00004 00005 #include "DataTypes.hxx" 00006 #include "OutControl.hxx" 00007 #include "Processing.hxx" 00008 #include "ProcessingConfig.hxx" 00009 #include <string> 00010 00011 namespace CLAM 00012 { 00013 00014 class FlagControlConfig : public ProcessingConfig 00015 { 00016 public: 00017 DYNAMIC_TYPE_USING_INTERFACE (FlagControlConfig, 2, ProcessingConfig); 00018 DYN_ATTRIBUTE (0, public, std::string, Name); 00019 DYN_ATTRIBUTE (1, public, bool, Flag ); 00020 protected: 00021 void DefaultInit(void); 00022 }; 00023 00024 class FlagControl : public Processing 00025 { 00026 private: 00027 00028 FlagControlConfig mConfig; 00029 FloatOutControl mFlagOutControl; 00030 00031 public: 00032 FlagControl(); 00033 FlagControl( const FlagControlConfig & ); 00034 00035 bool Do(); 00036 virtual ~FlagControl(){} 00037 const char * GetClassName() const {return "FlagControl";} 00038 00039 inline const ProcessingConfig &GetConfig() const { return mConfig;} 00040 bool ConcreteConfigure(const ProcessingConfig& c); 00041 00042 }; 00043 00044 } //namespace CLAM 00045 00046 #endif 00047