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

okteta

  • sources
  • kde-4.12
  • kdesdk
  • okteta
  • kasten
  • controllers
  • view
  • structures
  • script
safereference.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of the Okteta Kasten Framework, made within the KDE community.
3  *
4  * Copyright 2013 Alex Richardson <alex.richardson@gmx.de>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) version 3, or any
10  * later version accepted by the membership of KDE e.V. (or its
11  * successor approved by the membership of KDE e.V.), which shall
12  * act as a proxy defined in Section 6 of version 3 of the license.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
21  */
22 #include "safereference.h"
23 //#include "../datatypes/datainformation.h"
24 
25 #include <KDebug>
26 #include <cstdio>
27 
28 SafeReferenceHolder SafeReferenceHolder::instance = SafeReferenceHolder();
29 
30 void SafeReferenceHolder::invalidateAll(DataInformation* data)
31 {
32  //this is called from DataInformation destructor, don't do anything with data!
33  Container::iterator i = mRefs.find(data);
34  //qDebug() << "invalidating all references to" << data->name();
35  while (i != mRefs.end() && i.key() == data) {
36  //qDebug() << "invalidating" << i.value();
37  i.value()->invalidate();
38  ++i;
39  }
40  //remove all this items from the list
41  int removed = mRefs.remove(data);
42  safeRefDestroyCnt += removed;
43  //qDebug() << "removed" << removed << "items";
44 }
45 
46 SafeReferenceHolder::SafeReferenceHolder()
47  : safeRefDestroyCnt(0), safeRefRegisterCnt(0)
48 {
49 }
50 
51 SafeReferenceHolder::~SafeReferenceHolder()
52 {
53  if (mRefs.size() > 0)
54  kWarning() << mRefs.size() << "safe references were not removed";
55  printf("register count: %d, destroy count %d: ", safeRefRegisterCnt, safeRefDestroyCnt);
56 }
57 
58 
59 
DataInformation
Interface that must be implemented by all datatypes.
Definition: datainformation.h:67
safereference.h
SafeReferenceHolder
Definition: safereference.h:32
SafeReferenceHolder::instance
static SafeReferenceHolder instance
Definition: safereference.h:41
SafeReferenceHolder::invalidateAll
void invalidateAll(DataInformation *data)
sets all refereces to this object to null
Definition: safereference.cpp:30
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:09 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okteta

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

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

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