Object
|
+---DPropertyTree
The DPropertyTree class implements methods for storing and retrieving properties in a xml file. There are methods for adding, removing, importing and exporting properties.
#include <stdio.h>
#include "ofc/DPropertyTree.h"
#include "ofc/DFile.h"
#include "ofc/DText.h"
#include "ofc/DInt.h"
#include "ofc/DBool.h"
int main(int argc, char *argv[])
{
DPropertyTree *tree = [DPropertyTree new];
DProperty *group;
DFile *file = [DFile new];
DText *stringValue = [DText new]; // Property value destinations
DInt *intValue = [DInt new];
DBool *boolValue = [DBool new];
char name[] = "property.xml";
// Build the property tree
printf("Building the property tree.\n");
group = [tree group :nil :"Example"]; // First: Add a group to the root
[stringValue set :"ExampleString"]; // Set defaults to the values
[intValue set :10];
[boolValue set :YES];
// Second: Add the properties to the group
[tree property :group :"string" :stringValue];
[tree property :group :"int" :intValue ];
[tree property :group :"bool" :boolValue ];
// Write the defaults to a property file
printf("Saving property tree to \"%s\".\n", name);
if ([file open :name :"w"])
{
if (![tree write :file :name])
printf("Could not write \"%s\".\n", name);
[file close];
}
else
printf("Could \"%s\" not open for writing:%d\n", name, [file error]);
// Test: reset the properties
printf("Reset the properties.\n");
[stringValue set :""];
[intValue set :0 ];
[boolValue set :NO];
// Read the property file
printf("Read the properties back from \"%s\".\n", name);
if ([file open :name :"r"])
{
if (![tree read :file :name])
printf("Could not read \"%s\".\n", name);
[file close];
}
else
printf("Could \"%s\" not open for reading:%d\n", name, [file error]);
printf("Property \"string\":%s\n", [stringValue cstring]);
printf("Property \"int\" :%d\n", [intValue get]);
printf("Property \"bool\" :%d\n", [boolValue get]);
[tree free]; // Cleanup
[file free];
return 0;
}