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); } }
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); }
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); }