public ReliableDeliverySupervisor(
AkkaProtocolHandle handleOrActive,
Address localAddress,
Address remoteAddress,
int? refuseUid,
AkkaProtocolTransport transport,
RemoteSettings settings,
AkkaPduCodec codec,
ConcurrentDictionary<EndpointManager.Link, EndpointManager.ResendState> receiveBuffers)
{
_localAddress = localAddress;
_remoteAddress = remoteAddress;
_refuseUid = refuseUid;
_transport = transport;
_settings = settings;
_codec = codec;
_currentHandle = handleOrActive;
_receiveBuffers = receiveBuffers;
Reset(); // needs to be called at startup
_writer = CreateWriter(); // need to create writer at startup
Uid = handleOrActive != null ? (int?)handleOrActive.HandshakeInfo.Uid : null;
UidConfirmed = Uid.HasValue;
Receiving();
_autoResendTimer = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(_settings.SysResendTimeout, _settings.SysResendTimeout, Self, new AttemptSysMsgRedelivery(),
Self);
}