feat(tcp): TCPStreamer DataSources, in-process TCPStreamService, stream multiplexing and TCPStreamJoin
Add TCPStreamer/TCPStreamerClient (TCP transport behind the UDPSServerI/UDPSClientI seam), an optional single in-process TCPStreamService serving many streams over worker threads, multiplexed SUBSCRIBE (comma list, stream index in fragmentIdx), and TCPStreamJoin, which merges several streams into one sample-and-hold stream paced by a master. StreamHub takes a comma list of streams over one connection. Includes GTests, E2E scenarios s58-s73 and docs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
5562877c99
commit
50d85363a3
79 files changed
+12348
-138
No files matched your search
@@ -0,0 +1,40 @@
|
||||
#ifndef TCPS_STREAM_TAP_I_H_
|
||||
#define TCPS_STREAM_TAP_I_H_
|
||||
|
||||
/**
|
||||
* @file TCPSStreamTapI.h
|
||||
* @brief Hooks used by TCPStreamJoin to follow the streams of a TCPStreamService.
|
||||
*
|
||||
* TCPSStreamTapI observes the CONFIG / DATA payloads a stream publishes (on the
|
||||
* producer's thread, after the frame went to the subscribers). TCPSStreamObserverI
|
||||
* observes streams registering with / leaving a service.
|
||||
*/
|
||||
|
||||
#include "CompilerTypes.h"
|
||||
|
||||
namespace MARTe {
|
||||
|
||||
class TCPSServiceStream;
|
||||
|
||||
class TCPSStreamTapI {
|
||||
public:
|
||||
virtual ~TCPSStreamTapI() {}
|
||||
/** A CONFIG payload was published (or the cached one is replayed on AddTap). */
|
||||
virtual void OnTapConfig(TCPSServiceStream *source, const uint8 *payload, uint32 payloadSize) = 0;
|
||||
/** A DATA payload was published. */
|
||||
virtual void OnTapData(TCPSServiceStream *source, uint32 counter, const uint8 *payload,
|
||||
uint32 payloadSize) = 0;
|
||||
};
|
||||
|
||||
class TCPSStreamObserverI {
|
||||
public:
|
||||
virtual ~TCPSStreamObserverI() {}
|
||||
/** @p stream just registered. May call back into the service. */
|
||||
virtual void OnStreamRegistered(TCPSServiceStream *stream) = 0;
|
||||
/** @p stream is leaving (it is still valid during the call). */
|
||||
virtual void OnStreamUnregistered(TCPSServiceStream *stream) = 0;
|
||||
};
|
||||
|
||||
} // namespace MARTe
|
||||
|
||||
#endif // TCPS_STREAM_TAP_I_H_
|
||||
Reference in new issue
Block a user