internal bool TryAddExtension(IGrainExtensionMethodInvoker invoker, IGrainExtension extension) { if (extensionInvoker == null) { extensionInvoker = new ExtensionInvoker(); } return(extensionInvoker.TryAddExtension(invoker, extension)); }
private Dictionary<int, Tuple<IGrainExtension, IGrainExtensionMethodInvoker>> extensionMap; // key is the extension interface ID /// <summary> /// Try to add an extension for the specific interface ID. /// Fail and return false if there is already an extension for that interface ID. /// Note that if an extension invoker handles multiple interface IDs, it can only be associated /// with one of those IDs when added, and so only conflicts on that one ID will be detected and prevented. /// </summary> /// <param name="invoker"></param> /// <param name="handler"></param> /// <returns></returns> internal bool TryAddExtension(IGrainExtensionMethodInvoker invoker, IGrainExtension handler) { if (extensionMap == null) { extensionMap = new Dictionary<int, Tuple<IGrainExtension, IGrainExtensionMethodInvoker>>(1); } if (extensionMap.ContainsKey(invoker.InterfaceId)) return false; extensionMap.Add(invoker.InterfaceId, new Tuple<IGrainExtension, IGrainExtensionMethodInvoker>(handler, invoker)); return true; }
private Dictionary <int, Tuple <IGrainExtension, IGrainExtensionMethodInvoker> > extensionMap; // key is the extension interface ID /// <summary> /// Try to add an extension for the specific interface ID. /// Fail and return false if there is already an extension for that interface ID. /// Note that if an extension invoker handles multiple interface IDs, it can only be associated /// with one of those IDs when added, and so only conflicts on that one ID will be detected and prevented. /// </summary> /// <param name="invoker"></param> /// <param name="handler"></param> /// <returns></returns> internal bool TryAddExtension(IGrainExtensionMethodInvoker invoker, IGrainExtension handler) { if (extensionMap == null) { extensionMap = new Dictionary <int, Tuple <IGrainExtension, IGrainExtensionMethodInvoker> >(1); } if (extensionMap.ContainsKey(invoker.InterfaceId)) { return(false); } extensionMap.Add(invoker.InterfaceId, new Tuple <IGrainExtension, IGrainExtensionMethodInvoker>(handler, invoker)); return(true); }
internal bool TryAddExtension(IGrainExtensionMethodInvoker invoker, IGrainExtension extension) { if(extensionInvoker == null) extensionInvoker = new ExtensionInvoker(); return extensionInvoker.TryAddExtension(invoker, extension); }