1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5
6#include "LocatableEntry.h"
7
8#include "AutoLocker.h"
9
10#include "LocatableDirectory.h"
11
12
13// #pragma mark - LocatableEntryOwner
14
15
16LocatableEntryOwner::~LocatableEntryOwner()
17{
18}
19
20
21// #pragma mark - LocatableEntry
22
23
24LocatableEntry::LocatableEntry(LocatableEntryOwner* owner,
25	LocatableDirectory* parent)
26	:
27	fOwner(owner),
28	fParent(parent),
29	fState(LOCATABLE_ENTRY_UNLOCATED)
30{
31	if (fParent != NULL)
32		fParent->AcquireReference();
33}
34
35
36LocatableEntry::~LocatableEntry()
37{
38	if (fParent != NULL)
39		fParent->ReleaseReference();
40}
41
42
43void
44LocatableEntry::LastReferenceReleased()
45{
46	fOwner->LocatableEntryUnused(this);
47	delete this;
48}
49