public static WrappedOp <DeleteEntityResponseOp> CreateDeleteEntityResponseOp(long requestId) { var op = new DeleteEntityResponseOp { RequestId = new RequestId <DeleteEntityRequest>(requestId) }; return(new WrappedOp <DeleteEntityResponseOp>(op)); }
internal ReceivedResponse(DeleteEntityResponseOp op, Entity sendingEntity, Request req, long requestId) { SendingEntity = sendingEntity; StatusCode = op.StatusCode; Message = op.Message; EntityId = new EntityId(op.EntityId); RequestPayload = req; Context = req.Context; RequestId = requestId; }
private void CompleteCommand(DeleteEntityResponseOp r) { if (!requestsToComplete.TryRemove(r.RequestId, out var completer)) { return; } if (r.StatusCode == StatusCode.Success) { completer.Complete(new CommandResponses { DeleteEntity = r }); } else { completer.Fail(r.StatusCode, r.Message); } }
public void OnDeleteEntityResponse(DeleteEntityResponseOp op) { DeleteEntityRequest request = requestIdToDeleteEntityRequest[op.RequestId.Id]; requestIdToDeleteEntityRequest.Remove(op.RequestId.Id); Entity entity; if (!TryGetEntityFromEntityId(request.SenderEntityId, "DeleteEntity", out entity)) { return; } var response = new DeleteEntityResponse((CommandStatusCode)op.StatusCode, op.Message, op.EntityId.Id, request); view.AddCommandResponse(entity, response, deleteEntityResponsePool); }
private void OnDeleteEntityResponse(DeleteEntityResponseOp op) { if (!deleteEntityStorage.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", "DeleteEntity")); return; } var entity = requestBundle.Entity; deleteEntityStorage.CommandRequestsInFlight.Remove(op.RequestId.Id); if (!EntityManager.Exists(entity)) { worker.LogDispatcher.HandleLog(LogType.Log, new LogEvent(EntityNotFound) .WithField(LoggingUtils.LoggerName, LoggerName) .WithField("Op", "DeleteEntityResponseOp") ); return; } List <WorldCommands.DeleteEntity.ReceivedResponse> responses; if (EntityManager.HasComponent <WorldCommands.DeleteEntity.CommandResponses>(entity)) { responses = EntityManager.GetComponentData <WorldCommands.DeleteEntity.CommandResponses>(entity) .Responses; } else { var data = new WorldCommands.DeleteEntity.CommandResponses { Handle = WorldCommands.DeleteEntity.ResponsesProvider.Allocate(World) }; responses = data.Responses = new List <WorldCommands.DeleteEntity.ReceivedResponse>(); EntityManager.AddComponentData(entity, data); } responses.Add( new WorldCommands.DeleteEntity.ReceivedResponse(op, requestBundle.Request, requestBundle.Context)); }
private void HandleDeleteEntityResponse(DeleteEntityResponseOp op) { deleteEntityResponseCallbacks.InvokeAll(op); }