Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include "stdinc.h"
2
#include "dat.h"
3
#include "fns.h"
4
#include "xml.h"
5
 
6
void xmlarena(Hio *hout, Arena *s, char *tag, int indent){
7
	xmlindent(hout, indent);
8
	hprint(hout, "<%s", tag);
9
	xmlaname(hout, s->name, "name");
10
	xmlu32int(hout, s->version, "version");
11
	xmlaname(hout, s->part->name, "partition");
12
	xmlu32int(hout, s->blocksize, "blocksize");
13
	xmlu64int(hout, s->base, "start");
14
	xmlu64int(hout, s->base+2*s->blocksize, "stop");
15
	xmlu32int(hout, s->ctime, "created");
16
	xmlu32int(hout, s->wtime, "modified");
17
	xmlsealed(hout, s->memstats.sealed, "sealed");
18
	xmlscore(hout, s->score, "score");
19
	xmlu32int(hout, s->memstats.clumps, "clumps");
20
	xmlu32int(hout, s->memstats.cclumps, "compressedclumps");
21
	xmlu64int(hout, s->memstats.uncsize, "data");
22
	xmlu64int(hout, s->memstats.used - s->memstats.clumps * ClumpSize, "compresseddata");
23
	xmlu64int(hout, s->memstats.used + s->memstats.clumps * ClumpInfoSize, "storage");
24
	hprint(hout, "/>\n");
25
}
26
 
27
void xmlindex(Hio *hout, Index *s, char *tag, int indent){
28
	int i;
29
	xmlindent(hout, indent);
30
	hprint(hout, "<%s", tag);
31
	xmlaname(hout, s->name, "name");
32
	xmlu32int(hout, s->version, "version");
33
	xmlu32int(hout, s->blocksize, "blocksize");
34
	xmlu32int(hout, s->tabsize, "tabsize");
35
	xmlu32int(hout, s->buckets, "buckets");
36
	xmlu32int(hout, s->div, "buckdiv");
37
	hprint(hout, ">\n");
38
	xmlindent(hout, indent + 1);
39
	hprint(hout, "<sects>\n");
40
	for(i = 0; i < s->nsects; i++)
41
		xmlamap(hout, &s->smap[i], "sect", indent + 2);
42
	xmlindent(hout, indent + 1);
43
	hprint(hout, "</sects>\n");
44
	xmlindent(hout, indent + 1);
45
	hprint(hout, "<amaps>\n");
46
	for(i = 0; i < s->narenas; i++)
47
		xmlamap(hout, &s->amap[i], "amap", indent + 2);
48
	xmlindent(hout, indent + 1);
49
	hprint(hout, "</amaps>\n");
50
	xmlindent(hout, indent + 1);
51
	hprint(hout, "<arenas>\n");
52
	for(i = 0; i < s->narenas; i++)
53
		xmlarena(hout, s->arenas[i], "arena", indent + 2);
54
	xmlindent(hout, indent + 1);
55
	hprint(hout, "</arenas>\n");
56
	xmlindent(hout, indent);
57
	hprint(hout, "</%s>\n", tag);
58
}
59
 
60
void xmlamap(Hio *hout, AMap *s, char *tag, int indent){
61
	xmlindent(hout, indent);
62
	hprint(hout, "<%s", tag);
63
	xmlaname(hout, s->name, "name");
64
	xmlu64int(hout, s->start, "start");
65
	xmlu64int(hout, s->stop, "stop");
66
	hprint(hout, "/>\n");
67
}
68