// This file generated by libqtelegram-code-generator.
// You can download it from: https://github.com/Aseman-Land/libqtelegram-code-generator
// DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

#ifndef LQTG_TYPE_DECRYPTEDMESSAGELAYER_OBJECT
#define LQTG_TYPE_DECRYPTEDMESSAGELAYER_OBJECT

#include "telegramtypeqobject.h"
#include "telegram/types/decryptedmessagelayer.h"

#include <QPointer>
#include "decryptedmessageobject.h"

class LIBQTELEGRAMSHARED_EXPORT DecryptedMessageLayerObject : public TelegramTypeQObject
{
    Q_OBJECT
    Q_ENUMS(DecryptedMessageLayerClassType)
    Q_PROPERTY(qint32 inSeqNo READ inSeqNo WRITE setInSeqNo NOTIFY inSeqNoChanged)
    Q_PROPERTY(qint32 layer READ layer WRITE setLayer NOTIFY layerChanged)
    Q_PROPERTY(DecryptedMessageObject* message READ message WRITE setMessage NOTIFY messageChanged)
    Q_PROPERTY(qint32 outSeqNo READ outSeqNo WRITE setOutSeqNo NOTIFY outSeqNoChanged)
    Q_PROPERTY(QByteArray randomBytes READ randomBytes WRITE setRandomBytes NOTIFY randomBytesChanged)
    Q_PROPERTY(DecryptedMessageLayer core READ core WRITE setCore NOTIFY coreChanged)
    Q_PROPERTY(quint32 classType READ classType WRITE setClassType NOTIFY classTypeChanged)

public:
    enum DecryptedMessageLayerClassType {
        TypeDecryptedMessageLayerSecret17
    };

    DecryptedMessageLayerObject(const DecryptedMessageLayer &core, QObject *parent = 0);
    DecryptedMessageLayerObject(QObject *parent = 0);
    virtual ~DecryptedMessageLayerObject();

    void setInSeqNo(qint32 inSeqNo);
    qint32 inSeqNo() const;

    void setLayer(qint32 layer);
    qint32 layer() const;

    void setMessage(DecryptedMessageObject* message);
    DecryptedMessageObject* message() const;

    void setOutSeqNo(qint32 outSeqNo);
    qint32 outSeqNo() const;

    void setRandomBytes(const QByteArray &randomBytes);
    QByteArray randomBytes() const;

    void setClassType(quint32 classType);
    quint32 classType() const;

    void setCore(const DecryptedMessageLayer &core);
    DecryptedMessageLayer core() const;

    DecryptedMessageLayerObject &operator =(const DecryptedMessageLayer &b);
    bool operator ==(const DecryptedMessageLayer &b) const;

Q_SIGNALS:
    void coreChanged();
    void classTypeChanged();
    void inSeqNoChanged();
    void layerChanged();
    void messageChanged();
    void outSeqNoChanged();
    void randomBytesChanged();

private Q_SLOTS:
    void coreMessageChanged();

private:
    QPointer<DecryptedMessageObject> m_message;
    DecryptedMessageLayer m_core;
};

#endif // LQTG_TYPE_DECRYPTEDMESSAGELAYER_OBJECT
