コード例 #1
0
        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();
        }
コード例 #2
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            //
            inputDeps = new CloseJob
            {
                commandBuffer = endBarrier.CreateCommandBuffer().ToConcurrent(),
                driver        = driver,
            }
            .ScheduleSingle(this, inputDeps);


            //
            inputDeps = _driver.ScheduleUpdate(inputDeps);


            //
            if (_listening)
            {
                inputDeps = new AcceptJob()
                {
                    NetworkInBuffer            = typeof(NetworkInBuffer),
                    NetworkReliableOutBuffer   = typeof(NetworkReliableOutBuffer),
                    NetworkUnreliableOutBuffer = typeof(NetworkUnreliableOutBuffer),
                    endCommandBuffer           = endBarrier.CreateCommandBuffer(),
                    driver = _driver,
                }
                .Schedule(inputDeps);


#if UNITY_EDITOR
                OnRename();
#endif
            }
            else if (connectEntity != Entity.Null)
            {
                OnClose();
            }


            endBarrier.AddJobHandleForProducer(inputDeps);
            return(inputDeps);
        }
コード例 #3
0
        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();
        }
コード例 #4
0
ファイル: CleanerController.cs プロジェクト: goldajoy/project
        public object acceptjob(AcceptJob model)
        {
            bool   status  = false;
            string message = "Failed";

            try
            {
                Tuple <bool, string> t = _repository.acceptjob(model);
                status  = t.Item1;
                message = t.Item2;
                if (status)
                {
                    return(Json(new { Status = status, Message = message }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(new { Status = status, Message = message }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                return(new { Status = status, Message = ex.Message });
            }
        }