1// AllocationInfo.h
2
3#ifndef ALLOCATION_INFO_H
4#define ALLOCATION_INFO_H
5
6#include <SupportDefs.h>
7
8class AllocationInfo {
9public:
10	AllocationInfo();
11	~AllocationInfo();
12
13	void AddNodeTableAllocation(size_t arraySize, size_t vectorSize,
14								size_t elementSize, size_t elementCount);
15	void AddDirectoryEntryTableAllocation(size_t arraySize, size_t vectorSize,
16										  size_t elementSize,
17										  size_t elementCount);
18	void AddNodeAttributeTableAllocation(size_t arraySize, size_t vectorSize,
19										 size_t elementSize,
20										 size_t elementCount);
21
22	void AddAttributeAllocation(size_t size);
23	void AddDirectoryAllocation();
24	void AddEntryAllocation();
25	void AddFileAllocation(size_t size);
26	void AddSymLinkAllocation(size_t size);
27
28	void AddAreaAllocation(size_t size, size_t count = 1);
29	void AddBlockAllocation(size_t size);
30	void AddListAllocation(size_t capacity, size_t elementSize);
31	void AddOtherAllocation(size_t size, size_t count = 1);
32	void AddStringAllocation(size_t size);
33
34	void Dump() const;
35
36private:
37	size_t	fNodeTableArraySize;
38	size_t	fNodeTableVectorSize;
39	size_t	fNodeTableElementCount;
40	size_t	fDirectoryEntryTableArraySize;
41	size_t	fDirectoryEntryTableVectorSize;
42	size_t	fDirectoryEntryTableElementCount;
43	size_t	fNodeAttributeTableArraySize;
44	size_t	fNodeAttributeTableVectorSize;
45	size_t	fNodeAttributeTableElementCount;
46
47	size_t	fAttributeCount;
48	size_t	fAttributeSize;
49	size_t	fDirectoryCount;
50	size_t	fEntryCount;
51	size_t	fFileCount;
52	size_t	fFileSize;
53	size_t	fSymLinkCount;
54	size_t	fSymLinkSize;
55
56	size_t	fAreaCount;
57	size_t	fAreaSize;
58	size_t	fBlockCount;
59	size_t	fBlockSize;
60	size_t	fListCount;
61	size_t	fListSize;
62	size_t	fOtherCount;
63	size_t	fOtherSize;
64	size_t	fStringCount;
65	size_t	fStringSize;
66};
67
68#endif	// ALLOCATION_INFO_H
69