Beispiel #1
0
        static void Main(string[] args)
        {
            var pipeName = new SimpleStringPipeName(
                name: "Example",
                side: Side.Out);
            var bus = new NamedPipeBus(pipeName: pipeName);

            new ProcessBHost(bus);

            Console.WriteLine($"Process B Host Runing");
            Console.WriteLine("type exit to close");
            Console.WriteLine("type help for command list");
            var exit = false;

            do
            {
                var cmd = Console.ReadLine();
                if (string.IsNullOrWhiteSpace(cmd))
                {
                    continue;
                }

                switch (cmd.ToLower())
                {
                case "exit":
                    exit = true;
                    break;

                case "ping":
                    bus.Publish(new Ping());
                    break;

                case "help":
                case "?":
                    Console.WriteLine("exit: exit program");
                    Console.WriteLine("ping: publish ping message");
                    Console.WriteLine("cls: Clear Screen");
                    break;

                case "cls":
                    Console.Clear();
                    break;
                }
            } while (!exit);

            bus.Dispose();
        }
Beispiel #2
0
 private void ConnectToService()
 {
     try
     {
         //create bus with service...
         var pipeName = new SimpleStringPipeName(
             name: "gazugafanFingerpass",
             side: Side.Out
             );
         bus         = new NamedPipeBus(pipeName: pipeName);
         _busHandler = new BusHandler(bus, this);
     }
     catch (Exception)
     {
         MessageBox.Show("There was a problem connecting to the FingerPass Windows service. Maybe another user is logged on and using FingerPass already?", "FingerPass", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Beispiel #3
0
        public void RecreateBusConnection()
        {
            //EventLog.WriteEntry("RecreateBusConnection");

            if (bus != null)
            {
                //EventLog.WriteEntry("disposing existing bus");
                bus.Dispose();
            }

            //open bus with tray...
            var pipeName = new SimpleStringPipeName(
                name: "gazugafanFingerpass",
                side: Side.In
                );

            bus         = new NamedPipeBus(pipeName: pipeName);
            _busHandler = new BusHandler(bus, this);
        }
        private void can_exchange_messages()
        {
            var timeout      = TimeSpan.FromSeconds(3);
            var processADone = new ManualResetEventSlim(false);
            var processBDone = new ManualResetEventSlim(false);

            // Process A Simulation
            new Thread(() =>
            {
                var pipeName = new SimpleStringPipeName(
                    name: "UnitTest",
                    side: Side.Out);
                var bus    = new NamedPipeBus(pipeName: pipeName);
                var inHost = new TestHandler(
                    handleStringContent: msg => {
                    _logger.WriteLine($"[ProcessA] Received new message of type {msg.GetType().Name}: {msg.Content}");
                },
                    handleTestMessage: msg => {
                    _logger.WriteLine($"[ProcessA] Received new message of type {msg.GetType().Name}");
                    processADone.Set();
                }
                    );

                bus.Subscribe(inHost);
                bus.Publish(new StringContentMessage("Message from In"));
                bus.Publish(new TestMessage());
            })
            {
                IsBackground = true
            }
            .Start();

            // Process B Simulation
            new Thread(() =>
            {
                var pipeName = new SimpleStringPipeName(name: "UnitTest");
                var bus      = new NamedPipeBus(pipeName: pipeName);

                var outHost = new TestHandler(
                    handleStringContent: msg => {
                    _logger.WriteLine($"[ProcessB] Received new message of type {msg.GetType().Name}: {msg.Content}");
                },
                    handleTestMessage: msg => {
                    _logger.WriteLine($"[ProcessB] Received new message of type {msg.GetType().Name}");
                    processBDone.Set();
                }
                    );

                bus.Subscribe(outHost);
                bus.Publish(new StringContentMessage("Message from Out"));
                bus.Publish(new TestMessage());
            })
            {
                IsBackground = true
            }
            .Start();

            processBDone.Wait(timeout: timeout);
            processADone.Wait(timeout: timeout);

            Assert.True(
                condition: processBDone.IsSet,
                userMessage: "Failed to receive message from 'ProcessA'"
                );

            Assert.True(
                condition: processADone.IsSet,
                userMessage: "Failed to receive message from 'ProcessB'"
                );
        }