Eneboo - Documentación para desarrolladores
src/hoard/src/heaplayers/experimental/counteddictionary.h
Ir a la documentación de este archivo.
00001 #ifndef _COUNTEDDICTIONARY_H_
00002 #define _COUNTEDDICTIONARY_H_
00003 
00004 template <class Dict>
00005 class CountedDictionary : public Dict {
00006 public:
00007   class Entry : public Dict::Entry {};
00008 
00009   __forceinline CountedDictionary (void)
00010     : num (0)
00011   {}
00012 
00013   __forceinline void clear (void) {
00014     num = 0;
00015     Dict::clear();
00016   }
00017 
00018   __forceinline Entry * get (void) {
00019     Entry * e = (Entry *) Dict::get();
00020     if (e) {
00021       --num;
00022     }
00023     return e;
00024   }
00025 
00026   __forceinline Entry * remove (void) {
00027     Entry * e = (Entry *) Dict::remove();
00028     if (e) {
00029       --num;
00030     }
00031     return e;
00032   }
00033 
00034   __forceinline void insert (Entry * e) {
00035     Dict::insert (e);
00036     ++num;
00037   }
00038 
00039   __forceinline int getNumber (void) const {
00040     return num;
00041   }
00042 
00043 private:
00044   int num;
00045 };
00046 
00047 #endif
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'