Когда вы устанавливаете историю на DataWriter, он содержит столько отправленных им выборок. Когда вы устанавливаете историю в DataReader, он запрашивает , что много ранее отправленных образцов. Примечание: читатель просит, писатель предлагает. Если читатель запрашивает больше, он все равно получает только то, что предлагает писатель. Если читатель запрашивает меньше, он только делает это множество доступным для вашего приложения. (Сказано так, потому что это может привести к разному поведению - где происходит фильтрация? Может быть, на стороне писателя, может на стороне читателя. Зависит от реализации).
Теперь ваш писатель имеет ИСТОРИЮ qos и a определенное количество образцов, которые были проведены на. Ваш читатель также имеет ИСТОРИЮ qos и запрашивает определенное количество ранее отправленных образцов. Нет разницы между «историческим» образцом и «текущим» образцом. Образцы получены ... и ваша заявка уведомлена.
Поскольку ваш читатель не видел их раньше, они (для вашего читателя) новые сэмплы и сообщаются вам через onNewDataMessage ().
Там нет ничего например, «дайте мне исторические образцы», потому что вы уже получили их, когда вы были уведомлены о том, что образцы были доступны (или опрашивали их, или у них был прослушиватель, или как бы то ни было).
Если вы не видите исторические образцы при создании DataReader у вас возникают другие разногласия QOS или проблемы с использованием памяти, или ...
DDS - это ничто, если не настраивается, но вам действительно нужно понимать нюансы.