Example #1
0
        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());
            }
        }
Example #2
0
 public static IBinaryMessage Compose(OpenGlVersion openGlVersion)
 {
     return(BinaryMessage.Compose(Type, writer =>
     {
         writer.Write(openGlVersion.GlVersion);
         writer.Write(openGlVersion.GlVendor);
         writer.Write(openGlVersion.GlRenderer);
     }));
 }
Example #3
0
 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);
     }));
 }
Example #4
0
        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)));
 }
Example #7
0
 public static IBinaryMessage Compose(Keys keys)
 {
     return(BinaryMessage.Compose(Type, writer => writer.Write((int)keys)));
 }
Example #8
0
 public static IBinaryMessage Compose(IntPtr hwnd)
 {
     return(BinaryMessage.Compose(Type, writer =>
                                  writer.Write(hwnd.ToInt32())));
 }
Example #9
0
 public static IBinaryMessage Compose(int surfaceId)
 {
     return(BinaryMessage.Compose(Name, writer =>
                                  writer.Write(surfaceId)));
 }
Example #10
0
 public static IBinaryMessage Compose(bool show)
 {
     return(BinaryMessage.Compose(Type, writer => writer.Write(show)));
 }
Example #11
0
 public static IBinaryMessage Compose(int i)
 {
     return(BinaryMessage.Compose(Name, writer => { writer.Write(i); }));
 }