/* * ExpressionFilterWrapper.cpp * CERTFramework * * Created by Andrew Salamon on 7/24/06. * Copyright 2006 __MyCompanyName__. All rights reserved. * */ #include "ExpressionFilterWrapper.h" #include "ExpressionFilter.h" ExpressionFilterWrapper::ExpressionFilterWrapper( const std::vector aus, const std::string &dir ) { unsigned int cnt = aus.size(); for( unsigned int ind=0; ind < cnt; ++ind ) { int au = aus[ind]; ExpressionFilter *auFilter = NULL; try { auFilter = new ExpressionFilter( au, dir ); } catch( ... ) { } filters[ au ] = auFilter; } } ExpressionFilterWrapper::~ExpressionFilterWrapper() { filterMapType::iterator iter = filters.begin(); filterMapType::iterator end = filters.end(); for( ; iter != end; ++iter ) { ExpressionFilter *auFilter = iter->second; if( auFilter ) delete auFilter; } } double ExpressionFilterWrapper::filterValue( int AU, double value, bool faceFound ) { ExpressionFilter *auFilter = filters[AU]; if( auFilter ) { InputVector invec; invec.raw_response = value; invec.face_found = faceFound; auFilter->NextTimeStep( invec ); return auFilter->GetProbability( ExpressionFilter::PRESENT ); } else { // Probably ought to throw an exception return value; } }