1
0
mirror of https://gitee.com/drabel/LibQQt.git synced 2025-01-04 10:18:44 +08:00
2018-07-12 13:49:40 +08:00

87 lines
1.7 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <qqtsharedmemory.h>
class MyValue : public QQtSharedMemory
{
Q_OBJECT
public:
explicit MyValue ( const QString& key, QObject* parent = 0 ) : QQtSharedMemory ( key, parent ) {
str = "This is a test value";
}
void setString ( QByteArray str ) { this->str = str; }
QByteArray getString() { return str; }
private:
quint8 a;
quint16 mSize;//
//quint32 len;
QByteArray str;
quint16 b;
// QQtSharedMemory interface
public:
virtual void initializer() override {
create ( 2048 );
attach();
}
virtual void packer() override {
lock();
QByteArray bytes;
bytes << a;
bytes << mSize;
writeString ( bytes, str );
bytes << b;
memcpy ( data(), bytes.constData(), bytes.size() );
//pline() << data();
//pline() << "write:" << str;
unlock();
}
virtual void parser() override {
lock();
QByteArray bytes;
bytes.resize ( size() );
memcpy ( bytes.data(), data(), size() );
//user data struct
bytes >> a;
bytes >> mSize;
str = readString ( bytes );
bytes >> b;
//pline() << data();
//pline() << "read:" << str;
unlock();
}
};
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow ( QWidget* parent = 0 );
~MainWindow();
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
private:
Ui::MainWindow* ui;
};
#endif // MAINWINDOW_H