Esempio n. 1
0
        public void ExceptionThrowing()
        {
            SmartThreadPool _smartThreadPool = new SmartThreadPool();

            DivArgs divArgs = new DivArgs();

            divArgs.x = 10;
            divArgs.y = 0;

            IWorkItemResult wir =
                _smartThreadPool.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs);

            try
            {
                wir.GetResult();
            }
            catch (WorkItemResultException wire)
            {
                Assert.IsTrue(wire.InnerException is DivideByZeroException);
                return;
            }
            catch (Exception e)
            {
                e.GetHashCode();
                Assert.Fail();
            }
            Assert.Fail();
        }
Esempio n. 2
0
        public void ExceptionThrowing()
        {
            STP             smartThreadPool = new STP();
            IWorkItemsGroup workItemsGroup  = smartThreadPool.CreateWorkItemsGroup(int.MaxValue);

            DivArgs divArgs = new DivArgs
            {
                x = 10,
                y = 0
            };

            IWorkItemResult wir =
                workItemsGroup.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs);

            try
            {
                wir.GetResult();
            }
            catch (WorkItemResultException wire)
            {
                Assert.IsTrue(wire.InnerException is DivideByZeroException);
                return;
            }
            catch (Exception e)
            {
                e.GetHashCode();
                Assert.Fail();
            }
            Assert.Fail();
        }
Esempio n. 3
0
        public void DoWork()
        {
            SmartThreadPool smartThreadPool = new SmartThreadPool();

            DivArgs divArgs = new DivArgs();

            divArgs.x = 10;
            divArgs.y = 0;

            IWorkItemResult wir =
                smartThreadPool.QueueWorkItem(new
                                              WorkItemCallback(this.DoDiv), divArgs);

            Exception e;
            object    obj = wir.GetResult(out e);

            // e contains the expetion that DoDiv threw
            if (null == e)
            {
                int result = (int)obj;
            }
            else
            {
                // Do something with the exception
            }

            smartThreadPool.Shutdown();
        }
Esempio n. 4
0
        public void ExceptionReturning()
        {
            bool success = true;

            SmartThreadPool _smartThreadPool = new SmartThreadPool();

            DivArgs divArgs = new DivArgs();

            divArgs.x = 10;
            divArgs.y = 0;

            IWorkItemResult wir =
                _smartThreadPool.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs);

            Exception e = null;

            try
            {
                wir.GetResult(out e);
            }
            catch (Exception ex)
            {
                ex.GetHashCode();
                success = false;
            }

            Assert.IsTrue(success);
            Assert.IsTrue(e is DivideByZeroException);
        }
Esempio n. 5
0
        public void Div(DivArgs request, IObserver <DivReply> responseObserver)
        {
            var response = DivInternal(request);

            responseObserver.OnNext(response);
            responseObserver.OnCompleted();
        }
Esempio n. 6
0
        public void ExceptionReturning()
        {
            bool success = true;

            STP             smartThreadPool = new STP();
            IWorkItemsGroup workItemsGroup  = smartThreadPool.CreateWorkItemsGroup(int.MaxValue);

            DivArgs divArgs = new DivArgs
            {
                x = 10,
                y = 0
            };

            IWorkItemResult wir =
                workItemsGroup.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs);

            Exception e = null;

            try
            {
                wir.GetResult(out e);
            }
            catch (Exception ex)
            {
                ex.GetHashCode();
                success = false;
            }

            Assert.IsTrue(success);
            Assert.IsTrue(e is DivideByZeroException);
        }
		public void DoWork() 
		{ 
			SmartThreadPool smartThreadPool = new SmartThreadPool();

			DivArgs divArgs = new DivArgs();
			divArgs.x = 10;
			divArgs.y = 0;

			IWorkItemResult wir = 
				smartThreadPool.QueueWorkItem(new 
					WorkItemCallback(this.DoDiv), divArgs);

			Exception e;
			object obj = wir.GetResult(out e);
			// e contains the expetion that DoDiv threw
			if(null == e)
			{
				int result = (int)obj;
			}
			else
			{
				// Do something with the exception
			}

			smartThreadPool.Shutdown();
		} 
        public void ExceptionThrowing()
        {
            SmartThreadPool _smartThreadPool = new SmartThreadPool();

            DivArgs divArgs = new DivArgs();
            divArgs.x = 10;
            divArgs.y = 0;

            IWorkItemResult wir =
                _smartThreadPool.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs);

            try
            {
                wir.GetResult();
            }
            catch(WorkItemResultException wire)
            {
                Assert.IsTrue(wire.InnerException is DivideByZeroException);
                return;
            }
            catch(Exception e)
            {
                e.GetHashCode();
                Assert.Fail();
            }
            Assert.Fail();
        }
        public void ExceptionReturning()
        {
            bool success = true;

            SmartThreadPool _smartThreadPool = new SmartThreadPool();

            DivArgs divArgs = new DivArgs();
            divArgs.x = 10;
            divArgs.y = 0;

            IWorkItemResult wir =
                _smartThreadPool.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs);

            Exception e = null;
            try
            {
                wir.GetResult(out e);
            }
            catch (Exception ex)
            {
                ex.GetHashCode();
                success = false;
            }

            Assert.IsTrue(success);
            Assert.IsTrue(e is DivideByZeroException);
        }
Esempio n. 10
0
        static DivReply DivInternal(DivArgs args)
        {
            long quotient  = args.Dividend / args.Divisor;
            long remainder = args.Dividend % args.Divisor;

            return(new DivReply.Builder {
                Quotient = quotient, Remainder = remainder
            }.Build());
        }
        static DivReply DivInternal(DivArgs args)
        {
            if (args.Divisor == 0)
            {
                // One can finish the RPC with non-ok status by throwing RpcException instance.
                // Alternatively, resulting status can be set using ServerCallContext.Status
                throw new RpcException(new Status(StatusCode.InvalidArgument, "Division by zero"));
            }

            long quotient = args.Dividend / args.Divisor;
            long remainder = args.Dividend % args.Divisor;
            return new DivReply { Quotient = quotient, Remainder = remainder };
        }
 public override Task<DivReply> Div(DivArgs request, ServerCallContext context)
 {
     return Task.FromResult(DivInternal(request));
 }
Esempio n. 13
0
 public Task <DivReply> Div(ServerCallContext context, DivArgs request)
 {
     return(Task.FromResult(DivInternal(request)));
 }
Esempio n. 14
0
 public Task<DivReply> DivAsync(DivArgs request, CancellationToken token = default(CancellationToken))
 {
     var call = new Grpc.Core.Call<DivArgs, DivReply>(divMethod, channel);
     return Calls.AsyncUnaryCall(call, request, token);
 }
Esempio n. 15
0
            public DivReply Div(DivArgs request, CancellationToken token = default(CancellationToken))
            {
                var call = CreateCall(__ServiceName, __Method_Div);

                return(Calls.BlockingUnaryCall(call, request, token));
            }
Esempio n. 16
0
            public DivReply Div(DivArgs request, CancellationToken token = default(CancellationToken))
            {
                var call = new Grpc.Core.Call <DivArgs, DivReply>(divMethod, channel);

                return(Calls.BlockingUnaryCall(call, request, token));
            }
Esempio n. 17
0
            public Task <DivReply> DivAsync(DivArgs request, CancellationToken token = default(CancellationToken))
            {
                var call = new Grpc.Core.Call <DivArgs, DivReply>(divMethod, channel);

                return(Calls.AsyncUnaryCall(call, request, token));
            }
Esempio n. 18
0
        private object DoDiv(object state)
        {
            DivArgs divArgs = (DivArgs)state;

            return(divArgs.x / divArgs.y);
        }
Esempio n. 19
0
 static DivReply DivInternal(DivArgs args)
 {
     long quotient = args.Dividend / args.Divisor;
     long remainder = args.Dividend % args.Divisor;
     return new DivReply.Builder { Quotient = quotient, Remainder = remainder }.Build();
 }
Esempio n. 20
0
            public Task <DivReply> DivAsync(DivArgs request, CancellationToken token = default(CancellationToken))
            {
                var call = CreateCall(__ServiceName, __Method_Div);

                return(Calls.AsyncUnaryCall(call, request, token));
            }
Esempio n. 21
0
 public DivReply Div(DivArgs request, CancellationToken token = default(CancellationToken))
 {
     var call = new Grpc.Core.Call<DivArgs, DivReply>(divMethod, channel);
     return Calls.BlockingUnaryCall(call, request, token);
 }