/**********************************
 * Autogenerated -- do not modify *
 **********************************/

/* Must be before the include guards */
#ifdef UA_ENABLE_AMALGAMATION
# include "open62541.h"
#else
# include <open62541/types.h>
#endif

#ifndef TYPES_QTOPCUATESTMODEL_GENERATED_H_
#define TYPES_QTOPCUATESTMODEL_GENERATED_H_


_UA_BEGIN_DECLS

/**
 * Every type is assigned an index in an array containing the type descriptions.
 * These descriptions are used during type handling (copying, deletion,
 * binary encoding, ...). */
#define UA_TYPES_QTOPCUATESTMODEL_COUNT 8
extern UA_EXPORT UA_DataType UA_TYPES_QTOPCUATESTMODEL[UA_TYPES_QTOPCUATESTMODEL_COUNT];

/* QtInnerTestStructType */
typedef struct {
    UA_Double doubleSubtypeMember;
} UA_QtInnerTestStructType;

#define UA_TYPES_QTOPCUATESTMODEL_QTINNERTESTSTRUCTTYPE 0

/* QtRecursiveTestStruct */
typedef struct UA_QtRecursiveTestStruct UA_QtRecursiveTestStruct;
struct UA_QtRecursiveTestStruct {
    UA_String stringMember;
    size_t recursiveArrayMemberSize;
    UA_QtRecursiveTestStruct *recursiveArrayMember;
};

#define UA_TYPES_QTOPCUATESTMODEL_QTRECURSIVETESTSTRUCT 1

/* QtStructWithOptionalFieldType */
typedef struct {
    UA_Double mandatoryMember;
    UA_Double *optionalMember;
} UA_QtStructWithOptionalFieldType;

#define UA_TYPES_QTOPCUATESTMODEL_QTSTRUCTWITHOPTIONALFIELDTYPE 2

/* QtTestStructWithDataValue */
typedef struct {
    UA_DataValue dataValueMember;
    UA_Variant variantMember;
} UA_QtTestStructWithDataValue;

#define UA_TYPES_QTOPCUATESTMODEL_QTTESTSTRUCTWITHDATAVALUE 3

/* QtTestStructWithDiagnosticInfo */
typedef struct {
    UA_DiagnosticInfo diagnosticInfoMember;
    size_t diagnosticInfoArrayMemberSize;
    UA_DiagnosticInfo *diagnosticInfoArrayMember;
} UA_QtTestStructWithDiagnosticInfo;

#define UA_TYPES_QTOPCUATESTMODEL_QTTESTSTRUCTWITHDIAGNOSTICINFO 4

/* QtTestUnionType */
typedef enum {
    UA_QTTESTUNIONTYPESWITCH_NONE = 0,
    UA_QTTESTUNIONTYPESWITCH_MEMBER1 = 1,
    UA_QTTESTUNIONTYPESWITCH_MEMBER2 = 2,
    __UA_QTTESTUNIONTYPESWITCH_FORCE32BIT = 0x7fffffff
} UA_QtTestUnionTypeSwitch;

UA_STATIC_ASSERT(sizeof(UA_QtTestUnionTypeSwitch) == sizeof(UA_Int32), enum_must_be_32bit);

typedef struct {
    UA_QtTestUnionTypeSwitch switchField;
    union {
        UA_Int64 member1;
        UA_QtInnerTestStructType member2;
    } fields;
} UA_QtTestUnionType;

#define UA_TYPES_QTOPCUATESTMODEL_QTTESTUNIONTYPE 5

/* QtTestEnumeration */
typedef enum {
    UA_QTTESTENUMERATION_UNKNOWN = 0,
    UA_QTTESTENUMERATION_FIRSTOPTION = 1,
    UA_QTTESTENUMERATION_SECONDOPTION = 2,
    UA_QTTESTENUMERATION_THIRDOPTION = 3,
    __UA_QTTESTENUMERATION_FORCE32BIT = 0x7fffffff
} UA_QtTestEnumeration;

UA_STATIC_ASSERT(sizeof(UA_QtTestEnumeration) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_QTOPCUATESTMODEL_QTTESTENUMERATION 6

/* QtTestStructType */
typedef struct {
    UA_String stringMember;
    UA_LocalizedText localizedTextMember;
    UA_QualifiedName qualifiedNameMember;
    size_t int64ArrayMemberSize;
    UA_Int64 *int64ArrayMember;
    UA_QtTestEnumeration enumMember;
    UA_QtInnerTestStructType nestedStructMember;
    size_t nestedStructArrayMemberSize;
    UA_QtInnerTestStructType *nestedStructArrayMember;
} UA_QtTestStructType;

#define UA_TYPES_QTOPCUATESTMODEL_QTTESTSTRUCTTYPE 7


_UA_END_DECLS

#endif /* TYPES_QTOPCUATESTMODEL_GENERATED_H_ */
