VM2D
1.12
Vortex methods for 2D flows simulation
|
Класс, позволяющий выполнять разбор файлов и строк с настройками и параметрами More...
#include <StreamParser.h>
Public Member Functions | |
StreamParser (LogStream &infoStream, const std::string &label, std::istream &mainStream, std::istream &defaultsStream, std::istream &switchersStream, std::istream &varsStream, std::vector< std::string > specificKey={}) | |
Конструктор, принимающий четыре потока More... | |
StreamParser (LogStream &infoStream, const std::string &label, std::istream &mainStream, std::istream &defaultsStream, std::vector< std::string > specificKey={}) | |
Конструктор, принимающий два потока More... | |
StreamParser (LogStream &infoStream, const std::string &label, std::istream &mainStream, char openBracket= '{', char closeBracket= '}') | |
Конструктор, принимающий один поток More... | |
~StreamParser () | |
Деструктор More... | |
template<typename T > | |
void | SetDefault (const std::string &name, T &res, const T *defValue, bool echoDefault) const |
Установка значения параметра по умолчанию More... | |
bool | get (const std::string &name, std::vector< Point2D > &res, const std::vector< Point2D > *defValue=nullptr, bool echoDefault=true) const |
Считывание вектора из двумерных точек из базы данных More... | |
bool | get (const std::string &name, std::vector< v3D > &res, const std::vector< v3D > *defValue=nullptr, bool echoDefault=true) const |
Считывание вектора из трехмерных точек из базы данных More... | |
template<typename T , typename P > | |
bool | get (const std::string &name, std::vector< std::pair< T, P >> &res, const std::vector< std::pair< T, P >> *defValue=nullptr, bool echoDefault=true) const |
Считывание вектора из пар чисел из базы данных More... | |
template<typename T > | |
bool | get (const std::string &name, std::vector< numvector< T, 2 >> &res, const std::vector< numvector< T, 2 >> *defValue=nullptr, bool echoDefault=true) const |
Считывание вектора из пар чисел из базы данных More... | |
bool | get (const std::string &name, std::vector< Vortex2D > &res, const std::vector< Vortex2D > *defValue=nullptr, bool echoDefault=true) const |
Считывание вектора из вихрей из базы данных More... | |
bool | get (const std::string &name, std::vector< GeomPoint > &res, const std::vector< GeomPoint > *defValue=nullptr, bool echoDefault=true) const |
Считывание вектора из точек, задающих профиль, из базы данных More... | |
template<typename T > | |
bool | get (const std::string &name, std::vector< T > &res, const std::vector< T > *defValue=nullptr, bool echoDefault=true) const |
Считывание вектора из простых типов из базы данных More... | |
template<typename T > | |
bool | get (const std::string &name, std::pair< std::string, T > &res, const std::pair< std::string, T > *defValue=nullptr, bool echoDefault=true) const |
Считывание пары (строка, скаляр) из базы данных More... | |
template<typename T > | |
bool | get (const std::string &name, T &res, const T *defValue=nullptr, bool echoDefault=true) const |
Считывание скаляра из базы данных More... | |
bool | get (const std::string &name, Point2D &res, const Point2D *defValue=nullptr, bool echoDefault=true) const |
Считывание точки из базы данных More... | |
bool | get (const std::string &name, v3D &res, const v3D *defValue=nullptr, bool echoDefault=true) const |
Считывание точки из базы данных More... | |
bool | get (const std::string &name, bool &res, const bool *defValue=nullptr, bool echoDefault=true) const |
Считывание логической переменной из базы данных More... | |
bool | get (const std::string &name, std::pair< std::pair< std::string, int >, std::string > &res, const std::pair< std::pair< std::string, int >, std::string > *defValue=nullptr, bool echoDefault=true) const |
Считывание пары: ((строка, целое число), строка) вида ((str1, int), string) из базы данных More... | |
Static Public Member Functions | |
static std::string | UpperCase (const std::string &line) |
Перевод строки в верхний регистр More... | |
static std::vector< std::string > | StringToVector (std::string line, char openBracket= '(', char closeBracket= ')') |
Pазбор строки, содержащей запятые, на отдельные строки More... | |
static std::string | VectorStringToString (const std::vector< std::string > &_vecString) |
Объединение вектора (списка) из строк в одну строку More... | |
static std::pair< std::string, std::string > | SplitString (LogStream &info, std::string line, bool upcase=true) |
Разбор строки на пару ключ-значение More... | |
Public Attributes | |
std::unordered_map< std::string, std::vector< std::string > > | database |
Данные считываемые из основного файла-паспорта расчета More... | |
Private Member Functions | |
void | ParseStream (std::istream &stream, std::unordered_map< std::string, std::vector< std::string >> &database, std::vector< std::string > specificKey={}, bool replaceVars=false, char openBracket= '(', char closeBracket= ')') |
Парсинг заданного потока More... | |
void | ReplaceVarsInString (std::string &st) |
Замена переменных в строке их значениями More... | |
Private Attributes | |
LogStream | info |
Поток для вывода логов и сообщений об ошибках More... | |
std::unordered_map< std::string, std::vector< std::string > > | defaults |
Данные считываемые из списка умолчаний More... | |
std::unordered_map< std::string, std::vector< std::string > > | vars |
Данные считываемые из параметров конкретной задачи More... | |
std::unordered_map< std::string, std::vector< std::string > > | switchers |
Данные считываемые из перечня параметров-переключателей More... | |
Класс, позволяющий выполнять разбор файлов и строк с настройками и параметрами
Definition at line 151 of file StreamParser.h.
StreamParser::StreamParser | ( | LogStream & | infoStream, |
const std::string & | label, | ||
std::istream & | mainStream, | ||
std::istream & | defaultsStream, | ||
std::istream & | switchersStream, | ||
std::istream & | varsStream, | ||
std::vector< std::string > | specificKey = {} |
||
) |
Конструктор, принимающий четыре потока
Заполняет 4 базы данных — database, defaults, switchers, vars
Используется для установки основных параметров расчета
[in,out] | infoStream | базовый поток для вывода логов |
[in] | label | константная ссылка на метку парсера для вывода логов |
[in] | mainStream | ссылка на основной поток параметров |
[in] | defaultsStream | ссылка на поток по умолчанию |
[in] | switchersStream | ссылка на поток параметров-переключателей |
[in] | varsStream | ссылка на поток переменных |
[in] | specificKey | поиск только ключей из данного списка (по умолчанию — пустой список, что означает разбор всех ключей) |
Definition at line 42 of file StreamParser.cpp.
StreamParser::StreamParser | ( | LogStream & | infoStream, |
const std::string & | label, | ||
std::istream & | mainStream, | ||
std::istream & | defaultsStream, | ||
std::vector< std::string > | specificKey = {} |
||
) |
Конструктор, принимающий два потока
Заполняет 2 базы данных — database, defaults; базы данных switchers и vars остаются пустыми
Используется для первоначального считывания параметров задач из списка задач и формирования очереди
[in,out] | infoStream | базовый поток для вывода логов |
[in] | label | константная ссылка на метку парсера для вывода логов |
[in] | mainStream | ссылка на основной поток параметров |
[in] | defaultsStream | ссылка на поток по умолчанию |
[in] | specificKey | поиск только ключей из данного списка (по умолчанию — пустой список, что означает разбор всех ключей) |
Definition at line 54 of file StreamParser.cpp.
StreamParser::StreamParser | ( | LogStream & | infoStream, |
const std::string & | label, | ||
std::istream & | mainStream, | ||
char | openBracket = '{' , |
||
char | closeBracket = '}' |
||
) |
Конструктор, принимающий один поток
Заполняет 1 базу данных — database; базы данных defaults, switchers и vars остаются пустыми
Используется для считывания профиля, следа, списка задач
[in,out] | infoStream | базовый поток для вывода логов |
[in] | label | константная ссылка на метку парсера для вывода логов |
[in] | mainStream | ссылка на основной поток параметров |
[in] | openBracket | тип открывающейся скобки (по умолчанию — "{" ) |
[in] | closeBracket | тип закрывающейся скобки (по умолчанию — "}" ) |
Definition at line 67 of file StreamParser.cpp.
|
inline |
|
inline |
Считывание вектора из двумерных точек из базы данных
Переопределение метода get() для считывания вектора из точек (Point2D) из базы данных
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка на значение, считываемое из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 314 of file StreamParser.h.
|
inline |
Считывание вектора из трехмерных точек из базы данных
Переопределение метода get() для считывания вектора из точек (v3D) из базы данных
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка на значение, считываемое из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 362 of file StreamParser.h.
|
inline |
Считывание вектора из пар чисел из базы данных
Переопределение метода get() для считывания вектора из пар чисел (std::pair) из базы данных
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка на значение, считываемое из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 412 of file StreamParser.h.
|
inline |
Считывание вектора из пар чисел из базы данных
Переопределение метода get() для считывания вектора из пар чисел (numvector<T,2>) из базы данных
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка на значение, считываемое из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 461 of file StreamParser.h.
|
inline |
Считывание вектора из вихрей из базы данных
Переопределение метода get() для считывания вектора из вихрей (Vortex2D) из базы данных
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка на вектор из вихрей, считываемый из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 509 of file StreamParser.h.
|
inline |
Считывание вектора из точек, задающих профиль, из базы данных
Переопределение метода get() для считывания вектора из вихрей (Vortex2D) из базы данных
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка на вектор из вихрей, считываемый из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 563 of file StreamParser.h.
|
inline |
Считывание вектора из простых типов из базы данных
Шаблонный метод get() для считывания вектора из простых типов из базы данных
T | тип считываемых данных |
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка на вектор из данных, считываемый из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 623 of file StreamParser.h.
|
inline |
Считывание пары (строка, скаляр) из базы данных
Шаблонный метод get() для считывания пары (строка, скаляр) из базы данных
T | тип считываемых данных |
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка данные, считываемые из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 677 of file StreamParser.h.
|
inline |
Считывание скаляра из базы данных
Шаблонный метод get() для считывания скаляра из базы данных
T | тип считываемых данных |
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка данные, считываемые из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 742 of file StreamParser.h.
|
inline |
Считывание точки из базы данных
Переопределение метода get() для считывания точки (Point2D) из базы данных
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка на точку, считываемую из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 803 of file StreamParser.h.
|
inline |
Считывание точки из базы данных
Переопределение метода get() для считывания точки (v3D) из базы данных
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка на точку, считываемую из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 858 of file StreamParser.h.
|
inline |
Считывание логической переменной из базы данных
Переопределение метода get() для ситывания логической переменной (bool) из базы данных
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка на логическую переменную, считываемую из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 913 of file StreamParser.h.
|
inline |
Считывание пары: ((строка, целое число), строка) вида ((str1, int), string) из базы данных
Метод get() для считывания пары: ((строка, целое число), строка) из базы данных
[in] | name | константная ссылка на строку — имя считываемого параметра |
[out] | res | ссылка данные, считываемые из базы данных |
[in] | defValue | указатель на константу — значение по умолчанию (по умолчанию nullptr) |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию (по умолчанию true) |
Definition at line 970 of file StreamParser.h.
|
private |
Парсинг заданного потока
Разбирает поток вида key = value или key = { value1, value2, ..., valueN }
Возвращает базу данных, указывается тип скобок, по умолчанию — круглые
[in] | stream | ссылка на поток, который требуется распарсить |
[out] | database | ссылка на заполняемую базу данных (unordered_map) |
[in] | specificKey | поиск только ключей из данного списка (по умолчанию — пустой список, что означает разбор всех ключей) |
[in] | replaceVars | признак замены переменных из базы vars (по умолчанию false) |
[in] | openBracket | тип открывающейся скобки (по умолчанию — "(" ) |
[in] | closeBracket | тип закрывающейся скобки (по умолчанию — ")" ) |
Definition at line 177 of file StreamParser.cpp.
|
private |
Замена переменных в строке их значениями
Находит в строке все переменные, имена которых начинаются с символа $, и заменяет их на значения, извлекаемые из базы данных vars
[in] | st | строка, которая подлежит обработке |
Definition at line 250 of file StreamParser.cpp.
|
inline |
Установка значения параметра по умолчанию
Устанавливает параметру значение по умолчанию, если оно задано в виде константной ссылки
T | тип параметра, значение которого устанавливается |
[in] | name | константная ссылка на строку — имя устанавливаемого параметра (необходимо только для отображения в лог) |
[in] | res | ссылка на задаваемый параметр |
[in] | defValue | указатель на константу — значение по умолчанию |
[in] | echoDefault | признак эхо-ответа при считывании значения по умолчанию |
Definition at line 291 of file StreamParser.h.
|
static |
Разбор строки на пару ключ-значение
Разбирает строку вида xxx(yyy) на пару подстрок xxx и yyy
[in,out] | info | поток для вывода логов и сообщений об ошибках |
[in] | line | разбираемая строка вида xxx(ууу) |
[in] | upcase | признак перевода ключа в верхний регистр |
Definition at line 156 of file StreamParser.cpp.
|
static |
Pазбор строки, содержащей запятые, на отдельные строки
Запятые внутри парных скобок игнорируются и не воспринимаются как разделители
[in] | line | разбираемая строка |
[in] | openBracket | тип открывающейся скобки (по умолчанию — "(" ) |
[in] | closeBracket | тип закрывающейся скобки (по умолчанию — ")" ) |
Definition at line 98 of file StreamParser.cpp.
|
static |
Перевод строки в верхний регистр
[in] | line | константная ссылка на обрабатываемую строку |
Definition at line 79 of file StreamParser.cpp.
|
static |
Объединение вектора (списка) из строк в одну строку
После каждой строки вставляется символ конца строки
[in] | _vecString | константная ссылка на вектор из строк |
Definition at line 142 of file StreamParser.cpp.
std::unordered_map<std::string, std::vector<std::string> > VMlib::StreamParser::database |
Данные считываемые из основного файла-паспорта расчета
Неупорядоченный ассоциативный контейнер, хранящий данные из паспорта расчета
По умолчанию данные берутся из файла passport, но это имя может быть изменено ключом pspFile в строке параметров задачи
Definition at line 163 of file StreamParser.h.
|
private |
Данные считываемые из списка умолчаний
Неупорядоченный ассоциативный контейнер, хранящий данные из файла со списком значений по умолчанию
По умолчанию данные берутся из файла defaults
Definition at line 169 of file StreamParser.h.
|
mutableprivate |
Поток для вывода логов и сообщений об ошибках
Definition at line 156 of file StreamParser.h.
|
private |
Данные считываемые из перечня параметров-переключателей
Неупорядоченный ассоциативный контейнер, хранящий значения параметров-переключателей
По умолчанию данные берутся из файла switcher.
Definition at line 181 of file StreamParser.h.
|
private |
Данные считываемые из параметров конкретной задачи
Неупорядоченный ассоциативный контейнер, хранящий данные из строки — перечня параметров конкретной задачи в файле problems.
Здесь же определяются переменные, которые затем могут использоваться методом разыменовывания в файлах-паспортах конкретных задач
Definition at line 175 of file StreamParser.h.