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

#ifndef Q_PROTOBUF_testservice_H
#define Q_PROTOBUF_testservice_H

#include <QtProtobuf/QProtobufMessage>
#include <QtCore/QMetaType>
#include <QtCore/QList>

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

#include <memory>

#include <QByteArray>
#include <QString>


namespace qtgrpc::tests {
class SimpleStringMessage;
using SimpleStringMessageRepeated = QList<std::shared_ptr<SimpleStringMessage>>;
class SimpleIntMessage;
using SimpleIntMessageRepeated = QList<std::shared_ptr<SimpleIntMessage>>;
class BlobMessage;
using BlobMessageRepeated = QList<std::shared_ptr<BlobMessage>>;

class  SimpleStringMessage : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(SimpleStringMessage)
    Q_PROPERTY(QString testFieldString READ testFieldString WRITE setTestFieldString SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldStringProtoFieldNumber = 6,
    };
    Q_ENUM(QtProtobufFieldEnum)

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

    QString testFieldString() const {
        return m_testFieldString;
    }

    void setTestFieldString(const QString &testFieldString);
    static void registerTypes();

private:
    QString m_testFieldString;
};


class  SimpleIntMessage : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(SimpleIntMessage)
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

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

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField)
            m_testField = testField;
    }

    static void registerTypes();

private:
    QtProtobuf::sint32 m_testField;
};


class  BlobMessage : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(BlobMessage)
    Q_PROPERTY(QByteArray testBytes READ testBytes WRITE setTestBytes SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestBytesProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

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

    QByteArray testBytes() const {
        return m_testBytes;
    }

    void setTestBytes(const QByteArray &testBytes);
    static void registerTypes();

private:
    QByteArray m_testBytes;
};

} // namespace qtgrpc::tests

Q_DECLARE_METATYPE(qtgrpc::tests::SimpleStringMessage)
Q_DECLARE_METATYPE(qtgrpc::tests::SimpleIntMessage)
Q_DECLARE_METATYPE(qtgrpc::tests::BlobMessage)
#endif // Q_PROTOBUF_testservice_H
