summaryrefslogtreecommitdiffstats
path: root/tdesu/tdesud/repo.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdesu/tdesud/repo.h')
-rw-r--r--tdesu/tdesud/repo.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/tdesu/tdesud/repo.h b/tdesu/tdesud/repo.h
new file mode 100644
index 000000000..70027793f
--- /dev/null
+++ b/tdesu/tdesud/repo.h
@@ -0,0 +1,68 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <[email protected]>
+ */
+
+#ifndef __Repo_h_included__
+#define __Repo_h_included__
+
+
+#include <tqmap.h>
+#include <tqcstring.h>
+
+
+/**
+ * Used internally.
+ */
+struct Data_entry
+{
+ TQCString value;
+ TQCString 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 TQCString& key, Data_entry& data);
+
+ /** Delete a data element. */
+ int remove(const TQCString& key);
+
+ /** Delete all data entries having the given group. */
+ int removeGroup(const TQCString& group);
+
+ /** Delete all data entries based on key. */
+ int removeSpecialKey(const TQCString& key );
+
+ /** Checks for the existence of the specified group. */
+ int hasGroup(const TQCString &group) const;
+
+ /** Return a data value. */
+ TQCString find(const TQCString& key) const;
+
+ /** Returns the key values for the given group. */
+ TQCString findKeys(const TQCString& group, const char *sep= "-") const;
+
+private:
+
+ TQMap<TQCString,Data_entry> repo;
+ typedef TQMap<TQCString,Data_entry>::Iterator RepoIterator;
+ typedef TQMap<TQCString,Data_entry>::ConstIterator RepoCIterator;
+ unsigned head_time;
+};
+
+#endif