Files
qt6-migration-pipeline/Lts/DDS/DdsUnitTestsPlaceholder/mocks/MockDDS.h
T

30 lines
1.0 KiB
C++

#pragma once
#include <string>
#include <functional>
#include <vector>
#include <chrono>
namespace MockDDS {
// Richer mock for migration smoke-tests:
// - publish(topic, payload) : synchronous publish
// - publish_async(topic, payload, delay_ms) : asynchronous publish (background dispatcher)
// - subscribe(topic, callback) -> subscription id
// - unsubscribe(topic, subscription id)
// - take_last(topic), get_queue(topic)
// - clear_all()
// - sequence numbers per topic (integer appended to payload meta)
using Subscriber = std::function<void(const std::string &payload)>;
using SubscriptionId = unsigned long;
void publish(const std::string &topic, const std::string &msg);
void publish_async(const std::string &topic, const std::string &msg, unsigned delay_ms = 0);
SubscriptionId subscribe(const std::string &topic, Subscriber cb);
void unsubscribe(const std::string &topic, SubscriptionId id);
std::string take_last(const std::string &topic);
std::vector<std::string> get_queue(const std::string &topic);
void clear_all();
}