#ifndef COMMONDATA_H#define COMMONDATA_H#include <QObject>#include <QVector>#include <QUdpSocket>#include <QMutex>#include <QMessageBox>#include "owntype.h"class CommonData : public QObject // Массив общих данных{Q_OBJECTpublic: explicit CommonData(int port, QObject *parent = 0); QVector<OwnType*>::iterator begin(); QVector<OwnType*>::iterator end(); OwnType* operator[](int); // Перегрузка оператора индексацииsignals:public slots: int add(int); // Создание по номеру (если существует - вернет 1) int add(OwnType*); // Добавление элемента в массив (если существует - вернет 1) int del(int); // Удаление по номеру (если неудачно - вернет 1) int del(OwnType*); // Удаление по элементу (отождествление, если неудачно - вернет 1) OwnType* find(int); // Поиск по номеру OwnType* find(OwnType*); // Поиск по элементу (отождествление) void printDebug(); int size(); void setSendPort(int port);private slots: void getChanged(); void sendChanges(OwnType*);protected: bool findPos(int, QVector<OwnType*>::iterator &); // Поиск номера элемента массива (по номеру) bool findPos(OwnType*, QVector<OwnType*>::iterator &); // Поиск номера элемента массива (по элементу) int copy(OwnType*,OwnType*);protected: void processDatagramm(QByteArray datagramm); QVector<OwnType*> commonVector; QMutex mutex; QUdpSocket *armSyncSend; QUdpSocket *armSyncGet; int sendPort; int ownPort;};#endif // COMMONDATA_H
#ifndef ALGORITHM_H#define ALGORITHM_H#include <QThread>#include "commondata.h"class Algorithm : public QThread{ Q_OBJECTpublic: Algorithm(int port); CommonData *data; void run();public slots: void change(int,QString); void setPartnerPort(int);};#endif // ALGORITHM_H
#ifndef RULEFORM_H#define RULEFORM_H#include "ui_ruleform.h"#include "algorithm.h"#include <QTimer>class RuleForm : public QWidget, private Ui::RuleForm { Q_OBJECTpublic: RuleForm(QWidget *parent = 0);public slots: void set1_2(); void set2_1(); void refresh();signals: void emitSignal1(int, QString); void emitSignal2(int, QString);protected: Algorithm *alg1; Algorithm *alg2; void changeEvent(QEvent *e);};#endif // RULEFORM_H