Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

61 рядки
2.5 KiB

  1. using JT808.Gateway.Abstractions;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. namespace JT808.Gateway.Traffic
  7. {
  8. public static class JT808TrafficServiceExtensions
  9. {
  10. /// <summary>
  11. /// 消息流量统计服务(不同的消费者实例)
  12. /// </summary>
  13. /// <param name="jT808ClientBuilder"></param>
  14. /// <returns></returns>
  15. public static IJT808ClientBuilder AddTraffic<TIJT808Traffic>(this IJT808ClientBuilder jT808ClientBuilder)
  16. where TIJT808Traffic:IJT808Traffic
  17. {
  18. jT808ClientBuilder.JT808Builder.Services.AddSingleton(typeof(IJT808Traffic), typeof(TIJT808Traffic));
  19. jT808ClientBuilder.JT808Builder.Services.AddHostedService<JT808TrafficServiceHostedService>();
  20. return jT808ClientBuilder;
  21. }
  22. /// <summary>
  23. /// 消息流量统计服务(不同的消费者实例)
  24. /// </summary>
  25. /// <param name="jT808ClientBuilder"></param>
  26. /// <returns></returns>
  27. public static IJT808ClientBuilder AddTraffic(this IJT808ClientBuilder jT808ClientBuilder)
  28. {
  29. jT808ClientBuilder.JT808Builder.Services.AddSingleton(typeof(IJT808Traffic), typeof(JT808TrafficDefault));
  30. jT808ClientBuilder.JT808Builder.Services.AddHostedService<JT808TrafficServiceHostedService>();
  31. return jT808ClientBuilder;
  32. }
  33. /// <summary>
  34. /// 消息流量统计服务(不同的消费者实例)
  35. /// </summary>
  36. /// <param name="jT808NormalGatewayBuilder"></param>
  37. /// <returns></returns>
  38. public static IJT808NormalGatewayBuilder AddTraffic<TIJT808Traffic>(this IJT808NormalGatewayBuilder jT808NormalGatewayBuilder)
  39. where TIJT808Traffic : IJT808Traffic
  40. {
  41. jT808NormalGatewayBuilder.JT808Builder.Services.AddSingleton(typeof(IJT808Traffic), typeof(TIJT808Traffic));
  42. return jT808NormalGatewayBuilder;
  43. }
  44. /// <summary>
  45. /// 消息流量统计服务(不同的消费者实例)
  46. /// </summary>
  47. /// <param name="jT808NormalGatewayBuilder"></param>
  48. /// <returns></returns>
  49. public static IJT808NormalGatewayBuilder AddTraffic(this IJT808NormalGatewayBuilder jT808NormalGatewayBuilder)
  50. {
  51. jT808NormalGatewayBuilder.JT808Builder.Services.AddSingleton(typeof(IJT808Traffic), typeof(JT808TrafficDefault));
  52. return jT808NormalGatewayBuilder;
  53. }
  54. }
  55. }