#ifndef __CONFIGMODEL_H #define __CONFIGMODEL_H #include "types.h" LINEPTR LineNew(CONST_STRPTR buffer); VOID LineFree(LINEPTR abstractLine); CONST_STRPTR LineGetRawText(LINEPTR line); VOID LineSetSection(LINEPTR line, SECTIONPTR section); SECTIONPTR LineGetSection(LINEPTR line); VARIABLEPTR LineGetVariable(LINEPTR line); VOID LineSetInitialVariable(LINEPTR line, VARIABLEPTR variable); VOID LineSetVariable(LINEPTR line, VARIABLEPTR variable); BOOL LineHasVariable(LINEPTR line, CONST_STRPTR varKey); BOOL LineIsBlank(LINEPTR line); VOID LineWrite(LINEPTR abstractLine, BPTR file); VOID LineDump(LINEPTR abstractLine); SECTIONPTR SectionCreateWithName(CONST_STRPTR primary); SECTIONPTR SectionCreateWithNameAndSubname(CONST_STRPTR primary, CONST_STRPTR secondary); VOID SectionFree(SECTIONPTR section); VOID SectionAddSectionLine(SECTIONPTR section, LINEPTR line); VOID SectionAddLine(SECTIONPTR abstractSection, LINEPTR abstractLine, BOOL addBeforeBlanks); CONST_STRPTR SectionCanonicalName(SECTIONPTR section); VOID SectionDump(SECTIONPTR section); VOID SectionWrite(SECTIONPTR section, BPTR file); CONST_STRPTR SectionSerialize(SECTIONPTR section); BOOL SectionHasName(SECTIONPTR section, CONST_STRPTR primary); CONST_STRPTR SectionGetRawSubsectionName(SECTIONPTR section); VOID SectionCollectLinesForVariable(SECTIONPTR section, CONST_STRPTR varKey, LineArray collecting); VOID SectionRemoveLinesForVariable(SECTIONPTR section, CONST_STRPTR varKey); VARIABLEPTR VariableCreate(CONST_STRPTR key, CONST_STRPTR rawValue); BOOL VariableHasKey(VARIABLEPTR variable, CONST_STRPTR varKey); CONST_STRPTR VariableGetRawValue(VARIABLEPTR variable); VOID VariableFree(VARIABLEPTR variable); CONST_STRPTR VariableSerialize(VARIABLEPTR variable); StringArray CompoundKeySplitKeyForVar(CONST_STRPTR key); StringArray CompoundKeySplitKeyCompletely(CONST_STRPTR key); #endif