00001 00024 #ifndef _FEATURECONTAINER_H 00025 #define _FEATURECONTAINER_H 00026 00027 #include <stdio.h> 00028 #include "../Features/Feature.h" 00029 00030 class ConfigReader; 00031 00039 class FeatureContainer { 00040 private: 00042 typedef map<string, FeatureProvider*> providermap; 00043 00045 00049 string persist; 00050 vector<void*> handle; 00051 providermap provider; 00052 featurevector feature; 00053 FILE *out; 00055 00068 bool loadFeature(const char *id); 00084 FeatureProvider* loadProvider(const char *provider, const providerparams &args); 00092 void freeProvider(void *provider); 00100 void freeProvider(); 00101 00102 protected: 00104 00109 typedef pair<string, FeatureProvider*> featurepair; 00110 typedef vector<featurepair> featuremap; 00111 00112 featuremap features; 00114 00115 public: 00126 FeatureContainer(ConfigReader *config); 00128 virtual ~FeatureContainer(); 00129 00146 virtual void nextSample(); 00147 00167 virtual featurevector getFeatureVector() const; 00168 00184 virtual const featurevector* getSampleVector() const; 00185 }; 00186 00187 #endif // _FEATURECONTAINER_H