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