1 /* 2 Copyright (C) 2005-2007 Feeling Software Inc. 3 Portions of the code are: 4 Copyright (C) 2005-2007 Sony Computer Entertainment America 5 6 MIT License: http://www.opensource.org/licenses/mit-license.php 7 */ 8 9 #include "StdAfx.h" 10 #include "FUTracker.h" 11 12 // 13 // FUTrackable 14 // 15 16 ImplementObjectType(FUTrackable); 17 FUTrackable()18FUTrackable::FUTrackable() 19 { 20 } 21 ~FUTrackable()22FUTrackable::~FUTrackable() 23 { 24 // Detach this object from its trackers. 25 Detach(); 26 } 27 Detach()28void FUTrackable::Detach() 29 { 30 for (FUTrackerList::iterator itT = trackers.begin(); itT != trackers.end(); ++itT) 31 { 32 (*itT)->OnObjectReleased(this); 33 } 34 trackers.clear(); 35 36 // Also detach from the owner. 37 FUObject::Detach(); 38 } 39 40 // Manage the list of trackers AddTracker(FUTracker * tracker)41void FUTrackable::AddTracker(FUTracker* tracker) 42 { 43 FUAssert(!trackers.contains(tracker), return); 44 trackers.push_back(tracker); 45 } RemoveTracker(FUTracker * tracker)46void FUTrackable::RemoveTracker(FUTracker* tracker) 47 { 48 //FUAssert(trackers.contains(tracker), return); 49 //trackers.erase(tracker); 50 FUAssert(trackers.erase(tracker),); 51 } HasTracker(const FUTracker * tracker) const52bool FUTrackable::HasTracker(const FUTracker* tracker) const 53 { 54 return trackers.contains(const_cast<FUTracker*>(tracker)); 55 } 56