public void AcceptInJobWorks() { var serverDriver = new LocalNetworkDriver(new NetworkDataStreamParameter { size = 64 }); serverDriver.Bind(IPCManager.Instance.CreateEndPoint()); serverDriver.Listen(); var clientDriver = new LocalNetworkDriver(new NetworkDataStreamParameter { size = 64 }); /*var clientToServer =*/ clientDriver.Connect(serverDriver.LocalEndPoint()); clientDriver.ScheduleUpdate().Complete(); var serverToClient = new NativeArray <NetworkConnection>(1, Allocator.TempJob); var acceptJob = new AcceptJob { driver = serverDriver, connections = serverToClient }; Assert.IsFalse(serverToClient[0].IsCreated); acceptJob.Schedule(serverDriver.ScheduleUpdate()).Complete(); Assert.IsTrue(serverToClient[0].IsCreated); serverToClient.Dispose(); clientDriver.Dispose(); serverDriver.Dispose(); }
public void ReceiveInJobWorks() { var serverDriver = new LocalNetworkDriver(new NetworkDataStreamParameter { size = 64 }); serverDriver.Bind(IPCManager.Instance.CreateEndPoint()); serverDriver.Listen(); var clientDriver = new LocalNetworkDriver(new NetworkDataStreamParameter { size = 64 }); var clientToServer = clientDriver.Connect(serverDriver.LocalEndPoint()); WaitForConnected(clientDriver, serverDriver, clientToServer); var strmWriter = new DataStreamWriter(4, Allocator.Temp); strmWriter.Write(42); clientToServer.Send(clientDriver, strmWriter); strmWriter.Dispose(); clientDriver.ScheduleUpdate().Complete(); var serverToClient = new NativeArray <NetworkConnection>(1, Allocator.TempJob); var result = new NativeArray <int>(1, Allocator.TempJob); var recvJob = new ReceiveJob { driver = serverDriver, connections = serverToClient, result = result }; Assert.AreNotEqual(42, result[0]); var acceptJob = new AcceptJob { driver = serverDriver, connections = serverToClient }; recvJob.Schedule(serverDriver.ScheduleUpdate(acceptJob.Schedule())).Complete(); Assert.AreEqual(42, result[0]); result.Dispose(); serverToClient.Dispose(); clientDriver.Dispose(); serverDriver.Dispose(); }