• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

knode

  • sources
  • kde-4.14
  • kdepim
  • knode
knmemorymanager.h
Go to the documentation of this file.
1 /*
2  KNode, the KDE newsreader
3  Copyright (c) 1999-2005 the KNode authors.
4  See file AUTHORS for details
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10  You should have received a copy of the GNU General Public License
11  along with this program; if not, write to the Free Software Foundation,
12  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US
13 */
14 
15 #ifndef KNMEMORYMANAGER_H
16 #define KNMEMORYMANAGER_H
17 
18 #include "knarticle.h"
19 #include "knarticlecollection.h"
20 
21 #include <QList>
22 
23 class KNArticleCollection;
24 
26 class KNMemoryManager {
27 
28  public:
29  KNMemoryManager();
30  ~KNMemoryManager();
31 
33  void updateCacheEntry( KNArticleCollection::Ptr c );
34  void removeCacheEntry( KNArticleCollection::Ptr c );
36  void prepareLoad( KNArticleCollection::Ptr c );
37 
39  void updateCacheEntry( KNArticle::Ptr a );
40  void removeCacheEntry( KNArticle::Ptr a );
41 
42  protected:
43 
45  class ArticleItem {
46  public:
47  explicit ArticleItem( KNArticle::Ptr a ) { art=a; sync(); }
48  ~ArticleItem() {}
49  void sync();
50 
51  KNArticle::Ptr art;
52  int storageSize;
53 
55  typedef QList<KNMemoryManager::ArticleItem*> List;
56  };
57 
59  class CollectionItem {
60  public:
61  explicit CollectionItem( KNArticleCollection::Ptr c )
62  {
63  col = c;
64  sync();
65  }
66  ~CollectionItem() { }
67  void sync();
68 
69  KNArticleCollection::Ptr col;
70  int storageSize;
71 
73  typedef QList<KNMemoryManager::CollectionItem*> List;
74  };
75 
76  CollectionItem * findCacheEntry( KNArticleCollection::Ptr c, bool take = false );
77  ArticleItem * findCacheEntry( KNArticle::Ptr a, bool take = false );
78  void checkMemoryUsageCollections();
79  void checkMemoryUsageArticles();
80 
81  CollectionItem::List mColList;
82  ArticleItem::List mArtList;
83  int c_ollCacheSize, a_rtCacheSize;
84 };
85 
86 
87 #endif
KNMemoryManager::mColList
CollectionItem::List mColList
Definition: knmemorymanager.h:81
KNMemoryManager::updateCacheEntry
void updateCacheEntry(KNArticleCollection::Ptr c)
Collection-Handling.
Definition: knmemorymanager.cpp:40
KNMemoryManager::CollectionItem::col
KNArticleCollection::Ptr col
Definition: knmemorymanager.h:69
KNMemoryManager::ArticleItem::~ArticleItem
~ArticleItem()
Definition: knmemorymanager.h:48
KNMemoryManager::ArticleItem
Article cache item.
Definition: knmemorymanager.h:45
KNMemoryManager::checkMemoryUsageCollections
void checkMemoryUsageCollections()
Definition: knmemorymanager.cpp:152
KNMemoryManager::~KNMemoryManager
~KNMemoryManager()
Definition: knmemorymanager.cpp:33
KNMemoryManager::CollectionItem::CollectionItem
CollectionItem(KNArticleCollection::Ptr c)
Definition: knmemorymanager.h:61
KNMemoryManager::CollectionItem::~CollectionItem
~CollectionItem()
Definition: knmemorymanager.h:66
KNMemoryManager::ArticleItem::sync
void sync()
Definition: knmemorymanager.cpp:206
KNMemoryManager::ArticleItem::art
KNArticle::Ptr art
Definition: knmemorymanager.h:51
KNMemoryManager::c_ollCacheSize
int c_ollCacheSize
Definition: knmemorymanager.h:83
KNMemoryManager::CollectionItem::storageSize
int storageSize
Definition: knmemorymanager.h:70
QList< KNMemoryManager::ArticleItem * >
KNMemoryManager::removeCacheEntry
void removeCacheEntry(KNArticleCollection::Ptr c)
Definition: knmemorymanager.cpp:61
knarticlecollection.h
KNMemoryManager::findCacheEntry
CollectionItem * findCacheEntry(KNArticleCollection::Ptr c, bool take=false)
Definition: knmemorymanager.cpp:122
KNMemoryManager::CollectionItem::List
QList< KNMemoryManager::CollectionItem * > List
List of collection cache items.
Definition: knmemorymanager.h:73
KNMemoryManager::CollectionItem
Group/folder cache item.
Definition: knmemorymanager.h:59
KNArticle::Ptr
boost::shared_ptr< KNArticle > Ptr
Shared pointer to a KNArticle. To be used instead of raw KNArticle*.
Definition: knarticle.h:41
KNMemoryManager::ArticleItem::ArticleItem
ArticleItem(KNArticle::Ptr a)
Definition: knmemorymanager.h:47
knarticle.h
KNArticleCollection::Ptr
boost::shared_ptr< KNArticleCollection > Ptr
Shared pointer to a KNArticle.
Definition: knarticlecollection.h:82
KNArticleCollection
Abstract base class for article collections, ie.
Definition: knarticlecollection.h:76
KNMemoryManager::checkMemoryUsageArticles
void checkMemoryUsageArticles()
Definition: knmemorymanager.cpp:182
KNMemoryManager::KNMemoryManager
KNMemoryManager()
Definition: knmemorymanager.cpp:27
KNMemoryManager::prepareLoad
void prepareLoad(KNArticleCollection::Ptr c)
try to free enough memory for this collection
Definition: knmemorymanager.cpp:76
KNMemoryManager::ArticleItem::List
QList< KNMemoryManager::ArticleItem * > List
List of article cache items.
Definition: knmemorymanager.h:55
KNMemoryManager::ArticleItem::storageSize
int storageSize
Definition: knmemorymanager.h:52
KNMemoryManager::CollectionItem::sync
void sync()
Definition: knmemorymanager.cpp:212
KNMemoryManager
Memory manager.
Definition: knmemorymanager.h:26
KNMemoryManager::a_rtCacheSize
int a_rtCacheSize
Definition: knmemorymanager.h:83
KNMemoryManager::mArtList
ArticleItem::List mArtList
Definition: knmemorymanager.h:82
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:34:18 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

knode

Skip menu "knode"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer
  • pimprint

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal