コード例 #1
0
ファイル: ActivationData.cs プロジェクト: supwar/orleans
        internal bool TryAddExtension(IGrainExtensionMethodInvoker invoker, IGrainExtension extension)
        {
            if (extensionInvoker == null)
            {
                extensionInvoker = new ExtensionInvoker();
            }

            return(extensionInvoker.TryAddExtension(invoker, extension));
        }
コード例 #2
0
ファイル: ActivationData.cs プロジェクト: caomw/orleans
            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;
            }
コード例 #3
0
ファイル: ActivationData.cs プロジェクト: supwar/orleans
            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);
            }
コード例 #4
0
ファイル: ActivationData.cs プロジェクト: caomw/orleans
        internal bool TryAddExtension(IGrainExtensionMethodInvoker invoker, IGrainExtension extension)
        {
            if(extensionInvoker == null)
                extensionInvoker = new ExtensionInvoker();

            return extensionInvoker.TryAddExtension(invoker, extension);
        }