示例#1
0
        public static MemoryModel Parse(WordReader reader, uint wordCount)
        {
            var id = (Enumerant)reader.ReadWord();

            switch (id)
            {
            case Enumerant.Simple:
                return(SimpleImpl.Parse(reader, wordCount - 1));

            case Enumerant.GLSL450:
                return(GLSL450Impl.Parse(reader, wordCount - 1));

            case Enumerant.OpenCL:
                return(OpenCLImpl.Parse(reader, wordCount - 1));

            case Enumerant.Vulkan:
                return(VulkanImpl.Parse(reader, wordCount - 1));

            //VulkanKHR has the same id as another value in enum.
            //case Enumerant.VulkanKHR :
            //    return VulkanKHR.Parse(reader, wordCount - 1);
            default:
                throw new IndexOutOfRangeException("Unknown MemoryModel " + id);
            }
        }
示例#2
0
        public void Should_work_through_a_channel_network()
        {
            var received = new FutureChannel <Request <Simple> >();

            UntypedChannel channel = new ChannelAdapter();

            channel.Connect(x => x.AddChannel(received));

            var simpleImpl = new SimpleImpl();

            channel.Send(new RequestImpl <SimpleImpl>(null, simpleImpl));

            received.IsCompleted.ShouldBeTrue();
            received.Value.ShouldNotBeNull();
            received.Value.Body.ShouldEqual(simpleImpl);
        }
示例#3
0
        public void Should_work_through_a_channel_network()
        {
            var received = new FutureChannel<Request<Simple>>();

            UntypedChannel channel = new ChannelAdapter();
            channel.Connect(x => x.AddChannel(received));

            var simpleImpl = new SimpleImpl();
            channel.Send(new RequestImpl<SimpleImpl>(null, simpleImpl));

            received.IsCompleted.ShouldBeTrue();
            received.Value.ShouldNotBeNull();
            received.Value.Body.ShouldEqual(simpleImpl);
        }