/* * node_settings.h * * Created on: 6 июл. 2022 г. * Author: alexander */ #ifndef NODE_SETTINGS_H_ #define NODE_SETTINGS_H_ #include #include "parameter.h" #include "value.h" typedef struct NodeValue { Value name; bool set; bool change; char *current; struct NodeValue *next; } NodeValue; typedef struct NodeParameter { Parameter name; bool set; bool change; char *key; NodeValue *value; bool singleValue; size_t countValue; size_t countValueSet; struct NodeParameter *dependence; struct NodeParameter *conflict; struct NodeParameter *next; } NodeParameter; typedef struct NodeHead { NodeParameter *parameter; size_t countParameter; size_t countParameterSet; } NodeHead; extern NodeHead settings; NodeParameter* getParameter(Parameter name); NodeValue* getValue(Value name); void addParameterKey(Parameter name, char *key, bool set, bool singleValue, NodeParameter *dependence, NodeParameter *conflict); void addParameterValue(Parameter pName, Value vName, char *current, bool set); void freeSettings(); NodeValue *getSetNodeValue(NodeParameter *node); char *getSetValueCurrent(Parameter name); bool getSetParameter(Parameter name); bool getSetValue(Parameter pName, Value vName); int getCountValue(Parameter name); void changeParameter(Parameter name); void changeValue(Parameter pName, Value vName); void saveChangeSettings(); void resetChangeSettings(); void setParameter(Parameter name, bool set); void setParameterValue(Parameter pName, Value vName, char *current); #endif /* SETTINGS_H_ */