Program.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // See https://aka.ms/new-console-template for more information
  2. using System.IO.Abstractions;
  3. using qmonlib;
  4. using qmonlib.Test;
  5. using Quadarax.Foundation.Core.Logging;
  6. var logger = new ConsoleLogger();
  7. var cancel = new CancellationTokenSource();
  8. new Thread(() =>
  9. {
  10. OnStartReceiver(cancel.Token);
  11. }).Start();
  12. Console.WriteLine("Waiting for receiver starts...");
  13. Thread.Sleep(5000);
  14. using (var cli = new QMonClient("TST", QMonClientConfiuration.CreateDefault(), logger))
  15. {
  16. cli.Notify(new TestItem()
  17. {
  18. Age = 4,
  19. FirstName = "Adam",
  20. LastName = "Votruba"
  21. });
  22. cli.Notify(new TestItem()
  23. {
  24. Age = 47,
  25. FirstName = "Dalibor",
  26. LastName = "Votruba"
  27. });
  28. cli.Notify(new TestItem()
  29. {
  30. Age = 43,
  31. FirstName = "Dita",
  32. LastName = "Rychetská"
  33. });
  34. Console.WriteLine("Press any key to close...");
  35. Console.ReadKey();
  36. cancel.Cancel();
  37. }
  38. void OnGeneralReceived(MonGeneral general)
  39. {
  40. Console.WriteLine($"General received: {general.InstanceIdentifier} items count {general.Items.Count}");
  41. }
  42. void OnDataReceived(MonData[] data)
  43. {
  44. Console.WriteLine($"Data received: Count={data.Length}");
  45. }
  46. void OnStartReceiver(CancellationToken cancelToken)
  47. {
  48. using (var rcv = new QMonReceiver( new FileSystem(), QMonReceiverConfiguration.CreateDefault(), logger, OnGeneralReceived, OnDataReceived))
  49. {
  50. while (!cancelToken.IsCancellationRequested)
  51. Thread.Sleep(100);
  52. }
  53. Console.WriteLine("Receiver stopped");
  54. }