public static WrappedOp <ReserveEntityIdsResponseOp> CreateReserveEntityIdsResponseOp(long requestId) { var op = new ReserveEntityIdsResponseOp { RequestId = new RequestId <ReserveEntityIdsRequest>(requestId) }; return(new WrappedOp <ReserveEntityIdsResponseOp>(op)); }
internal ReceivedResponse(ReserveEntityIdsResponseOp op, Entity sendingEntity, Request req, long requestId) { SendingEntity = sendingEntity; StatusCode = op.StatusCode; Message = op.Message; NumberOfEntityIds = op.NumberOfEntityIds; RequestPayload = req; Context = req.Context; RequestId = requestId; FirstEntityId = op.FirstEntityId.HasValue ? new EntityId(op.FirstEntityId.Value) : (EntityId?)null; }
private void CompleteCommand(ReserveEntityIdsResponseOp r) { if (!requestsToComplete.TryRemove(r.RequestId, out var completer)) { return; } if (r.StatusCode == StatusCode.Success) { completer.Complete(new CommandResponses { ReserveEntityIds = r }); } else { completer.Fail(r.StatusCode, r.Message); } }
public void OnReserveEntityIdResponse(ReserveEntityIdsResponseOp op) { ReserveEntityIdsRequest request = requestIdToReserveEntityIdsRequest[op.RequestId.Id]; requestIdToReserveEntityIdsRequest.Remove(op.RequestId.Id); Entity entity; if (!TryGetEntityFromEntityId(request.SenderEntityId, "ReserveEntityIds", out entity)) { return; } var response = new ReserveEntityIdsResponse((CommandStatusCode)op.StatusCode, op.Message, op.FirstEntityId.Value.Id, op.NumberOfEntityIds, request); view.AddCommandResponse(entity, response, reserveEntityIdsResponsesPool); }
private void OnReserveEntityIdsResponse(ReserveEntityIdsResponseOp op) { if (!reserveEntityIdsStorage.CommandRequestsInFlight.TryGetValue(op.RequestId.Id, out var requestBundle)) { worker.LogDispatcher.HandleLog(LogType.Error, new LogEvent(RequestIdNotFound) .WithField(LoggingUtils.LoggerName, LoggerName) .WithField("RequestId", op.RequestId.Id) .WithField("Command Type", "ReserveEntityIds")); return; } var entity = requestBundle.Entity; reserveEntityIdsStorage.CommandRequestsInFlight.Remove(op.RequestId.Id); if (!EntityManager.Exists(entity)) { worker.LogDispatcher.HandleLog(LogType.Log, new LogEvent(EntityNotFound) .WithField(LoggingUtils.LoggerName, LoggerName) .WithField("Op", "ReserveEntityIdsResponseOp") ); return; } List <WorldCommands.ReserveEntityIds.ReceivedResponse> responses; if (EntityManager.HasComponent <WorldCommands.ReserveEntityIds.CommandResponses>(entity)) { responses = EntityManager.GetComponentData <WorldCommands.ReserveEntityIds.CommandResponses>(entity) .Responses; } else { var data = new WorldCommands.ReserveEntityIds.CommandResponses { Handle = WorldCommands.ReserveEntityIds.ResponsesProvider.Allocate(World) }; responses = data.Responses = new List <WorldCommands.ReserveEntityIds.ReceivedResponse>(); EntityManager.AddComponentData(entity, data); } responses.Add( new WorldCommands.ReserveEntityIds.ReceivedResponse(op, requestBundle.Request, requestBundle.Context)); }
private void HandleReserveEntityIdsResponse(ReserveEntityIdsResponseOp op) { reserveEntityIdsResponseCallbacks.InvokeAll(op); }