summaryrefslogtreecommitdiff
path: root/libs/util/src/ManagedVector.cc
diff options
context:
space:
mode:
authorgeronimo <geronimo013@gmx.de>2012-07-13 04:26:40 +0200
committergeronimo <geronimo013@gmx.de>2012-07-13 04:26:40 +0200
commit2d48ae784ea6828e8626c32c848f64232d8f35c0 (patch)
treefab114b03e91125783a778b835dd1913b039cebe /libs/util/src/ManagedVector.cc
downloadcmp-2d48ae784ea6828e8626c32c848f64232d8f35c0.tar.gz
cmp-2d48ae784ea6828e8626c32c848f64232d8f35c0.tar.bz2
initial import
Diffstat (limited to 'libs/util/src/ManagedVector.cc')
-rw-r--r--libs/util/src/ManagedVector.cc51
1 files changed, 51 insertions, 0 deletions
diff --git a/libs/util/src/ManagedVector.cc b/libs/util/src/ManagedVector.cc
new file mode 100644
index 0000000..7a67bfb
--- /dev/null
+++ b/libs/util/src/ManagedVector.cc
@@ -0,0 +1,51 @@
+/**
+ * ======================== legal notice ======================
+ *
+ * File: ManagedVector.cc
+ * Created: 7. Juli 2012, 08:30
+ * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a>
+ * Project: libutil - base classes used by other libraries
+ *
+ * CMP - compound media player
+ *
+ * is a client/server mediaplayer intended to play any media from any workstation
+ * without the need to export or mount shares. cmps is an easy to use backend
+ * with a (ready to use) HTML-interface. Additionally the backend supports
+ * authentication via HTTP-digest authorization.
+ * cmpc is a client with vdr-like osd-menues.
+ *
+ * Copyright (c) 2012 Reinhard Mantey, some rights reserved!
+ * published under Creative Commons by-sa
+ * For details see http://creativecommons.org/licenses/by-sa/3.0/
+ *
+ * The cmp project's homepage is at http://projects.vdr-developer.org/projects/cmp
+ *
+ * --------------------------------------------------------------
+ */
+#include <ManagedVector.h>
+#include <vector>
+#include <algorithm>
+
+cManagedVector::cManagedVector(void (*cbFreeElem)(void *))
+ : freeCallback(cbFreeElem)
+{
+}
+
+cManagedVector::~cManagedVector()
+{
+ clear();
+}
+
+void cManagedVector::clear()
+{
+ for (size_t i=0; i < internalVector.size(); ++i) {
+ freeCallback(internalVector[i]);
+ }
+ internalVector.clear();
+}
+
+void cManagedVector::sort(bool (*fnSort)(void *a, void *b))
+{
+ if (fnSort) std::sort(internalVector.begin(), internalVector.end(), fnSort);
+ else std::sort(internalVector.begin(), internalVector.end());
+} \ No newline at end of file