summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-10-03 11:36:52 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2011-10-03 11:36:52 -0300
commit44138ada64eb6f9175ea7bb8c05e38f9079fbf8b (patch)
tree3b97e0a7d97f0f23ad965e01879b656cf4478167
parentc0d2e563a1aeaf8b32e947248bb5453edd7d2263 (diff)
downloadgeneratorrunner-44138ada64eb6f9175ea7bb8c05e38f9079fbf8b.tar.gz
generatorrunner-44138ada64eb6f9175ea7bb8c05e38f9079fbf8b.tar.xz
generatorrunner-44138ada64eb6f9175ea7bb8c05e38f9079fbf8b.zip
Added a couple of convenience methods to Generator: isCString and isVoidPointer.
-rw-r--r--generator.cpp14
-rw-r--r--generator.h5
2 files changed, 19 insertions, 0 deletions
diff --git a/generator.cpp b/generator.cpp
index 71964b4..60ff21d 100644
--- a/generator.cpp
+++ b/generator.cpp
@@ -384,6 +384,20 @@ bool Generator::isPointer(const AbstractMetaType* type)
|| type->isValuePointer();
}
+bool Generator::isCString(const AbstractMetaType* type)
+{
+ return type->isNativePointer()
+ && type->indirections() == 1
+ && type->name() == "char";
+}
+
+bool Generator::isVoidPointer(const AbstractMetaType* type)
+{
+ return type->isNativePointer()
+ && type->indirections() == 1
+ && type->name() == "void";
+}
+
QString Generator::minimalConstructor(const AbstractMetaType* type) const
{
if (!type || (type->isReference() && Generator::isObjectType(type)))
diff --git a/generator.h b/generator.h
index 14b1fef..484327d 100644
--- a/generator.h
+++ b/generator.h
@@ -237,6 +237,11 @@ public:
static bool isObjectType(const AbstractMetaType* metaType);
static bool isObjectType(const AbstractMetaClass* metaClass);
+ /// Returns true if the type is a C string (const char*).
+ static bool isCString(const AbstractMetaType* type);
+ /// Returns true if the type is a void pointer.
+ static bool isVoidPointer(const AbstractMetaType* type);
+
/**
* Tries to build a minimal constructor for the type.
* It will check first for a user defined default constructor.