From 4aed2c8219774f5d797760606b8489a92ddc5163 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kdesu/kdesud/repo.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 kdesu/kdesud/repo.h (limited to 'kdesu/kdesud/repo.h') diff --git a/kdesu/kdesud/repo.h b/kdesu/kdesud/repo.h new file mode 100644 index 000000000..fde8cd250 --- /dev/null +++ b/kdesu/kdesud/repo.h @@ -0,0 +1,68 @@ +/* vi: ts=8 sts=4 sw=4 + * + * This file is part of the KDE project, module kdesu. + * Copyright (C) 1999,2000 Geert Jansen + */ + +#ifndef __Repo_h_included__ +#define __Repo_h_included__ + + +#include +#include + + +/** + * Used internally. + */ +struct Data_entry +{ + QCString value; + QCString group; + unsigned int timeout; +}; + + +/** + * String repository. + * + * This class implements a string repository with expiration. + */ +class Repository { +public: + Repository(); + ~Repository(); + + /** Remove data elements which are expired. */ + int expire(); + + /** Add a data element */ + void add(const QCString& key, Data_entry& data); + + /** Delete a data element. */ + int remove(const QCString& key); + + /** Delete all data entries having the given group. */ + int removeGroup(const QCString& group); + + /** Delete all data entries based on key. */ + int removeSpecialKey(const QCString& key ); + + /** Checks for the existence of the specified group. */ + int hasGroup(const QCString &group) const; + + /** Return a data value. */ + QCString find(const QCString& key) const; + + /** Returns the key values for the given group. */ + QCString findKeys(const QCString& group, const char *sep= "-") const; + +private: + + QMap repo; + typedef QMap::Iterator RepoIterator; + typedef QMap::ConstIterator RepoCIterator; + unsigned head_time; +}; + +#endif -- cgit v1.2.1