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