#ifndef OBJCONF_H
#define OBJCONF_H
#include "conf.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _conf_object {
ConfigLine *begin;
ConfigLine *end;
sstr_t name;
sstr_t ppath;
UcxList *directives[
7];
} ConfigObject;
typedef struct _conf_parser_level {
ConfigTag *iftag;
ConfigTag *tag;
int levelnum;
} ConfigParserLevel;
typedef struct _obj_conf {
ConfigParser parser;
char *file;
UcxList *conditions;
UcxList *objects;
ConfigObject *obj;
UcxList *levels;
} ObjectConfig;
ObjectConfig *load_object_config(
char *file);
void free_object_config(ObjectConfig *conf);
int objconf_parse(
void *p, ConfigLine *begin, ConfigLine *end,
sstr_t line);
int objconf_on_begin_tag(ObjectConfig *conf, ConfigTag *tag);
int objconf_on_end_tag(ObjectConfig *conf,
sstr_t tagname);
int objconf_on_directive(ObjectConfig *conf, ConfigDirective *dir);
#ifdef __cplusplus
}
#endif
#endif