public static void UnregisterProvider <T>(IDatumAccessor <T> provider) //nothrow { if (provider != null) { lock (m_tableProviders) { uint key = Locate(provider); m_tableProviders[key].Remove(provider); } } }
static bool IsProviderRegistered <T>(IDatumAccessor <T> provider) { if (provider == null) { return(false); } lock (m_tableProviders) { return(Locate(provider) != 0); } }
//private: static uint Locate <T>(IDatumAccessor <T> provider) { foreach (uint key in m_tableProviders.Keys) { if (m_tableProviders[key].Contains(provider)) { return(key); } } return(0); }
public static void RegisterProvider <T>(IDatumAccessor <T> provider, IDatumAccessor <T> dpSame) //nothrow { Debug.Assert(provider != null); Debug.Assert(dpSame != null); lock (m_tableProviders) { Debug.Assert(IsProviderRegistered(dpSame)); uint tblID = Locate(dpSame); m_tableProviders[tblID].Add(provider); } }
public static void RegisterProvider <T>(IDatumAccessor <T> provider, uint tblID) //nothrow { Debug.Assert(provider != null); lock (m_tableProviders) { if (!m_tableProviders.ContainsKey(tblID)) { m_tableProviders.Add(tblID, new List <object>()); } m_tableProviders[tblID].Add(provider); } }