SearchTuner::SearchTuner() {
}
-SearchTuner::SearchTuner(const char *filename) {
+SearchTuner::SearchTuner(const char *filename, bool addused) {
ifstream myfile;
myfile.open (filename, ios::in);
if (myfile.is_open()) {
}
setting->setDecision(lowValue, highValue, defaultValue, selectedValue);
settings.add(setting);
- usedSettings.add(setting);
+ if (addused) {
+ usedSettings.add(setting);
+ }
}
myfile.close();
} else {
}
}
+bool SearchTuner::equalUsed(SearchTuner *tuner) {
+ if (tuner->usedSettings.getSize() != usedSettings.getSize()) {
+ return false;
+ }
+ bool result = true;
+ SetIteratorTunableSetting *iterator = usedSettings.iterator();
+ while (iterator->hasNext()) {
+ TunableSetting *setting = iterator->next();
+ if (!tuner->usedSettings.contains(setting)) {
+ result = false;
+ break;
+ } else {
+ TunableSetting *tunerSetting = tuner->usedSettings.get(setting);
+ if (tunerSetting->selectedValue != setting->selectedValue) {
+ result = false;
+ break;
+ }
+ }
+ }
+ delete iterator;
+ return result;
+}
+
void SearchTuner::addUsed(const char *filename) {
ifstream myfile;
myfile.open (filename, ios::in);
}
}
-bool SearchTuner::isSubTunerof(SearchTuner *newTuner){
+bool SearchTuner::isSubTunerof(SearchTuner *newTuner) {
SetIteratorTunableSetting *iterator = usedSettings.iterator();
while (iterator->hasNext()) {
TunableSetting *setting = iterator->next();
- if(!newTuner->settings.contains(setting)){
+ if (!newTuner->settings.contains(setting)) {
return false;
- } else{
+ } else {
TunableSetting *newSetting = newTuner->settings.get(setting);
- if(newSetting->selectedValue != setting->selectedValue){
+ if (newSetting->selectedValue != setting->selectedValue) {
return false;
}
}
SearchTuner *SearchTuner::copyUsed() {
SearchTuner *tuner = new SearchTuner();
- SetIteratorTunableSetting *iterator = usedSettings.iterator();
+
+ SetIteratorTunableSetting *iterator = !usedSettings.isEmpty()? usedSettings.iterator():settings.iterator();
while (iterator->hasNext()) {
TunableSetting *setting = iterator->next();
TunableSetting *copy = new TunableSetting(setting);