Синхронизировать контейнеры в QT по сети - PullRequest
0 голосов
/ 30 октября 2019

Можно ли синхронизировать QVector (или другие контейнеры qt) через центральный сервер? Что-то вроде connect (vectorWrapper, SIGNAL (dataChanged), server, (receiveCopyOfUpdatedVector));?

Есть ли готовая к использованию функция, позволяющая подключить dataChanged к UNKNOWN_QT_FUNCTION_WHICH_REPLICATES_CONTAINERS и синхронизировать ее с сервером или другим хостом?

Мой вариант использования:

User1 (container1, read only container2) -> Server (container1,container2) <- User2 (read only container1,container2)

Пользователь1 может изменить контейнер1, реплицируя его на сервер, и сервер уведомляет пользователя2 об обновленном контейнере1. И наоборот для контейнера два.

Вот пример кода и мои шаги, которые я сделал до сих пор:

Я хотел бы синхронизировать контейнер между двумя хостами в сети. Допустим, у меня есть телефонная книга организации и я хочу обновить телефонную книгу на сервере, когда кто-то вводит новый номер. Изменения на сервере должны быть переданы обратно каждому пользователю.

Если найдена некоторая документация для отдельных объектов (пример коммутатора), но не документация для готовых контейнеров.

https://doc.qt.io/qt-5/qtremoteobjects-gettingstarted.html#

class Telephonebook : QObject
{
QObject

signals:
void dataChanged();

public:

QVector<QPair<QString, QString> > entries;

Telephonebook();

void addNumber(const QString& name, const QString& number)
{
entries.push_back(QPair<QString,QString> (name,number) );
emit dataChanged();
}
};

//how can you synchronize entries with a remote server when dataChanged is emitted?
...