Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QCache

La classe QCache est un mod�le qui fournit un cache. Plus d'informations...

#include <QCache>

Voir la position dans l'arbre des classes.

Description d�taill�e

La classe QCache est un mod�le qui fournit un cache.

QCache<Cle, T> d�finit un cache qui stocke des objets de type T, associ�s � des cl�s de type Cle. Par exemple, voici la d�finition d'un cache qui stocke des objets de type Employe, associ�s � une cl� enti�re.

QCache<int, Employe> cache;

Voici la mani�re d'ins�rer un objet dans le cache.

Employe *employe = new Employe;
employe->setId(37);
employe->setName("Richard Schmit");
...
cache.insert(employe->id(), employe);

L'avantage de l'utilisation de cette classe par rapport aux structures bas�es sur des cl�s (comme QMap ou QHash) est que QCache prend possession automatiquement des objets qui y sont ins�r�s et les supprime pour faire de la place, si n�cessaire. � l'insertion d'un objet dans le cache, vous pouvez sp�cifier un co�t, ce qui devrait avoir un lien avec la quantit� de m�moire utilis�e par l'objet. Quand la somme des co�ts de tous les objets (totalCost()) exc�de la limite du cache (maxCost()), QCache commence � supprimer des objets dans le cache pour rester en dessous de la limite, en commen�ant par les objets les moins utilis�s.

Par d�faut, maxCost() vaut 100. Vous pouvez sp�cifier une valeur diff�rente dans le constructeur.

QCache<int, MyDataStructure> cache(5000);

� chaque appel de insert(), vous pouvez sp�cifier un co�t en troisi�me argument (apr�s la cl� et un pointeur vers l'objet � ins�rer). Apr�s l'appel, l'objet ins�r� appartiendra � QCache, qui pourra le supprimer � tout moment.

Pour regarder les objets dans le cache, utilisez object() ou operator[](). Cette fonction permet de retrouver un objet par sa cl� et retourne, soit un pointeur vers l'objet en cache (d�tenu par lui) soit 0.

Si vous voulez supprimer un objet du cache, appelez remove(). Ceci supprimera aussi l'objet. Si vous voulez supprimer un objet du cache sans qu'il soit supprim�, appelez take().

Voir aussi QPixmapCache, QHash et QMap.

Fonctions membres

QCache::QCache ( int maxCost = 100 )

Construit un cache dont le contenu ne d�passera jamais un co�t plus grand que maxCost.

QCache::~QCache ()

D�truit le cache, ainsi que tous les objets du cache.

void QCache::clear ()

Supprime tous les objets dans le cache.

Voir aussi remove() et take().

bool QCache::contains ( const Key & key ) const

Retourne true si le cache contient un objet associ� avec la cl� key ; sinon, retourne false.

Voir aussi take() et remove().

int QCache::count () const

Comme size().

bool QCache::insert ( const Key & key, T * object, int cost= 1 )

Ins�re object dans le cache avec la cl� key et le co�t cost. Tout objet ayant la m�me cl� dans le cache sera supprim�.

Apr�s cet appel, object est propri�t� de QCache et peut �tre supprim� � n'importe quel moment. En particulier, si cost est sup�rieur � maxCost(), l'objet sera supprim� imm�diatement.

Cette fonction retourne true si l'objet a �t� ins�r� dans le cache, sinon elle retourne false.

Voir aussi take() et remove().

isEmpty

bool QCache::isEmpty () const

Retourne true si le cache ne contient aucun objet, false sinon.

Voir aussi size().

QList<Key> QCache::keys () const

Retourne une liste des cl�s du cache.

int QCache::maxCost () const

Retourne le co�t maximal autoris� dans le cache.

Voir aussi setMaxCost() et totalCost().

T * QCache::object ( const Key & key) const

Retourne l'objet associ� � la cl� key ou 0 si la cl� n'existe pas dans le cache.

Attention : L'objet retourn� est poss�d� par QCache et peut �tre supprim� � n'importe quel moment.

Voir aussi take() et remove().

bool QCache::remove ( const Key & key)

Supprime l'objet associ� � la cl� key. Retourne true si l'objet a �t� trouv� dans le cache ; sinon, false.

Voir aussi take() et clear().

void QCache::setMaxCost ( int cost)

Autorise un co�t maximal de cost. Si le co�t total actuel est plus grand que cost nouvellement autoris�, des objets seront supprim�s automatiquement.

Voir aussi maxCost() et totalCost().

int QCache::size () const

Retourne le nombre d'objets dans le cache.

Voir aussi isEmpty().

T * QCache::take ( const Key & key)

Prend l'objet associ� � la cl� key hors du cache sans le supprimer. Retourne un pointeur vers cet objet ou 0 si la cl� n'existe pas dans le cache.

La propri�t� de l'objet retourn� est pass�e � l'appelant.

Voir aussi remove().

int QCache::totalCost () const

Retourne le co�t total des objets dans le cache.

Cette valeur est normalement inf�rieure � maxCost(), mais QCache fait une exception pour les classes implicitement partag�es de Qt. Si un objet cach� partage ses donn�es internes avec une autre instance, QCache peut garder l'objet, en rendant possiblement totalCost() plus grand que maxCost().

Voir aussi setMaxCost().

T * QCache::operator[] ( const Key & key) const

Retourne un objet associ� � la cl� key ou 0 si la cl� n'existe pas dans le cache.

Ceci �quivaut � object().

Attention : L'objet retourn� est poss�d� par QCache et peut �tre supprim� � tout moment.

Remerciements

Merci � Thibaut Cuvelier pour la traduction et � Jacques Thery pour la relecture !

Publicit�

Best Of

Actualit�s les plus lues

Semaine
Mois
Ann�e
  1. � Quelque chose ne va vraiment pas avec les d�veloppeurs "modernes" �, un d�veloppeur � "l'ancienne" critique la multiplication des biblioth�ques 94
  2. Apercevoir la troisi�me dimension ou l'utilisation multithread�e d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Pourquoi les programmeurs sont-ils moins pay�s que les gestionnaires de programmes ? Manquent-ils de pouvoir de n�gociation ? 45
  4. Les d�veloppeurs ignorent-ils trop les failles d�couvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  5. Les d�veloppeurs d�testent-ils les antivirus ? Un programmeur manifeste sa haine envers ces solutions de s�curit� 6
  6. Quelles nouveaut�s de C++11 Visual C++ doit-il rapidement int�grer ? Donnez-nous votre avis 10
  7. Qt Commercial : Digia organise un webinar gratuit le 27 mars sur la conception d'interfaces utilisateur et d'applications avec le framework 0
Page suivante

Le Qt Developer Network au hasard

Logo

Installation de PySide : binaires et compilation

Le Qt Developer Network est un r�seau de d�veloppeurs Qt anglophone, o� ils peuvent partager leur exp�rience sur le framework. Lire l'article.

Communaut�

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la r�daction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, �crite par Nokia Corporation and/or its subsidiary(-ies). Les �ventuels probl�mes r�sultant d'une mauvaise traduction ne sont pas imputables � Nokia. Qt 4.7
Copyright © 2012 Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'� 3 ans de prison et jusqu'� 300 000 E de dommages et int�r�ts. Cette page est d�pos�e � la SACD.
Vous avez d�nich� une erreur ? Un bug ? Une redirection cass�e ? Ou tout autre probl�me, quel qu'il soit ? Ou bien vous d�sirez participer � ce projet de traduction ? N'h�sitez pas � nous contacter ou par MP !
 
 
 
 
Partenaires

H�bergement Web