aboutsummaryrefslogtreecommitdiffstats
path: root/abstractmetalang.h
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2010-02-26 20:18:05 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2010-02-26 20:24:28 -0300
commiteaec9c4a8ace3a91fccb12492d445fc939cb8bf5 (patch)
tree9acc3cbb6310f12b0775c668877793d09a97aa15 /abstractmetalang.h
parent4453b8a31a9e08b24d5f5679c990d66cbf123077 (diff)
AbstractMetaClasses now store a collection of external conversions.
Conversion operators that result in an AbstractMetaClass are added to a collection belonging to said meta class.
Diffstat (limited to 'abstractmetalang.h')
-rw-r--r--abstractmetalang.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/abstractmetalang.h b/abstractmetalang.h
index e3d6ad746..0e60926b5 100644
--- a/abstractmetalang.h
+++ b/abstractmetalang.h
@@ -1757,6 +1757,23 @@ public:
return m_greaterThanEqFunctions;
}
+ /// Returns a list of conversion operators for this class. The conversion operators are defined in other classes of the same module.
+ AbstractMetaFunctionList externalConversionOperators() const
+ {
+ return m_externalConversionOperators;
+ }
+ /// Adds a converter operator for this class.
+ void addExternalConversionOperator(AbstractMetaFunction* conversionOp)
+ {
+ if (!m_externalConversionOperators.contains(conversionOp))
+ m_externalConversionOperators.append(conversionOp);
+ }
+ /// Returns true if this class has any converter operators defined elsewhere.
+ bool hasExternalConversionOperators() const
+ {
+ return !m_externalConversionOperators.isEmpty();
+ }
+
void sortFunctions();
const AbstractMetaClass *templateBaseClass() const
@@ -1827,6 +1844,8 @@ private:
AbstractMetaFunctionList m_lessThanEqFunctions;
AbstractMetaFunctionList m_greaterThanEqFunctions;
+ AbstractMetaFunctionList m_externalConversionOperators;
+
QStringList m_baseClassNames;
QList<TypeEntry *> m_templateArgs;
ComplexTypeEntry *m_typeEntry;