• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# IAddressable类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中IAddressable的典型用法代码示例。如果您正苦于以下问题:C# IAddressable类的具体用法?C# IAddressable怎么用?C# IAddressable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



IAddressable类属于命名空间,在下文中一共展示了IAddressable类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: RegisterCancellationTokens

        /// <summary>
        /// Adds CancellationToken to the grain extension
        /// so that it can be cancelled through remote call to the CancellationSourcesExtension.
        /// </summary>
        /// <param name="target"></param>
        /// <param name="request"></param>
        /// <param name="logger"></param>
        internal static void RegisterCancellationTokens(IAddressable target, InvokeMethodRequest request, Logger logger)
        {
            for (var i = 0; i < request.Arguments.Length; i++)
            {
                var arg = request.Arguments[i];
                if (!(arg is GrainCancellationToken)) continue;
                var grainToken = ((GrainCancellationToken) request.Arguments[i]);

                CancellationSourcesExtension cancellationExtension;
                if (!SiloProviderRuntime.Instance.TryGetExtensionHandler(out cancellationExtension))
                {
                    cancellationExtension = new CancellationSourcesExtension();
                    if (!SiloProviderRuntime.Instance.TryAddExtension(cancellationExtension))
                    {
                        logger.Error(
                            ErrorCode.CancellationExtensionCreationFailed,
                            $"Could not add cancellation token extension to: {target}");
                        return;
                    }
                }

                // Replacing the half baked GrainCancellationToken that came from the wire with locally fully created one.
                request.Arguments[i] = cancellationExtension.RecordCancellationToken(grainToken.Id, grainToken.IsCancellationRequested);
            }
        }
开发者ID:Rejendo,项目名称:orleans,代码行数:32,代码来源:CancellationSourcesExtension.cs


示例2: M6502

 public M6502(IAddressable mem)
 {
     this.mem = mem;
     InstallOpcodes();
     Clock = 0;
     RunClocks = 0;
     RunClocksMultiple = 1;
     P = 1 << 5;
 }
开发者ID:BackupTheBerlios,项目名称:maria7800-svn,代码行数:9,代码来源:M6502.cs


示例3: Invoke

        public Task<object> Invoke(IAddressable grain, InvokeMethodRequest request)
        {
            var interceptor = grain as IGrainInvokeInterceptor;
            if (interceptor != null)
            {
                var methodInfo = this.GetMethodInfo(request.MethodId);
                return interceptor.Invoke(methodInfo, request, this.invoker);
            }

            return this.invoker.Invoke(grain, request);
        }
开发者ID:PaulNorth,项目名称:orleans,代码行数:11,代码来源:InterceptedMethodInvoker.cs


示例4: DeleteObjectReference

        public void DeleteObjectReference(IAddressable obj)
        {
            if (!(obj is GrainReference))
                throw new ArgumentException("Argument reference is not a grain reference.");

            var reference = (GrainReference) obj;
            LocalObjectData ignore;
            if (!localObjects.TryRemove(reference.ObserverId, out ignore))
                throw new ArgumentException("Reference is not associated with a local object.", "reference");
        }
开发者ID:randa1,项目名称:orleans,代码行数:10,代码来源:OutsideRuntimeClient.cs


示例5: Cast

 public static IClient Cast(IAddressable grainRef)
 {
     
     return (IClient) GrainReference.CastInternal(typeof(IClient), (GrainReference gr) => { return new ClientReference(gr);}, grainRef, 523268002);
 }
开发者ID:rikace,项目名称:Orleans.PingPong,代码行数:5,代码来源:orleans.codegen.cs


示例6: Invoke

 public async System.Threading.Tasks.Task<Object> Invoke(IAddressable grain, int interfaceId, int methodId, object[] arguments)
 {
         if (grain == null) throw new System.ArgumentNullException("grain");
         switch (interfaceId)
         {
             case 1662910789:  // IDestination
                 switch (methodId)
                 {
                     case 1491328371: 
                         await ((IDestination)grain).Ping((IClient)arguments[0], (Message)arguments[1]);
                       return true;
                     default: 
                         throw new NotImplementedException("interfaceId="+interfaceId+",methodId="+methodId);
                 }
             default:
                 throw new System.InvalidCastException("interfaceId="+interfaceId);
         }
 }
开发者ID:rikace,项目名称:Orleans.PingPong,代码行数:18,代码来源:orleans.codegen.cs


示例7: EA

 private static string EA(IAddressable mem, ushort PC, int bytes)
 {
     byte lsb = mem[PC];
     byte msb = 0;
     if (bytes == 2)
         msb = mem[(ushort)(PC + 1)];
     ushort ea = (ushort)(lsb | (msb << 8));
     if (bytes == 1)
         return String.Format(CultureInfo.InvariantCulture, "${0:x2}", ea);
     else
         return String.Format(CultureInfo.InvariantCulture, "${0:x4}", ea);
 }
开发者ID:BackupTheBerlios,项目名称:maria7800-svn,代码行数:12,代码来源:M6502DASM.cs


示例8: OpCodeDecode

 public static string OpCodeDecode(IAddressable mem, ushort PC)
 {
     int num_operands = InstructionLength(mem, PC) - 1;
     ushort PC1 = (ushort)(PC + 1);
     string addrmodeStr;
     switch (addressingModeMatrix[mem[PC]]) {
         case a.REL:
             addrmodeStr = String.Format(CultureInfo.InvariantCulture,
                 "${0:x4}", (ushort)(PC + (sbyte)(mem[PC1]) + 2));
             break;
         case a.ZPG:
         case a.ABS:
             addrmodeStr = EA(mem, PC1, num_operands);
             break;
         case a.ZPX:
         case a.ABX:
             addrmodeStr = EA(mem, PC1, num_operands) + ",X";
             break;
         case a.ZPY:
         case a.ABY:
             addrmodeStr = EA(mem, PC1, num_operands) + ",Y";
             break;
         case a.IDX:
             addrmodeStr = "(" + EA(mem, PC1, num_operands) + ",X)";
             break;
         case a.IDY:
             addrmodeStr = "(" + EA(mem, PC1, num_operands) + "),Y";
             break;
         case a.IND:
             addrmodeStr = "(" + EA(mem, PC1, num_operands) + ")";
             break;
         case a.IMM:
             addrmodeStr = "#" + EA(mem, PC1, num_operands);
             break;
         default:
             // a.IMP, a.ACC
             addrmodeStr = "";
             break;
     }
     return String.Format(CultureInfo.InvariantCulture,
         "{0} {1}", mnemonicMatrix[mem[PC]], addrmodeStr);
 }
开发者ID:BackupTheBerlios,项目名称:maria7800-svn,代码行数:42,代码来源:M6502DASM.cs


示例9: MemDump

 public static string MemDump(IAddressable mem, ushort atAddr, ushort untilAddr)
 {
     StringBuilder result = new StringBuilder();
     int length = untilAddr - atAddr;
     while (length-- >= 0) {
         result.AppendFormat(CultureInfo.InvariantCulture, "{0:x4}: ", atAddr);
         for (int i = 0; i < 8; ++i) {
             result.AppendFormat(CultureInfo.InvariantCulture, "{0:x2} ", mem[atAddr++]);
             if (i == 3)
                 result.Append(" ");
         }
         result.Append(Environment.NewLine);
     }
     if (result.Length > 0)
         result.Length--; // Trim trailing newline
     return result.ToString();
 }
开发者ID:BackupTheBerlios,项目名称:maria7800-svn,代码行数:17,代码来源:M6502DASM.cs


示例10: Disassemble

 public static string Disassemble(IAddressable mem, ushort atAddr, ushort untilAddr)
 {
     StringBuilder result = new StringBuilder();
     ushort dPC = atAddr;
     while (atAddr < untilAddr) {
         result.AppendFormat(CultureInfo.InvariantCulture, "{0:x4}: ", dPC);
         int len = InstructionLength(mem, dPC);
         for (int i = 0; i < 3; i++) {
             if (i < len)
                 result.AppendFormat(CultureInfo.InvariantCulture, "{0:x2} ", mem[atAddr++]);
             else
                 result.Append("   ");
         }
         result.AppendFormat(CultureInfo.InvariantCulture, "{0,-15:s}{1}",
             OpCodeDecode(mem, dPC), Environment.NewLine);
         dPC += (ushort)len;
     }
     if (result.Length > 0)
         result.Length--;  // Trim trailing newline
     return result.ToString();
 }
开发者ID:BackupTheBerlios,项目名称:maria7800-svn,代码行数:21,代码来源:M6502DASM.cs


示例11: Invoke

            /// <summary>
            /// Invokes the appropriate grain or extension method for the request interface ID and method ID.
            /// First each extension invoker is tried; if no extension handles the request, then the base
            /// invoker is used to handle the request.
            /// The base invoker will throw an appropriate exception if the request is not recognized.
            /// </summary>
            /// <param name="grain"></param>
            /// <param name="interfaceId"></param>
            /// <param name="methodId"></param>
            /// <param name="arguments"></param>
            /// <returns></returns>
            public Task<object> Invoke(IAddressable grain, int interfaceId, int methodId, object[] arguments)
            {
                if (extensionMap == null || !extensionMap.ContainsKey(interfaceId))
                    throw new InvalidOperationException(
                        String.Format("Extension invoker invoked with an unknown inteface ID:{0}.", interfaceId));

                var invoker = extensionMap[interfaceId].Item2;
                var extension = extensionMap[interfaceId].Item1;
                return invoker.Invoke(extension, interfaceId, methodId, arguments);
            }
开发者ID:kangkot,项目名称:orleans,代码行数:21,代码来源:ActivationData.cs


示例12: CreateObjectReference

 public GrainReference CreateObjectReference(IAddressable obj, IGrainMethodInvoker invoker)
 {
     throw new InvalidOperationException("Cannot create a local object reference from a grain.");
 }
开发者ID:PaulNorth,项目名称:orleans,代码行数:4,代码来源:InsideRuntimeClient.cs


示例13: DeleteObjectReference

 public void DeleteObjectReference(IAddressable obj)
 {
     throw new InvalidOperationException("Cannot delete a local object reference from a grain.");
 }
开发者ID:PaulNorth,项目名称:orleans,代码行数:4,代码来源:InsideRuntimeClient.cs


示例14: InstructionLength

 private static int InstructionLength(IAddressable mem, ushort PC)
 {
     switch (addressingModeMatrix[mem[PC]]) {
         case a.ACC:
         case a.IMP:
             return 1;
         case a.REL:
         case a.ZPG:
         case a.ZPX:
         case a.ZPY:
         case a.IDX:
         case a.IDY:
         case a.IMM:
             return 2;
         case a.ABS:
         case a.ABX:
         case a.ABY:
         case a.IND:
         default:
             return 3;
     }
 }
开发者ID:BackupTheBerlios,项目名称:maria7800-svn,代码行数:22,代码来源:M6502DASM.cs


示例15: Invoke

 public async System.Threading.Tasks.Task<Object> Invoke(IAddressable grain, int interfaceId, int methodId, object[] arguments)
 {
         if (grain == null) throw new System.ArgumentNullException("grain");
         switch (interfaceId)
         {
             case -1248350959:  // IDeviceGrain
                 switch (methodId)
                 {
                     case -1788431855: 
                         await ((IDeviceGrain)grain).SetTemperature((Double)arguments[0]);
                       return true;
                     case 98774684: 
                         return await ((IDeviceGrain)grain).GetTemperature();
                     default: 
                         throw new NotImplementedException("interfaceId="+interfaceId+",methodId="+methodId);
                 }
             default:
                 throw new System.InvalidCastException("interfaceId="+interfaceId);
         }
 }
开发者ID:richorama,项目名称:Orleans-IoT-Example,代码行数:20,代码来源:orleans.codegen.cs


示例16: Cast

 public static IDeviceGrain Cast(IAddressable grainRef)
 {
     
     return DeviceGrainReference.Cast(grainRef);
 }
开发者ID:richorama,项目名称:Orleans-IoT-Example,代码行数:5,代码来源:orleans.codegen.cs


示例17: IsImplicitSubscriber

 internal bool IsImplicitSubscriber(IAddressable addressable, StreamId streamId)
 {
     return implicitTable.IsImplicitSubscriber(GrainExtensions.GetGrainId(addressable), streamId);
 }
开发者ID:nehmebilal,项目名称:orleans,代码行数:4,代码来源:ImplicitStreamPubSub.cs


示例18: CreateObjectReference

        public GrainReference CreateObjectReference(IAddressable obj, IGrainMethodInvoker invoker)
        {
            if (obj is GrainReference)
                throw new ArgumentException("Argument obj is already a grain reference.");

            GrainReference gr = GrainReference.NewObserverGrainReference(clientId, GuidId.GetNewGuidId());
            if (!localObjects.TryAdd(gr.ObserverId, new LocalObjectData(obj, gr.ObserverId, invoker)))
            {
                throw new ArgumentException(String.Format("Failed to add new observer {0} to localObjects collection.", gr), "gr");
            }
            return gr;
        }
开发者ID:randa1,项目名称:orleans,代码行数:12,代码来源:OutsideRuntimeClient.cs


示例19: Invoke

            /// <summary>
            /// Invokes the appropriate grain or extension method for the request interface ID and method ID.
            /// First each extension invoker is tried; if no extension handles the request, then the base
            /// invoker is used to handle the request.
            /// The base invoker will throw an appropriate exception if the request is not recognized.
            /// </summary>
            /// <param name="grain"></param>
            /// <param name="request"></param>
            /// <returns></returns>
            public Task<object> Invoke(IAddressable grain, InvokeMethodRequest request)
            {
                if (extensionMap == null || !extensionMap.ContainsKey(request.InterfaceId))
                    throw new InvalidOperationException(
                        String.Format("Extension invoker invoked with an unknown inteface ID:{0}.", request.InterfaceId));

                var invoker = extensionMap[request.InterfaceId].Item2;
                var extension = extensionMap[request.InterfaceId].Item1;
                return invoker.Invoke(extension, request);
            }
开发者ID:caomw,项目名称:orleans,代码行数:19,代码来源:ActivationData.cs


示例20: LocalObjectData

 internal LocalObjectData(IAddressable obj, GuidId observerId, IGrainMethodInvoker invoker)
 {
     LocalObject = new WeakReference(obj);
     ObserverId = observerId;
     Invoker = invoker;
     Messages = new Queue<Message>();
     Running = false;
 }
开发者ID:randa1,项目名称:orleans,代码行数:8,代码来源:OutsideRuntimeClient.cs



注:本文中的IAddressable类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# IAdvancedBus类代码示例发布时间:2022-05-24
下一篇:
C# IAddressService类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap