xref: /haiku/src/add-ons/kernel/file_systems/netfs/shared/AttrDirInfo.cpp (revision c90684742e7361651849be4116d0e5de3a817194)
1 // AttrDirInfo.cpp
2 
3 #include "AttrDirInfo.h"
4 
5 // ShowAround
6 void
7 AttributeInfo::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
19 AttrDirInfo::AttrDirInfo()
20 	: revision(-1),
21 	  isValid(false)
22 {
23 }
24 
25 // ShowAround
26 void
27 AttrDirInfo::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
37 status_t
38 AttrDirInfo::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
50 status_t
51 AttrDirInfo::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