aboutsummaryrefslogtreecommitdiff
path: root/python/wrapped_value.hh
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-06-09 21:14:17 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-06-09 21:14:17 +0100
commit5dbb7636dd880314d5b03379ebfd960b469ee6e9 (patch)
tree6a9a062efbf6aa03dcbdc92b6abf156108904ea2 /python/wrapped_value.hh
parentc9137efc3ef08b5c52f775dd853c1c675e80cc64 (diff)
downloadpaludis-5dbb7636dd880314d5b03379ebfd960b469ee6e9.tar.gz
paludis-5dbb7636dd880314d5b03379ebfd960b469ee6e9.tar.xz
Replace Validated with WrappedValue
Slightly cleaner code, and will allow us to pass in additional validation options.
Diffstat (limited to 'python/wrapped_value.hh')
-rw-r--r--python/wrapped_value.hh56
1 files changed, 56 insertions, 0 deletions
diff --git a/python/wrapped_value.hh b/python/wrapped_value.hh
new file mode 100644
index 000000000..b390b4e7a
--- /dev/null
+++ b/python/wrapped_value.hh
@@ -0,0 +1,56 @@
+/* vim: set sw=4 sts=4 et foldmethod=syntax : */
+
+/*
+ * Copyright (c) 2007 Piotr JaroszyƄski
+ * Copyright (c) 2010 Ciaran McCreesh
+ *
+ * This file is part of the Paludis package manager. Paludis is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU General
+ * Public License version 2, as published by the Free Software Foundation.
+ *
+ * Paludis 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
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef PALUDIS_GUARD_PYTHON_WRAPPED_VALUE_HH
+#define PALUDIS_GUARD_PYTHON_WRAPPED_VALUE_HH 1
+
+#include <python/paludis_python.hh>
+#include <paludis/util/wrapped_value.hh>
+
+namespace paludis
+{
+ namespace python
+ {
+ template <typename V_>
+ class class_wrapped_value;
+
+ template <typename Tag_>
+ class class_wrapped_value<WrappedValue<Tag_> > :
+ public boost::python::class_<WrappedValue<Tag_> >
+ {
+ public:
+ class_wrapped_value(const std::string & name,
+ const std::string & class_doc, const std::string & init_arg="string") :
+ boost::python::class_<WrappedValue<Tag_> >(
+ name.c_str(), class_doc.c_str(),
+ boost::python::init<const typename WrappedValueTraits<Tag_>::UnderlyingType &>(("__init__("+init_arg+")").c_str())
+ )
+ {
+ this->def(boost::python::self_ns::str(boost::python::self));
+ this->def("__cmp__",
+ &paludis::python::py_cmp<WrappedValue<Tag_> >);
+ boost::python::implicitly_convertible<typename WrappedValueTraits<Tag_>::UnderlyingType,
+ WrappedValue<Tag_> >();
+ }
+ };
+ }
+}
+
+#endif