Alien-SmokeQt
view release on metacpan or search on metacpan
generator/type.h view on Meta::CPAN
virtual ~Typedef() {}
virtual bool isValid() const { return (!m_name.isEmpty() && m_type); }
void setType(Type* type) { m_type = type; }
Type* type() const { return m_type; }
Type resolve() const;
private:
Type* m_type;
};
class EnumMember;
class GENERATOR_EXPORT Enum : public BasicTypeDeclaration
{
public:
Enum(const QString& name = QString(), const QString nspace = QString(), Class* parent = 0)
: BasicTypeDeclaration(name, nspace, parent) {}
virtual ~Enum() {}
const QList<EnumMember>& members() const { return m_members; }
QList<EnumMember>& membersRef() { return m_members; }
void appendMember(const EnumMember& member) { m_members.append(member); }
private:
QList<EnumMember> m_members;
};
class GENERATOR_EXPORT Member
{
public:
enum Flag {
Virtual = 0x1,
PureVirtual = 0x2,
Static = 0x4,
DynamicDispatch = 0x8,
Explicit = 0x10,
};
Q_DECLARE_FLAGS(Flags, Flag)
Member(BasicTypeDeclaration* typeDecl = 0, const QString& name = QString(), Type* type = 0, Access access = Access_public)
: m_typeDecl(typeDecl), m_name(name), m_type(type), m_access(access) {}
virtual ~Member() {}
bool isValid() const { return (!m_name.isEmpty() && m_type && m_typeDecl); }
void setDeclaringType(Class* klass) { m_typeDecl = klass; }
BasicTypeDeclaration* declaringType() const { return m_typeDecl; }
void setName(const QString& name) { m_name = name; }
QString name() const { return m_name; }
void setType(Type* type) { m_type = type; }
Type* type() const { return m_type; }
void setAccess(Access access) { m_access = access; }
Access access() const { return m_access; }
void setFlag(Flag flag) { m_flags |= flag; }
void removeFlag(Flag flag) { m_flags &= ~flag; }
Flags flags() const { return m_flags; }
virtual QString toString(bool withAccess = false, bool withClass = false) const;
protected:
BasicTypeDeclaration* m_typeDecl;
QString m_name;
Type* m_type;
Access m_access;
Flags m_flags;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(Member::Flags)
class GENERATOR_EXPORT EnumMember : public Member
{
public:
EnumMember(Enum* e = 0, const QString& name = QString(), const QString& value = QString(), Type* type = 0)
: Member(e, name, type), m_value(value) {}
Enum* getEnum() const { return static_cast<Enum*>(m_typeDecl); }
void setValue(const QString& value) { m_value = value; }
QString value() const { return m_value; }
QString toString() const;
protected:
QString m_value;
};
class GENERATOR_EXPORT Parameter
{
public:
Parameter(const QString& name = QString(), Type* type = 0, const QString& defaultValue = QString())
: m_name(name), m_type(type), m_defaultValue(defaultValue) {}
virtual ~Parameter() {}
bool isValid() const { return m_type; }
void setName(const QString& name) { m_name = name; }
QString name() const { return m_name; }
void setType(Type* type) { m_type = type; }
Type* type() const { return m_type; }
bool isDefault() const { return !m_defaultValue.isEmpty(); }
QString defaultValue() const { return m_defaultValue; }
void setDefaultValue(const QString& value) { m_defaultValue = value; }
QString toString() const;
protected:
QString m_name;
Type* m_type;
QString m_defaultValue;
};
typedef QList<Parameter> ParameterList;
class GENERATOR_EXPORT Method : public Member
{
public:
Method(Class* klass = 0, const QString& name = QString(), Type* type = 0, Access access = Access_public, ParameterList params = ParameterList())
: Member(klass, name, type, access), m_params(params), m_isConstructor(false), m_isDestructor(false), m_isConst(false), m_is_accessor(false),
m_hasExceptionSpec(false), m_isSignal(false), m_isSlot(false) {}
virtual ~Method() {}
Class* getClass() const { return static_cast<Class*>(m_typeDecl); }
( run in 0.559 second using v1.01-cache-2.11-cpan-d7f47b0818f )