1// AttrDirInfo.cpp
2
3#include "AttrDirInfo.h"
4
5// ShowAround
6void
7AttributeInfo::ShowAround(RequestMemberVisitor* visitor)
8{
9	visitor->Visit(this, name);
10	visitor->Visit(this, info.type);
11	visitor->Visit(this, info.size);
12	visitor->Visit(this, data);
13}
14
15
16// #pragma mark -
17
18// constructor
19AttrDirInfo::AttrDirInfo()
20	: revision(-1),
21	  isValid(false)
22{
23}
24
25// ShowAround
26void
27AttrDirInfo::ShowAround(RequestMemberVisitor* visitor)
28{
29	visitor->Visit(this, isValid);
30	if (isValid) {
31		visitor->Visit(this, revision);
32		visitor->Visit(this, attributeInfos);
33	}
34}
35
36// Flatten
37status_t
38AttrDirInfo::Flatten(RequestFlattener* flattener)
39{
40	flattener->WriteBool(isValid);
41	if (isValid) {
42		flattener->Visit(this, revision);
43		flattener->Visit(this, attributeInfos);
44	}
45
46	return flattener->GetStatus();
47}
48
49// Unflatten
50status_t
51AttrDirInfo::Unflatten(RequestUnflattener* unflattener)
52{
53	if (unflattener->ReadBool(isValid) == B_OK && isValid) {
54		unflattener->Visit(this, revision);
55		unflattener->Visit(this, attributeInfos);
56	}
57
58	return unflattener->GetStatus();
59}
60
61