QCacheLa 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�eLa 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 membresQCache::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 ) constRetourne true si le cache contient un objet associ� avec la cl� key ; sinon, retourne false. Voir aussi take() et remove(). int QCache::count () constComme 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(). isEmptybool QCache::isEmpty () const Retourne true si le cache ne contient aucun objet, false sinon. Voir aussi size(). QList<Key> QCache::keys () constRetourne une liste des cl�s du cache. int QCache::maxCost () constRetourne le co�t maximal autoris� dans le cache. Voir aussi setMaxCost() et totalCost(). T * QCache::object ( const Key & key) constRetourne 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. 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 () constRetourne 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 () constRetourne 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) constRetourne 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. RemerciementsMerci � Thibaut Cuvelier pour la traduction et � Jacques Thery pour la relecture ! |
Publicit�
Best OfActualit�s les plus luesSemaine
Mois
Ann�e
![]()
![]() Le Qt Developer Network au hasard![]() Installation de PySide : binaires et compilationLe 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 utilesContact
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 ! |
Copyright © 2000-2012 - www.developpez.com