EventMessages.cs 932 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. using SIASUN.Autopilot.EventMessage;
  2. using System;
  3. using System.Threading;
  4. namespace SIASUN.Autopilot.Device.EventMessage
  5. {
  6. public sealed class EventMessages
  7. {
  8. public static EventMessages Instance = null;
  9. public event EventHandler<MessageEventArgs> newMessages;
  10. private EventMessages()
  11. {
  12. }
  13. public static EventMessages GetSingleton()
  14. {
  15. if (Instance != null)
  16. return Instance;
  17. EventMessages temp = new EventMessages();
  18. Interlocked.CompareExchange(ref Instance, temp, null);
  19. return Instance;
  20. }
  21. public void Publish(string mfrom, string mtype, string message)
  22. {
  23. OnNewMessage(new MessageEventArgs(mfrom, mtype, message));
  24. }
  25. private void OnNewMessage(MessageEventArgs e)
  26. {
  27. e.Raise(this, ref newMessages);
  28. }
  29. }
  30. }