00001 #ifndef PARAMETER_SET_MANAGER_CPP
00002 #define PARAMETER_SET_MANAGER_CPP
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #include "ParameterSetManager.h"
00038 #include "Utilities.h"
00039
00040
00041 ParameterSetManager* ParameterSetManager::ptrInstance = NULL;
00042
00043 void
00044 ParameterSetManager::setupParameters(int t1, int u1, int ws1, int t2,
00045 int u2, int ws2, int t3, int u3,
00046 int ws3) {
00047
00048 ASSERT ( ptrInstance == NULL );
00049 ptrInstance = new ParameterSetManager;
00050
00051
00052
00053 ptrInstance->addParameterSet(new ParameterSet(-1, 150, 50, 1, 45, 45,
00054 t1, u1, ws1));
00055 ptrInstance->addParameterSet(new ParameterSet(150, 400, 75, 25, 75, 100,
00056 t2, u2, ws2));
00057 ptrInstance->addParameterSet(new ParameterSet(400, -1, 100, 50, 105, 130,
00058 t3, u3, ws3));
00059 }
00060
00061 void
00062 ParameterSetManager::addParameterSet(ParameterSet* p) {
00063 parameterSets.push_back(p);
00064 }
00065
00066 ParameterSetManager::ParameterSetManager() {
00067
00068 }
00069
00070 ParameterSetManager::~ParameterSetManager() {
00071 for(size_t i = 0; (i < parameterSets.size()); i++) {
00072 delete parameterSets[i];
00073 }
00074 parameterSets.clear();
00075 }
00076
00077 ParameterSet*
00078 ParameterSetManager:: getParameterSet(const int seq1Len, const int seq2Len) {
00079 int minLength = std::min(seq1Len, seq2Len);
00080 size_t setNum = 0;
00081 for (setNum = 0; setNum < parameterSets.size()-1; setNum++) {
00082 if (minLength <= parameterSets[setNum]->maxLength) {
00083 break;
00084 }
00085 }
00086 if (setNum == 0 && parameterSets.size() > 2 &&
00087 std::max(seq1Len, seq2Len) >
00088 parameterSets[parameterSets.size()-1]->minLength) {
00089
00090
00091 return NULL;
00092 } else {
00093 return parameterSets[setNum];
00094 }
00095 }
00096
00097 int
00098 ParameterSetManager::getMaxFrameSize() {
00099 return parameterSets[parameterSets.size()-1]->frameSize;
00100 }
00101
00102 #endif