/* This file is autogenerated. DO NOT CHANGE. All changes will be lost */

#ifndef QPROTOBUF_ANY_H
#define QPROTOBUF_ANY_H

#include <QtProtobuf/qprotobufmessage.h>
#include <QtProtobuf/qprotobufobject.h>
#include <QtProtobuf/qprotobuflazymessagepointer.h>

#include <QtCore/qbytearray.h>
#include <QtCore/qstring.h>
#include <QtProtobufWellKnownTypes/qprotobufanysupport.h>

#include <QtCore/qmetatype.h>
#include <QtCore/qlist.h>
#include <QtCore/qshareddata.h>

#include <memory>

#if defined(QT_SHARED) || !defined(QT_STATIC)
#  if defined(QT_BUILD_PROTOBUFWELLKNOWNTYPES_LIB)
#    define QPB_PROTOBUFWELLKNOWNTYPES_EXPORT Q_DECL_EXPORT
#  else
#    define QPB_PROTOBUFWELLKNOWNTYPES_EXPORT Q_DECL_IMPORT
#  endif
#else
#  define QPB_PROTOBUFWELLKNOWNTYPES_EXPORT
#endif

namespace google::protobuf {
class Any;
using AnyRepeated = QList<Any>;

class Any_QtProtobufData;
class QPB_PROTOBUFWELLKNOWNTYPES_EXPORT Any : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(Any)
    Q_PROPERTY(QString typeUrl READ typeUrl WRITE setTypeUrl SCRIPTABLE true)
    Q_PROPERTY(QByteArray value READ value WRITE setValue SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TypeUrlProtoFieldNumber = 1,
        ValueProtoFieldNumber = 2,
    };
    Q_ENUM(QtProtobufFieldEnum)

    Any();
    ~Any();
    Any(const Any &other);
    Any &operator =(const Any &other);
    Any(Any &&other) noexcept;
    Any &operator =(Any &&other) noexcept;
    bool operator ==(const Any &other) const;
    bool operator !=(const Any &other) const;

    QString typeUrl() const;

    QByteArray value() const;
    void setTypeUrl(const QString &typeUrl);
    void setValue(const QByteArray &value);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<Any_QtProtobufData> dptr;
};
} // namespace google::protobuf

Q_DECLARE_METATYPE(google::protobuf::Any)
#endif // QPROTOBUF_ANY_H
