00001 /* -*- C++ -*- */ 00002 00003 /* COPYRIGHT 00004 * 00005 * This file is part of the Visual Effects Engine - VEE 00006 * 00007 * Read the "VEE-LICENSE" file for the license. 00008 * 00009 * Authors & Copyright: 00010 * 00011 * Tommi Ilmonen, Tuukka Heikura, Marko Myllymaa and 00012 * Janne Kontkanen 2001-2004 00013 * 00014 * Additional copyrights: Tekes 2003-2004 00015 * 00016 * firstname.lastname@hut.fi 00017 * 00018 */ 00019 00020 #ifndef VEE_GARBAGE_HPP 00021 #define VEE_GARBAGE_HPP 00022 00023 #include <set> 00024 00025 class VEE_GarbageBin 00026 { 00027 public: 00028 VEE_GarbageBin() {} 00029 00030 void add(void *item) { m_items.insert(item); } 00031 void clear() { m_items.clear(); } 00032 00033 typedef std::set<void *>::iterator iterator; 00034 00035 iterator begin() { return m_items.begin(); } 00036 iterator end() { return m_items.end(); } 00037 00038 std::set<void *> m_items; 00039 00040 }; 00041 00042 class VEE_Garbage 00043 { 00044 public: 00045 VEE_Garbage(VEE_GarbageBin *bin = 0) : m_bin(bin) {} 00046 virtual ~VEE_Garbage(); 00047 00048 virtual void setGarbageBin(VEE_GarbageBin *bin); 00049 00050 private: 00051 VEE_GarbageBin * m_bin; 00052 }; 00053 00054 #endif