public override void RegisterClientHandler(RegisterClientRequestReader request, RegisterClientResponseWriter response) { response.PartitionCount = m_memorycloud.PartitionCount; var cstg = m_client_storages.AddOrUpdate(request.Cookie, _ => { ClientIStorage stg = new ClientIStorage(m_memorycloud); stg.Pulse = DateTime.Now; int new_id = Registry.RegisterClient(stg); stg.InstanceId = new_id; return(stg); }, (_, stg) => stg); response.InstanceId = cstg.InstanceId; }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="response"></param> public override void RegisterClientHandler(RegisterClientRequestReader request, RegisterClientResponseWriter response) { response.PartitionCount = m_memorycloud.PartitionCount; var cstg = m_client_storages.AddOrUpdate(request.Cookie, addValueFactory: AddValueFactory, (int _, ClientIStorage stg) => { if (_ <= 0) { throw new ArgumentOutOfRangeException(nameof(_)); } return(stg); }); response.InstanceId = cstg.InstanceId; }