[idd] transport: add multi-instance lifecycle manager

This commit is contained in:
Geoffrey McRae
2026-08-12 16:19:22 +10:00
parent 6b8b361101
commit 1ebf80fbe8
9 changed files with 452 additions and 11 deletions

View File

@@ -44,6 +44,8 @@ public:
class ITransport
{
public:
using BackendId = uint32_t;
enum class OpenResult
{
SUCCESS,
@@ -51,6 +53,13 @@ public:
FAILURE,
};
enum class ProcessResult
{
OK,
RETRY,
FAILURE,
};
enum class Recovery
{
NORMAL,
@@ -63,7 +72,8 @@ public:
virtual OpenResult Open() = 0;
virtual bool Initialize() = 0;
virtual bool Setup(size_t alignment) = 0;
virtual void Process(ITransportEvents& events) = 0;
virtual ProcessResult Process(ITransportEvents& events) = 0;
virtual void Stop() = 0;
virtual void SyncRecovery() {}
virtual void RecoveryStatus(
uint64_t, uint32_t, bool, Recovery, uint32_t) {}