private void CreateAndRegisterEndpoint(AkkaProtocolHandle handle, int? refuseUid)
{
var writing = _settings.UsePassiveConnections && !_endpoints.HasWriteableEndpointFor(handle.RemoteAddress);
_eventPublisher.NotifyListeners(new AssociatedEvent(handle.LocalAddress, handle.RemoteAddress, true));
var endpoint = CreateEndpoint(
handle.RemoteAddress,
handle.LocalAddress,
_transportMapping[handle.LocalAddress],
_settings,
writing,
handle,
refuseUid);
if (writing)
{
_endpoints.RegisterWritableEndpoint(handle.RemoteAddress, endpoint, handle.HandshakeInfo.Uid, refuseUid);
}
else
{
_endpoints.RegisterReadOnlyEndpoint(handle.RemoteAddress, endpoint, handle.HandshakeInfo.Uid);
if(!_endpoints.HasWriteableEndpointFor(handle.RemoteAddress))
_endpoints.RemovePolicy(handle.RemoteAddress);
}
}