rts_alloc Sınıfı
rts_alloc sınıf şablonu, bir dizi önbellek örneğini barındıran bir filtreyi açıklar ve derleme zamanında değil çalışma zamanında ayırma ve serbest bırakma için hangi örneğin kullanılacağını belirler.
Sözdizimi
template <class Cache>
class rts_alloc
Parametreler
Önbellek
Dizide yer alan önbellek örneklerinin türü. , veya cache_suballoc
olabilircache_chunklist
cache_freelist
.
Açıklamalar
Bu sınıf şablonu birden çok blok ayırıcı örneği tutar ve derleme zamanı yerine çalışma zamanında ayırma veya serbest bırakma için hangi örneğin kullanılacağını belirler. Yeniden bağlama derlemesi yapamayan derleyicilerle birlikte kullanılır.
Üye işlevleri
Üye işlevi | Açıklama |
---|---|
allocate | Bir bellek bloğu ayırır. |
Ayırması | Belirtilen sayıda nesneyi belirtilen konumdan başlayarak depolama alanından serbest bırakın. |
equals | Eşitlik için iki önbelleği karşılaştırır. |
Gereksinimler
Üst bilgi:<ayırıcılar>
Ad alanı: stdext
rts_alloc::allocate
Bir bellek bloğu ayırır.
void *allocate(std::size_t count);
Parametreler
count
Dizideki ayrılacak öğe sayısı.
Dönüş Değeri
Ayrılan nesnenin işaretçisi.
Açıklamalar
Üye işlevi, caches[_IDX].allocate(count)
dizinin _IDX
istenen blok boyutu sayısına göre belirlendiği veya sayı çok büyükse döndürüroperator new(count)
. cache
, önbellek nesnesini temsil eder.
rts_alloc::d eallocate
Belirtilen sayıda nesneyi belirtilen konumdan başlayarak depolama alanından serbest bırakın.
void deallocate(void* ptr, std::size_t count);
Parametreler
ptr
Depolama alanından serbest bırakılacak ilk nesnenin işaretçisi.
count
Depolama alanından serbest bırakılacak nesne sayısı.
Açıklamalar
Üye işlevi, dizinin _IDX
istenen blok boyutu sayısına göre belirlendiği öğesini çağırır caches[_IDX].deallocate(ptr, count)
veya sayı çok büyükse döndürüroperator delete(ptr)
.
rts_alloc::equals
Eşitlik için iki önbelleği karşılaştırır.
bool equals(const sync<_Cache>& _Other) const;
Parametreler
_Önbellek
Filtreyle ilişkilendirilmiş önbellek nesnesi.
_Diğer
Eşitlik için karşılaştıracak önbellek nesnesi.
Açıklamalar
true
sonucu caches[0].equals(other.caches[0])
ise; değilse, false
. caches
önbellek nesneleri dizisini temsil eder.