/** * @file MultipleKernelData.cpp * @brief caching some kernel data * @author Erik Rodner * @date 01/19/2010 */ #include #include "MultipleKernelData.h" using namespace std; using namespace NICE; using namespace OBJREC; MultipleKernelData::MultipleKernelData ( const MultipleKernelData & src ) : KernelData ( src ) { for ( vector::const_iterator i = src.multipleKernelData.begin(); i != src.multipleKernelData.end(); i++ ) multipleKernelData.push_back ( (*i)->clone() ); } MultipleKernelData::MultipleKernelData( const Config *conf, const Matrix & kernelMatrix, const string & section ) : KernelData( conf, kernelMatrix, section ) { } MultipleKernelData::MultipleKernelData( const Config *conf, const string & section ) : KernelData ( conf, section ) { } MultipleKernelData::~MultipleKernelData() { } void MultipleKernelData::destroy (void) { for ( vector::const_iterator i = multipleKernelData.begin(); i != multipleKernelData.end(); i++ ) delete (*i); multipleKernelData.clear(); } const KernelData* MultipleKernelData::getSingleKernelData( uint i ) const { vector::const_iterator it = multipleKernelData.begin(); advance ( it, i ); if ( it == multipleKernelData.end() ) fthrow(Exception, "Kernel data with this index is unavailable"); return *it; } MultipleKernelData *MultipleKernelData::clone(void) const { MultipleKernelData *dst = new MultipleKernelData (*this); return dst; }