summaryrefslogtreecommitdiff
path: root/accessors.h
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2010-01-04 09:12:12 +0100
committerChristian Gmeiner <christian.gmeiner@gmail.com>2010-01-04 09:12:12 +0100
commit5aeb6af61490df93ff8be39cf62fe7782fe4674b (patch)
treedf3572c4b245b3b831758e281a927fb8f11a2264 /accessors.h
parent3c5629fad2272c1ebe2343dfc233afb50d38292a (diff)
downloadvdr-plugin-dxr3-5aeb6af61490df93ff8be39cf62fe7782fe4674b.tar.gz
vdr-plugin-dxr3-5aeb6af61490df93ff8be39cf62fe7782fe4674b.tar.bz2
rework cSettings class to use a new way for setters and getters
The basic idea behind this commit is to get rid of those bad looking getters and setters, where we have no logic used by them.
Diffstat (limited to 'accessors.h')
-rw-r--r--accessors.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/accessors.h b/accessors.h
new file mode 100644
index 0000000..708b266
--- /dev/null
+++ b/accessors.h
@@ -0,0 +1,47 @@
+/*
+ * _ _ _ _ _____
+ * __ ____| |_ __ _ __ | |_ _ __ _(_)_ __ __| |_ ___ _|___ /
+ * \ \ / / _` | '__|____| '_ \| | | | |/ _` | | '_ \ _____ / _` \ \/ / '__||_ \
+ * \ V / (_| | | |_____| |_) | | |_| | (_| | | | | |_____| (_| |> <| | ___) |
+ * \_/ \__,_|_| | .__/|_|\__,_|\__, |_|_| |_| \__,_/_/\_\_| |____/
+ * |_| |___/
+ *
+ * Copyright (C) 2010 Christian Gmeiner
+ *
+ * This file is part of vdr-plugin-dxr3.
+ *
+ * vdr-plugin-dxr3 is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2.
+ *
+ * vdr-plugin-dxr3 is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with dxr3-plugin. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef ACCESSORS_H
+#define ACCESSORS_H
+
+// based on a very good idea from
+// * http://www.kirit.com/C%2B%2B%20killed%20the%20get%20%26%20set%20accessors
+// * http://www.kirit.com/C%2B%2B%20killed%20the%20get%20%26%20set%20accessors/A%20simple%20meta-accessor
+
+template<typename T>
+class Accessors {
+public:
+ Accessors() {}
+ explicit Accessors(const T &t) : m_t(t) {}
+
+ const T &operator() () const { return m_t; }
+ T operator() (const T &t) { return m_t = t; }
+
+private:
+ T m_t;
+};
+
+#endif /*ACCESSORS_H*/