public override void ExecuteReplication(ComponentGroup replicationGroup, global::Improbable.Worker.Core.Connection connection) { Profiler.BeginSample("ExhaustiveMapKey"); var entityIdDataArray = replicationGroup.GetComponentDataArray <SpatialEntityId>(); var componentDataArray = replicationGroup.GetComponentDataArray <Improbable.Gdk.Tests.ExhaustiveMapKey.Component>(); for (var i = 0; i < componentDataArray.Length; i++) { var data = componentDataArray[i]; var dirtyEvents = 0; if (data.DirtyBit || dirtyEvents > 0) { var update = new global::Improbable.Worker.Core.SchemaComponentUpdate(197719); Improbable.Gdk.Tests.ExhaustiveMapKey.Serialization.SerializeUpdate(data, update); // Send serialized update over the wire connection.SendComponentUpdate(entityIdDataArray[i].EntityId, new global::Improbable.Worker.Core.ComponentUpdate(update)); data.DirtyBit = false; componentDataArray[i] = data; } } Profiler.EndSample(); }
public override void ExecuteReplication(ComponentGroup replicationGroup, global::Improbable.Worker.Core.Connection connection) { Profiler.BeginSample("ComponentWithNoFieldsWithEvents"); var entityIdDataArray = replicationGroup.GetComponentDataArray <SpatialEntityId>(); var componentDataArray = replicationGroup.GetComponentDataArray <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithEvents.Component>(); var eventEvtArray = replicationGroup.GetComponentDataArray <EventSender.Evt>(); for (var i = 0; i < componentDataArray.Length; i++) { var data = componentDataArray[i]; var dirtyEvents = 0; var eventsEvt = eventEvtArray[i].Events; dirtyEvents += eventsEvt.Count; if (data.DirtyBit || dirtyEvents > 0) { var update = new global::Improbable.Worker.Core.SchemaComponentUpdate(1004); Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithEvents.Serialization.SerializeUpdate(data, update); // Serialize events var eventsObject = update.GetEvents(); if (eventsEvt.Count > 0) { foreach (var e in eventsEvt) { var obj = eventsObject.AddObject(1); global::Improbable.Gdk.Tests.ComponentsWithNoFields.Empty.Serialization.Serialize(e, obj); } eventsEvt.Clear(); } // Send serialized update over the wire connection.SendComponentUpdate(entityIdDataArray[i].EntityId, new global::Improbable.Worker.Core.ComponentUpdate(update)); data.DirtyBit = false; componentDataArray[i] = data; } } Profiler.EndSample(); }
public override void ExecuteReplication(ComponentGroup replicationGroup, global::Improbable.Worker.Core.Connection connection) { var entityIdDataArray = replicationGroup.GetComponentDataArray <SpatialEntityId>(); var componentDataArray = replicationGroup.GetComponentDataArray <SpatialOSConnection>(); var eventMyEventArray = replicationGroup.GetComponentDataArray <EventSender.MyEvent>(); for (var i = 0; i < componentDataArray.Length; i++) { var data = componentDataArray[i]; var dirtyEvents = 0; var eventsMyEvent = eventMyEventArray[i].Events; dirtyEvents += eventsMyEvent.Count; if (data.DirtyBit || dirtyEvents > 0) { var update = new global::Improbable.Worker.Core.SchemaComponentUpdate(1105); SpatialOSConnection.Serialization.Serialize(data, update.GetFields()); // Serialize events var eventsObject = update.GetEvents(); if (eventsMyEvent.Count > 0) { foreach (var e in eventsMyEvent) { var obj = eventsObject.AddObject(1); global::Generated.Improbable.Gdk.Tests.AlternateSchemaSyntax.RandomDataType.Serialization.Serialize(e, obj); } eventsMyEvent.Clear(); } // Send serialized update over the wire connection.SendComponentUpdate(entityIdDataArray[i].EntityId, new global::Improbable.Worker.Core.ComponentUpdate(update)); data.DirtyBit = false; componentDataArray[i] = data; } } }
public override void ExecuteReplication(ComponentGroup replicationGroup, global::Improbable.Worker.Core.Connection connection) { var entityIdDataArray = replicationGroup.GetComponentDataArray <SpatialEntityId>(); var componentDataArray = replicationGroup.GetComponentDataArray <SpatialOSExhaustiveSingular>(); for (var i = 0; i < componentDataArray.Length; i++) { var data = componentDataArray[i]; var dirtyEvents = 0; if (data.DirtyBit || dirtyEvents > 0) { var update = new global::Improbable.Worker.Core.SchemaComponentUpdate(197715); SpatialOSExhaustiveSingular.Serialization.Serialize(data, update.GetFields()); // Send serialized update over the wire connection.SendComponentUpdate(entityIdDataArray[i].EntityId, new global::Improbable.Worker.Core.ComponentUpdate(update)); data.DirtyBit = false; componentDataArray[i] = data; } } }
public override void ExecuteReplication(ComponentGroup replicationGroup, global::Improbable.Worker.Core.Connection connection) { var entityIdDataArray = replicationGroup.GetComponentDataArray <SpatialEntityId>(); var componentDataArray = replicationGroup.GetComponentDataArray <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component>(); for (var i = 0; i < componentDataArray.Length; i++) { var data = componentDataArray[i]; var dirtyEvents = 0; if (data.DirtyBit || dirtyEvents > 0) { var update = new global::Improbable.Worker.Core.SchemaComponentUpdate(1005); Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Serialization.SerializeUpdate(data, update); // Send serialized update over the wire connection.SendComponentUpdate(entityIdDataArray[i].EntityId, new global::Improbable.Worker.Core.ComponentUpdate(update)); data.DirtyBit = false; componentDataArray[i] = data; } } }
public override void SendCommands(SpatialOSSendSystem sendSystem, global::Improbable.Worker.Core.Connection connection) { var entityType = sendSystem.GetArchetypeChunkEntityType(); }
public override void SendCommands(ComponentGroup commandGroup, ComponentSystemBase system, global::Improbable.Worker.Core.Connection connection) { }
public override void ExecuteReplication(ComponentGroup replicationGroup, ComponentSystemBase system, global::Improbable.Worker.Core.Connection connection) { Profiler.BeginSample("NestedComponent"); var chunkArray = replicationGroup.CreateArchetypeChunkArray(Allocator.TempJob); var spatialOSEntityType = system.GetArchetypeChunkComponentType <SpatialEntityId>(true); var componentType = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.NestedComponent.Component>(); foreach (var chunk in chunkArray) { var entityIdArray = chunk.GetNativeArray(spatialOSEntityType); var componentArray = chunk.GetNativeArray(componentType); for (var i = 0; i < componentArray.Length; i++) { var data = componentArray[i]; var dirtyEvents = 0; if (data.DirtyBit || dirtyEvents > 0) { var update = new global::Improbable.Worker.Core.SchemaComponentUpdate(20152); Improbable.Gdk.Tests.NestedComponent.Serialization.SerializeUpdate(data, update); // Send serialized update over the wire connection.SendComponentUpdate(entityIdArray[i].EntityId, new global::Improbable.Worker.Core.ComponentUpdate(update)); data.DirtyBit = false; componentArray[i] = data; } } } chunkArray.Dispose(); Profiler.EndSample(); }
public override void SendCommands(List <ComponentGroup> commandComponentGroups, global::Improbable.Worker.Core.Connection connection) { }
public override void ExecuteReplication(ComponentGroup replicationGroup, ComponentSystemBase system, global::Improbable.Worker.Core.Connection connection) { Profiler.BeginSample("ComponentWithNoFieldsWithEvents"); var chunkArray = replicationGroup.CreateArchetypeChunkArray(Allocator.TempJob); var spatialOSEntityType = system.GetArchetypeChunkComponentType <SpatialEntityId>(true); var componentType = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithEvents.Component>(); var eventEvtType = system.GetArchetypeChunkComponentType <EventSender.Evt>(true); foreach (var chunk in chunkArray) { var entityIdArray = chunk.GetNativeArray(spatialOSEntityType); var componentArray = chunk.GetNativeArray(componentType); var eventEvtArray = chunk.GetNativeArray(eventEvtType); for (var i = 0; i < componentArray.Length; i++) { var data = componentArray[i]; var dirtyEvents = 0; var eventsEvt = eventEvtArray[i].Events; dirtyEvents += eventsEvt.Count; if (data.DirtyBit || dirtyEvents > 0) { var update = new global::Improbable.Worker.Core.SchemaComponentUpdate(1004); Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithEvents.Serialization.SerializeUpdate(data, update); // Serialize events var eventsObject = update.GetEvents(); if (eventsEvt.Count > 0) { foreach (var e in eventsEvt) { var obj = eventsObject.AddObject(1); global::Improbable.Gdk.Tests.ComponentsWithNoFields.Empty.Serialization.Serialize(e, obj); } eventsEvt.Clear(); } // Send serialized update over the wire connection.SendComponentUpdate(entityIdArray[i].EntityId, new global::Improbable.Worker.Core.ComponentUpdate(update)); data.DirtyBit = false; componentArray[i] = data; } } } chunkArray.Dispose(); Profiler.EndSample(); }
public override void SendCommands(List <ComponentGroup> commandComponentGroups, global::Improbable.Worker.Core.Connection connection) { if (!commandComponentGroups[0].IsEmptyIgnoreFilter) { var componentGroup = commandComponentGroups[0]; var commandSenderDataArray = componentGroup.GetComponentDataArray <Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.CommandSenders.Cmd>(); var entityArray = componentGroup.GetEntityArray(); for (var j = 0; j < commandSenderDataArray.Length; j++) { var requests = commandSenderDataArray[j].RequestsToSend; var count = requests.Count; // Skip processing requests if that are none. if (count == 0) { continue; } for (var k = 0; k < count; k++) { var wrappedCommandRequest = requests[k]; var schemaCommandRequest = new global::Improbable.Worker.Core.SchemaCommandRequest(ComponentId, 1); global::Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.Empty.Serialization.Serialize(wrappedCommandRequest.Payload, schemaCommandRequest.GetObject()); var requestId = connection.SendCommandRequest(wrappedCommandRequest.TargetEntityId, new global::Improbable.Worker.Core.CommandRequest(schemaCommandRequest), wrappedCommandRequest.TimeoutMillis, wrappedCommandRequest.AllowShortCircuiting ? ShortCircuitParameters : null); cmdStorage.CommandRequestsInFlight[requestId.Id] = new CommandRequestStore <global::Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.Empty>(entityArray[j], wrappedCommandRequest.Payload, wrappedCommandRequest.Context, wrappedCommandRequest.RequestId); } requests.Clear(); } } if (!commandComponentGroups[1].IsEmptyIgnoreFilter) { var componentGroup = commandComponentGroups[1]; var commandResponderDataArray = componentGroup.GetComponentDataArray <Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.CommandResponders.Cmd>(); for (var j = 0; j < commandResponderDataArray.Length; j++) { var responses = commandResponderDataArray[j].ResponsesToSend; var count = responses.Count; // Skip processing responses if that are none. if (count == 0) { continue; } for (var k = 0; k < count; k++) { var wrappedCommandResponse = responses[k]; var requestId = new global::Improbable.Worker.Core.RequestId <IncomingCommandRequest>(wrappedCommandResponse.RequestId); if (wrappedCommandResponse.FailureMessage != null) { // Send a command failure if the string is non-null. connection.SendCommandFailure(requestId, wrappedCommandResponse.FailureMessage); continue; } var schemaCommandResponse = new global::Improbable.Worker.Core.SchemaCommandResponse(ComponentId, 1); global::Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.Empty.Serialization.Serialize(wrappedCommandResponse.Payload.Value, schemaCommandResponse.GetObject()); connection.SendCommandResponse(requestId, new global::Improbable.Worker.Core.CommandResponse(schemaCommandResponse)); } responses.Clear(); } } }
public override void SendCommands(SpatialOSSendSystem sendSystem, global::Improbable.Worker.Core.Connection connection) { }
public override void ExecuteReplication(ComponentGroup replicationGroup, ComponentSystemBase system, global::Improbable.Worker.Core.Connection connection) { Profiler.BeginSample("ExhaustiveSingular"); var chunkArray = replicationGroup.CreateArchetypeChunkArray(Allocator.TempJob); var spatialOSEntityType = system.GetArchetypeChunkComponentType <SpatialEntityId>(true); var componentType = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.ExhaustiveSingular.Component>(); foreach (var chunk in chunkArray) { var entityIdArray = chunk.GetNativeArray(spatialOSEntityType); var componentArray = chunk.GetNativeArray(componentType); for (var i = 0; i < componentArray.Length; i++) { var data = componentArray[i]; var eventsToSend = 0; if (data.IsDataDirty() || eventsToSend > 0) { var update = new global::Improbable.Worker.Core.SchemaComponentUpdate(197715); Improbable.Gdk.Tests.ExhaustiveSingular.Serialization.SerializeUpdate(data, update); // Send serialized update over the wire connection.SendComponentUpdate(entityIdArray[i].EntityId, new global::Improbable.Worker.Core.ComponentUpdate(update)); data.MarkDataClean(); componentArray[i] = data; } } } chunkArray.Dispose(); Profiler.EndSample(); }
public override void SendCommands(ComponentGroup commandGroup, ComponentSystemBase system, global::Improbable.Worker.Core.Connection connection) { Profiler.BeginSample("ComponentWithNoFieldsWithCommands"); var entityType = system.GetArchetypeChunkEntityType(); { var senderType = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.CommandSenders.Cmd>(true); var responderType = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.CommandResponders.Cmd>(true); var chunks = commandGroup.CreateArchetypeChunkArray(Allocator.TempJob); foreach (var chunk in chunks) { var entities = chunk.GetNativeArray(entityType); var senders = chunk.GetNativeArray(senderType); var responders = chunk.GetNativeArray(responderType); for (var i = 0; i < senders.Length; i++) { var requests = senders[i].RequestsToSend; var responses = responders[i].ResponsesToSend; if (requests.Count > 0) { foreach (var request in requests) { var schemaCommandRequest = new global::Improbable.Worker.Core.SchemaCommandRequest(ComponentId, 1); global::Improbable.Gdk.Tests.ComponentsWithNoFields.Empty.Serialization.Serialize(request.Payload, schemaCommandRequest.GetObject()); var requestId = connection.SendCommandRequest(request.TargetEntityId, new global::Improbable.Worker.Core.CommandRequest(schemaCommandRequest), request.TimeoutMillis, request.AllowShortCircuiting ? ShortCircuitParameters : null); cmdStorage.CommandRequestsInFlight[requestId.Id] = new CommandRequestStore <global::Improbable.Gdk.Tests.ComponentsWithNoFields.Empty>(entities[i], request.Payload, request.Context, request.RequestId); } requests.Clear(); } if (responses.Count > 0) { foreach (var response in responses) { var requestId = new global::Improbable.Worker.Core.RequestId <IncomingCommandRequest>(response.RequestId); if (response.FailureMessage != null) { // Send a command failure if the string is non-null. connection.SendCommandFailure(requestId, response.FailureMessage); continue; } var schemaCommandResponse = new global::Improbable.Worker.Core.SchemaCommandResponse(ComponentId, 1); global::Improbable.Gdk.Tests.ComponentsWithNoFields.Empty.Serialization.Serialize(response.Payload.Value, schemaCommandResponse.GetObject()); connection.SendCommandResponse(requestId, new global::Improbable.Worker.Core.CommandResponse(schemaCommandResponse)); } responses.Clear(); } } } chunks.Dispose(); } Profiler.EndSample(); }
public override void ExecuteReplication(ComponentGroup replicationGroup, ComponentSystemBase system, global::Improbable.Worker.Core.Connection connection) { Profiler.BeginSample("Connection"); var chunkArray = replicationGroup.CreateArchetypeChunkArray(Allocator.TempJob); var spatialOSEntityType = system.GetArchetypeChunkComponentType <SpatialEntityId>(true); var componentType = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component>(); var eventMyEventType = system.GetArchetypeChunkComponentType <EventSender.MyEvent>(true); foreach (var chunk in chunkArray) { var entityIdArray = chunk.GetNativeArray(spatialOSEntityType); var componentArray = chunk.GetNativeArray(componentType); var eventMyEventArray = chunk.GetNativeArray(eventMyEventType); for (var i = 0; i < componentArray.Length; i++) { var data = componentArray[i]; var eventsToSend = 0; var eventsMyEvent = eventMyEventArray[i].Events; eventsToSend += eventsMyEvent.Count; if (data.IsDataDirty() || eventsToSend > 0) { var update = new global::Improbable.Worker.Core.SchemaComponentUpdate(1105); Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Serialization.SerializeUpdate(data, update); // Serialize events var eventsObject = update.GetEvents(); if (eventsMyEvent.Count > 0) { foreach (var e in eventsMyEvent) { var obj = eventsObject.AddObject(1); global::Improbable.Gdk.Tests.AlternateSchemaSyntax.RandomDataType.Serialization.Serialize(e, obj); } eventsMyEvent.Clear(); } // Send serialized update over the wire connection.SendComponentUpdate(entityIdArray[i].EntityId, new global::Improbable.Worker.Core.ComponentUpdate(update)); data.MarkDataClean(); componentArray[i] = data; } } } chunkArray.Dispose(); Profiler.EndSample(); }