public void DataAndTypeAreReadWriteInvariant() { var pipe = PipeName.New(); var outbox = new [] { BinaryMessage.Compose("Elm1", writer => { }), BinaryMessage.Compose("Elm1", writer => { }), BinaryMessage.Compose("Elm2", writer => writer.Write(new byte[] { 13, 37 })), BinaryMessage.Compose("Elm3", writer => writer.Write(new byte[] { 19, 11 })), BinaryMessage.Compose("Elm4", writer => { }) }; pipe.BeginWritingMessages("Test", ex => Assert.Fail("Write failed: " + ex.Message), outbox.ToObservable()); var inbox = pipe.ReadMessages("test").RefCount().ToEnumerable().Take(outbox.Length).ToArray(); Assert.AreEqual(outbox.Length, inbox.Length); for (int i = 0; i < outbox.Length; i++) { Assert.AreEqual(outbox[i].Type, inbox[i].Type); CollectionAssert.AreEqual(outbox[i].DumpBytes(), inbox[i].DumpBytes()); } }
public static IBinaryMessage Compose(OpenGlVersion openGlVersion) { return(BinaryMessage.Compose(Type, writer => { writer.Write(openGlVersion.GlVersion); writer.Write(openGlVersion.GlVendor); writer.Write(openGlVersion.GlRenderer); })); }
public static IBinaryMessage Compose(SizeData sizeData) { return(BinaryMessage.Compose(Name, writer => { writer.Write((int)sizeData.Size.Width); writer.Write((int)sizeData.Size.Height); writer.Write((double)sizeData.Density); })); }
public static IBinaryMessage Compose(NSEvent nsEvent) { return(BinaryMessage.Compose(Name, writer => { try { var data = NSKeyedArchiver.ArchivedDataWithRootObject(nsEvent); var managedData = new byte[data.Length]; Marshal.Copy(data.Bytes, managedData, 0, (int)data.Length); writer.Write((int)data.Length); writer.Write(managedData); } catch (Exception e) { Console.WriteLine(e); } })); }
public static IBinaryMessage Compose(int delta) { return(BinaryMessage.Compose(Type, writer => writer.Write(delta))); }
public static IBinaryMessage Compose(FocusState focusState) { return(BinaryMessage.Compose(Type, writer => writer.Write((int)focusState))); }
public static IBinaryMessage Compose(Keys keys) { return(BinaryMessage.Compose(Type, writer => writer.Write((int)keys))); }
public static IBinaryMessage Compose(IntPtr hwnd) { return(BinaryMessage.Compose(Type, writer => writer.Write(hwnd.ToInt32()))); }
public static IBinaryMessage Compose(int surfaceId) { return(BinaryMessage.Compose(Name, writer => writer.Write(surfaceId))); }
public static IBinaryMessage Compose(bool show) { return(BinaryMessage.Compose(Type, writer => writer.Write(show))); }
public static IBinaryMessage Compose(int i) { return(BinaryMessage.Compose(Name, writer => { writer.Write(i); })); }