diff options
author | Renato Filho <renato.filho@openbossa.org> | 2010-06-15 19:27:54 -0300 |
---|---|---|
committer | Renato Filho <renato.filho@openbossa.org> | 2010-06-17 15:23:44 -0300 |
commit | 9214943397eb156d79c6b762460a28d458366995 (patch) | |
tree | ec9a586ba3b5ce7e25b55e5563f4fd5d74552a3d /libshiboken/typeresolver.cpp | |
parent | 8671479384870a0c6f819f333adde85e66213756 (diff) |
Create getType function on TypeResolver.
This function allow the programmer discovery if a type is Object or
Value type.
Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org>,
Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'libshiboken/typeresolver.cpp')
-rw-r--r-- | libshiboken/typeresolver.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libshiboken/typeresolver.cpp b/libshiboken/typeresolver.cpp index a88634a17..d2e042ba4 100644 --- a/libshiboken/typeresolver.cpp +++ b/libshiboken/typeresolver.cpp @@ -126,3 +126,25 @@ PyTypeObject* TypeResolver::pythonType() { return m_d->pyType; } + +TypeResolver::Type TypeResolver::getType(const char* name) +{ + std::string typeName(name); + int len = typeName.size() - 1; + if (len > 1) { + if (typeName[len] == '*') + typeName.erase(len, 1); + + TypeResolver *resolver = TypeResolver::get(typeName.c_str()); + if (resolver) + return TypeResolver::ValueType; + + typeName += '*'; + resolver = TypeResolver::get(typeName.c_str()); + if (resolver) + return TypeResolver::ObjectType; + } + + return TypeResolver::UnknownType; +} + |