public static List <KeyValuePair <int, T> > RegisterProcessingJob <T>(this IUsesMARSTrackableData <T> obj, ProcessingJobType jobType)
     where T : IMRTrackable
 {
     return(IUsesMARSTrackableDataMethods <T> .RegisterProcessingJob(jobType));
 }
 public static int UnregisterProcessingJob <T>(this IUsesMARSTrackableData <T> obj, ProcessingJobType jobType)
     where T : IMRTrackable
 {
     return(IUsesMARSTrackableDataMethods <T> .UnregisterProcessingJob(jobType));
 }
 public static ICollection <KeyValuePair <int, T> > GetCollection <T>(this IUsesMARSTrackableData <T> obj)
     where T : IMRTrackable
 {
     return(IUsesMARSTrackableDataMethods <T> .GetCollection());
 }
 public static T GetIdValue <T>(this IUsesMARSTrackableData <T> obj, int dataId) where T : IMRTrackable
 {
     return(IUsesMARSTrackableDataMethods <T> .GetIdValue(dataId));
 }
 public static int RemoveData <T>(this IUsesMARSTrackableData <T> obj, T value) where T : IMRTrackable
 {
     return(IUsesMARSTrackableDataMethods <T> .RemoveData(value));
 }
 public static void AddData <T>(this IUsesMARSTrackableData <T> obj, int dataId, T value) where T : IMRTrackable
 {
     IUsesMARSTrackableDataMethods <T> .AddDataById(dataId, value);
 }
 /// <summary>
 /// Gets the value for a particular type of data for a given data id
 /// </summary>
 /// <typeparam name="T">The type of data to return</typeparam>
 /// <param name="dataUser">The functionality subscriber that will actually do the data lookup</param>
 /// <returns>The typed value for the given data id</returns>
 public T ResolveValue <T>(IUsesMARSTrackableData <T> dataUser)
     where T : IMRTrackable
 {
     return(dataUser.GetIdValue(m_DataId));
 }