#include "gridListReader.h" #include "QtCore/QCoreApplication" #include <vector> #include <string> #include <iostream> using namespace std; void processParameters(int argc, char *argv[]); int entryExistsInArgList(int argc, char *argv[], std::string parameterName); void getSerialListAsStringsFromDatabase(); void convertStringListToNumbers(); void sortNumericList(); void outputApds(); static bool debug = false; static vector<string> serialListString; static vector<unsigned long> serialList; static int gridnumber; int main(int argc, char *argv[]) { processParameters(argc, argv); QCoreApplication *_app = new QCoreApplication(argc,argv); getSerialListAsStringsFromDatabase(); convertStringListToNumbers(); sortNumericList(); outputApds(); _app->exit(0); return 0; } void processParameters(int argc, char *argv[]) { if ( argc == 3 && entryExistsInArgList(argc, argv, "debug")) { debug = true; } else if (argc != 2 ) { cerr << "Too few or too many parameters!\n" << "Pass first and last serial of range." << endl; exit(1); } gridnumber = stoi(argv[1]); } int entryExistsInArgList(int argc, char *argv[], std::string parameterName) { for (int i = 0; i < argc; i++) { if (argv[i] == parameterName) return true; } return false; } void getSerialListAsStringsFromDatabase() { gridListReader *_reader = new gridListReader(gridnumber, debug); serialListString = _reader->getListOfSerials(); } void convertStringListToNumbers() { serialList.clear(); for ( size_t i = 0 ; i < serialListString.size() ; i++) serialList.push_back( stoul( serialListString[i] ) ); if ( serialListString.size() != serialList.size() ) { cerr << "ERROR: Sizes don't match!" << endl; exit(2); } } void sortNumericList() { std::sort(serialList.begin(), serialList.end()); std::cerr << "Sorted!" << std::endl; } void outputApds() { int numOut = 0; for ( size_t i = 0 ; i < serialList.size() ; i++) { std::string thisSerial = std::to_string(serialList[i]); while (thisSerial.length() < 10) thisSerial = std::string("0") + thisSerial; cout << thisSerial << endl; numOut++; } cerr << "Found " << numOut << " APDs in the given range." << endl; }