Exemplo n.º 1
0
        public void StreamDataExchange_OneWayStream()
        {
            bool success   = false;
            bool completed = false;

            string message = GenerateMessage();

            var stream = new MemoryStream();

            var reading = new Task(async delegate()
            {
                try
                {
                    byte[] data = null;
                    while (data == null)
                    {
                        data = await StreamHandler.StreamReaderAsync(stream);
                        Thread.Sleep(5);
                    }
                    string receivedMessage = BinaryHandler.FromByteArray <string>(data);

                    success   = receivedMessage.Equals(message);
                    completed = true;
                }
                catch (Exception ex)
                {
                    Assert.Fail(ex.Message);
                    return;
                }
            });

            var writing = new Task(async delegate()
            {
                await StreamHandler.StreamWriterAsync(
                    stream,
                    StreamChanelMode.Oneway,
                    BinaryHandler.ToByteArray(message));
            });


            reading.Start();
            writing.Start();

            while (!completed)
            {
                Thread.Sleep(5);
            }

            stream.Dispose();

            Assert.IsTrue(success);
        }
Exemplo n.º 2
0
        public void Serizlize()
        {
            byte[] binary;
            try
            {
                binary = BinaryHandler.ToByteArray(new BlobType());
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
                return;
            }

            Assert.IsTrue(binary != null && binary.Length > 0);
        }
Exemplo n.º 3
0
        public void Deserialize()
        {
            byte[]   binary;
            BlobType blob;

            try
            {
                binary = BinaryHandler.ToByteArray(new BlobType()
                {
                    s = "DeserTest"
                });
                blob = BinaryHandler.FromByteArray <BlobType>(binary);
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
                return;
            }

            Assert.IsTrue(blob != null && blob.s.Equals("DeserTest"));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Writing asynchronicly binary data to stream.
        /// </summary>
        /// <param name="stream">Target stream.</param>
        /// <param name="nonBinaryData">Non binary object that would be shared via stream.</param>
        /// <returns>Asynchronous operation of data writing.</returns>
        public static async Task StreamWriterAsync(PipeStream stream, object nonBinaryData)
        {
            //var bs = BinaryHandler.ToMemoryStream(nonBinaryData);

            //// Write header.
            //await stream.WriteAsync(BitConverter.GetBytes(bs.Length), 0, 4);

            //await bs.CopyToAsync(stream);

            //await stream.FlushAsync();

            // Convert data to binary format.
            byte[] data = BinaryHandler.ToByteArray(nonBinaryData);

            // Write header.
            await stream.WriteAsync(BitConverter.GetBytes(data.Length), 0, 4);

            //// Write data.
            await stream.WriteAsync(data, 0, data.Length);

            // Send data to device.
            await stream.FlushAsync();
        }