68 lines
1.6 KiB
C
68 lines
1.6 KiB
C
/*
|
||
* node_settings.h
|
||
*
|
||
* Created on: 6 июл. 2022 г.
|
||
* Author: alexander
|
||
*/
|
||
|
||
#ifndef NODE_SETTINGS_H_
|
||
#define NODE_SETTINGS_H_
|
||
|
||
#include <stdbool.h>
|
||
|
||
#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_ */
|