aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-10-18 09:48:49 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:18:30 -0300
commitb35f28ca167a5b8280ef37566966701f540b8933 (patch)
tree8a866248be9a3448bc5648e2e36c153e89673c00 /libshiboken
parent01acb23113d4a22eae474bcb9be30e4d661b505e (diff)
New converters for C++ enum and qflags types.
Also removed a lot of unused and commented code.
Diffstat (limited to 'libshiboken')
-rw-r--r--libshiboken/sbkenum.cpp12
-rw-r--r--libshiboken/sbkenum.h6
2 files changed, 18 insertions, 0 deletions
diff --git a/libshiboken/sbkenum.cpp b/libshiboken/sbkenum.cpp
index 39ffb34..c2f6ce0 100644
--- a/libshiboken/sbkenum.cpp
+++ b/libshiboken/sbkenum.cpp
@@ -550,6 +550,18 @@ long int getValue(PyObject* enumItem)
return reinterpret_cast<SbkEnumObject*>(enumItem)->ob_value;
}
+void setTypeConverter(PyTypeObject* enumType, SbkConverter* converter)
+{
+ //reinterpret_cast<SbkEnumType*>(enumType)->converter = converter;
+ SBK_CONVERTER(enumType) = converter;
+}
+
+SbkConverter* getTypeConverter(PyTypeObject* enumType)
+{
+ //return reinterpret_cast<SbkEnumType*>(enumType)->converter;
+ return SBK_CONVERTER(enumType);
+}
+
} // namespace Enum
DeclaredEnumTypes& DeclaredEnumTypes::instance()
diff --git a/libshiboken/sbkenum.h b/libshiboken/sbkenum.h
index afe9141..b0ff269 100644
--- a/libshiboken/sbkenum.h
+++ b/libshiboken/sbkenum.h
@@ -31,6 +31,7 @@ extern "C"
extern LIBSHIBOKEN_API PyTypeObject SbkEnumType_Type;
struct SbkObjectType;
+struct SbkConverter;
} // extern "C"
@@ -88,6 +89,11 @@ namespace Enum
LIBSHIBOKEN_API long getValue(PyObject* enumItem);
LIBSHIBOKEN_API PyObject* getEnumItemFromValue(PyTypeObject* enumType, long itemValue);
+
+ /// Sets the enum's type converter.
+ LIBSHIBOKEN_API void setTypeConverter(PyTypeObject* enumType, SbkConverter* converter);
+ /// Returns the converter assigned to the enum \p type.
+ LIBSHIBOKEN_API SbkConverter* getTypeConverter(PyTypeObject* enumType);
}
} // namespace Shiboken