Оптимизируем работу со строками через параметры функции

This commit is contained in:
2022-11-04 16:47:46 +03:00
parent 72c8321695
commit a7f49cdd5b
2 changed files with 5 additions and 5 deletions

View File

@@ -8,7 +8,7 @@ class ExprAST {
virtual ~ExprAST();
virtual IoTValue *exec();
virtual int setValue(IoTValue *val, bool generateEvent); // ret 0 - установка значения не поддерживается наследником
virtual bool hasEventIdName(String eventIdName);
virtual bool hasEventIdName(const String& eventIdName);
};
class IoTScenario {
@@ -93,7 +93,7 @@ class IoTScenario {
public:
void loadScenario(String fileName);
void exec(String eventIdName);
void exec(const String& eventIdName);
IoTScenario();
~IoTScenario();

View File

@@ -37,7 +37,7 @@ enum Token {
ExprAST::~ExprAST() {}
IoTValue *ExprAST::exec() { return nullptr; }
int ExprAST::setValue(IoTValue *val, bool generateEvent) { return 0; } // 0 - установка значения не поддерживается наследником
bool ExprAST::hasEventIdName(String eventIdName) { return false; } // по умолчанию все узлы не связаны с ИД события, для которого выполняется сценарий
bool ExprAST::hasEventIdName(const String& eventIdName) { return false; } // по умолчанию все узлы не связаны с ИД события, для которого выполняется сценарий
// struct IoTValue zeroIotVal;
/// NumberExprAST - Класс узла выражения для числовых литералов (Например, "1.0").
@@ -543,7 +543,7 @@ class IfExprAST : public ExprAST {
_IDNames = "";
}
bool hasEventIdName(String eventIdName) {
bool hasEventIdName(const String& eventIdName) {
// Serial.printf("Call from BinaryExprAST _IDNames:%s\n", _IDNames.c_str());
return _IDNames.indexOf(" " + eventIdName + " ") >= 0; // определяем встречался ли ИД, для которого исполняем сценарий в выражении IF
}
@@ -1026,7 +1026,7 @@ void IoTScenario::loadScenario(String fileName) { // подготавливае
}
}
void IoTScenario::exec(String eventIdName) { // посимвольно считываем и сразу интерпретируем сценарий в дерево AST
void IoTScenario::exec(const String& eventIdName) { // посимвольно считываем и сразу интерпретируем сценарий в дерево AST
if (mode == 0 && !file) return;
LastChar = 0;