Data.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using Aitex.Core.RT.DataCenter;
  2. using Aitex.Core.Util;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace Common.DataCenter
  9. {
  10. public static class DATA
  11. {
  12. public static string ModuleKey(string module, string key)
  13. {
  14. return string.Format("{0}.{1}", module, key);
  15. }
  16. public static ICommonData InnerDataManager { set; private get; }
  17. public static void Subscribe<T>(T instance, string keyPrefix = null) where T : class
  18. {
  19. if (InnerDataManager != null)
  20. InnerDataManager.Subscribe<T>(instance, keyPrefix);
  21. }
  22. public static void Subscribe(string key, Func<object> getter, SubscriptionAttribute.FLAG flag = SubscriptionAttribute.FLAG.SaveDB)
  23. {
  24. if (InnerDataManager != null)
  25. InnerDataManager.Subscribe(key, getter, flag);
  26. }
  27. public static void Subscribe(object key, Func<object> getter, SubscriptionAttribute.FLAG flag = SubscriptionAttribute.FLAG.SaveDB)
  28. {
  29. if (InnerDataManager != null)
  30. InnerDataManager.Subscribe(key.ToString(), getter, flag);
  31. }
  32. public static void Subscribe(string module, string key, Func<object> getter, SubscriptionAttribute.FLAG flag = SubscriptionAttribute.FLAG.SaveDB)
  33. {
  34. if (InnerDataManager != null)
  35. InnerDataManager.Subscribe(string.Format("{0}.{1}", module, key), getter, flag);
  36. }
  37. public static void Subscribe(string moduleKey, DataItem<object> dataItem, SubscriptionAttribute.FLAG flag = SubscriptionAttribute.FLAG.SaveDB)
  38. {
  39. if (InnerDataManager != null)
  40. InnerDataManager.Subscribe(moduleKey, dataItem, flag);
  41. }
  42. public static object Poll(string paramName)
  43. {
  44. return (InnerDataManager == null) ? null : InnerDataManager.Poll(paramName);
  45. }
  46. public static object Poll(string module, string paramName)
  47. {
  48. return (InnerDataManager == null) ? null : InnerDataManager.Poll(string.Format("{0}.{1}", module, paramName));
  49. }
  50. public static T Poll<T>(string module, string paramName)
  51. {
  52. return (T)InnerDataManager.Poll(string.Format("{0}.{1}", module, paramName));
  53. }
  54. public static Dictionary<string, object> PollData(IEnumerable<string> keys)
  55. {
  56. return (InnerDataManager == null) ? null : InnerDataManager.PollData(keys);
  57. }
  58. public static void Traverse(object instance, string keyPrefix)
  59. {
  60. if (InnerDataManager != null)
  61. InnerDataManager.Traverse(instance, keyPrefix);
  62. }
  63. public static SortedDictionary<string, Func<object>> GetDBRecorderList()
  64. {
  65. return (InnerDataManager == null) ? null : InnerDataManager.GetDBRecorderList();
  66. }
  67. }
  68. }