Example #1
0
        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;
 }
Example #3
0
        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);
            }
        }
Example #4
0
        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));
        }
Example #6
0
 private void HandleDeleteEntityResponse(DeleteEntityResponseOp op)
 {
     deleteEntityResponseCallbacks.InvokeAll(op);
 }