本发明专利技术涉及基于接口的A?PI上的静态成员和参数化构造函数的模拟。实施例涉及在接口实例上提供类型级构造的模拟,并且涉及维护基于令牌的事件处理系统。在一个场景中,计算机系统实例化一接口实例,该接口实例包括实例对象和多个实例成员。该计算机系统还实例化一分开的类型化的对象,该对象被配置成维护一个或多个模拟的类型级参数化构造函数。该计算机系统随后将经实例化的接口实例与该分开的类型化的对象相关联。该分开的类型化的对象将方法调用从该接口实例路由到各模拟的类型级参数化构造函数和该类型的静态成员。
【技术实现步骤摘要】
本专利技术涉及基于接口的API上的静态成员和参数化构造函数的模拟。背景计算机已变得高度集成于工作、家庭、移动设备以及许多其他地方中。计算机可快 速且有效地处理大量信息。被设计成在计算机系统上运行的软件应用允许用户执行包括商 业应用、学校作业、娱乐等等在内的各种各样的功能。软件应用通常被设计成执行特定的任 务,诸如用于草拟文档的文字处理器应用或者用于发送、接收和组织电子邮件的电子邮件 程序。这些软件应用通常是使用集成开发环境(IDE)设计和创建的。IDE允许开发者访 问协助软件程序的创建的不同的元素和构造。不同的IDE可能允许使用不同的编程语言。 例如,某些IDE更适于面向对象的软件开发。这些IDE可具有编辑器、编译器、调试器、类浏 览器、对象检查器和允许开发者控制和开发应用的每一方面的其他工具。在某些情况下,面 向对象的IDE允许开发者通过提供参数信息构造对象,并且允许使用具有某些类型的静态 成员。简要概述此处描述的实施例涉及在接口实例上提供类型级构造(type-level construct) 的模拟,并且涉及维护基于令牌的事件处理系统。在一个实施例中,计算机系统实例化一接 口实例,该接口实例包括实例对象和多个实例成员。该计算机系统还实例化一分开的类型 化的对象,该对象被配置成维护一个或多个模拟的类型级参数化构造函数(parameterized constructor)。该计算机系统随后将经实例化的接口实例与该分开的类型化的对象相关 联。该类型化的对象将方法调用从该接口实例路由到各模拟的类型级参数化构造函数和该 类型的静态成员。在另一实施例中,计算机系统维护基于令牌的事件处理系统。该计算机系统实例 化多个编程对象的事件订阅表,该表被配置成将令牌映射到事件订阅器和它们订阅的事 件。事件订阅表为事件订阅中的每一个维护对订阅者的弱参考。如此,在事件订阅表不强 迫订阅者保持存活(alive)的情况下跟踪订阅。计算机系统随后确定至少一个事件不再具 有任何订阅,并且基于所述确定,将该订阅从事件订阅表中移除。当被所述表跟踪的所有时 间订阅均被移除时,所述事件订阅表此时也可被释放(free)。提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本 概述并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要 求保护的主题的范围。附加的特征和优点将在以下的描述中被阐述,并且部分地可通过该描述而对本领 域技术人员显而易见,或者可通过对本文中的教示的实践来习得。本专利技术的实施例的特征 和优点可以通过在所附权利要求中特别指出的手段和组合来被实现并获得。本专利技术的实施 例的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本 专利技术的实践而习得。附图简述为了进一步阐明本专利技术的各实施例的以上和其他优点和特征,将参考附图来呈现 本专利技术的各实施例的更具体的描述。可以理解,这些附图只描绘本专利技术的典型实施例,因此 将不被认为是对其范围的限制。本专利技术的实施例将通过使用附图用附加特征和细节来描述 和解释,附图中附图说明图1示出了本专利技术的实施例可在其中操作的计算机体系结构,包括在接口实例上 提供类型级构造的模拟并维护基于令牌的事件处理系统。图2示出了用于在接口实例上提供类型级构造的模拟的示例方法的流程图。图3示出了用于维护基于令牌的事件处理系统的示例方法的流程图。图4示出了其中在基于令牌的事件处理系统中维护事件订阅的本专利技术的实施例。具体描述此处描述的实施例涉及在接口实例上提供类型级构造(type-level construct) 的模拟,并且涉及维护基于令牌的事件处理系统。在一个实施例中,计算机系统实例化一接 口实例,该接口实例包括实例对象和多个实例成员。该计算机系统还实例化一分开的类型 化的对象,该对象被配置成维护一个或多个模拟的类型级参数化构造函数(parameterized constructor)。该计算机系统随后将经实例化的接口实例与该分开的类型化的对象相关 联。该类型化的对象将方法调用从该接口实例路由到各模拟的类型级参数化构造函数和该 类型的静态成员。在另一实施例中,计算机系统维护基于令牌的事件处理系统。该计算机系统实例 化多个编程对象的事件订阅表,该表被配置成将令牌映射到事件订阅器和它们订阅的事 件。事件订阅表为事件订阅中的每一个维护对订阅者的弱参考。如此,在事件订阅表不强 迫订阅者保持存活(alive)的情况下跟踪订阅。计算机系统随后确定至少一个事件不再具 有任何订阅,并且基于所述确定,将该订阅从事件订阅表中移除。当被所述表跟踪的所有时 间订阅均被移除时,所述事件订阅表此时也可被释放(free)。以下讨论现涉及可以执行的多种方法以及方法动作。应当注意,虽然这些方法动 作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺序进行的,然而并 非必然需要特定的次序,除非特别声明,或者是在一个动作被执行之前因为该动作依赖于 另一动作的完成而需要的情况。本专利技术的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸 如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本专利技术范围 内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计 算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用 介质。以数据形式存储有计算机可执行指令的计算机可读介质是计算机存储介质。承载计 算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本专利技术的各实施 例可包括至少两种显著不同的计算机可读介质计算机存储介质和传输介质。 计算机存储介质包括RAM、ROM、EEPROM、CD-ROM、基于RAM、闪存、相变存储器 (PCM)、或其它类型的存储器的固态驱动器(SSD)、或者其他光盘存储、磁盘存储或其他磁存 储设备、或可用于以计算机可执行指令、数据或数据结构形式存储所期望的程序代码装置 且可被通用或专用计算机访问的任何其他介质。“网络”被定义成允许在计算机系统和/或模块和/或其他电子设备之间传输电子 数据的一个或多个数据链路和/或数据交换机。当信息通过网络(硬连线、无线、或者硬连 线或无线的组合)被传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输 介质可以包括如下的网络所述网络可以用于运送计算机可执行指令形式或数据结构形式 的数据或所期望的程序代码装置,并且可以被通用或专用计算机访问。上述的组合也应被 包括在计算机可读介质的范围内。此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程 序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数 据链路接收到的计算机可执行指令或数据结构可被缓冲在网络接口模块(例如,网络接口 卡或“NIC”)内的RAM中,然后最终被传输给计算机系统RAM和/或计算机系统处的较不易 失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要 利用)传输介质的计算机系统组件中。计算机可执行(或计算机可解释)指令例如包括致使通用计算机、专用计算机、或 专用处理设备执行某个功能或某组功能的指令。计算机可执行本文档来自技高网...
【技术保护点】
一种用于在包括存储器和至少一个处理器的计算机系统中在接口实例上提供类型级构造的方法,所述方法包括:实例化接口实例的动作,所述接口实例包括实例对象和一个或多个实例成员;实例化分开的类型化的对象的动作,所述分开的类型化的对象被配置成维护一个或多个模拟的类型级参数化构造函数;以及将所述实例化的接口实例与所述分开的类型化的对象相关联的动作,其中所述分开的类型化的对象被配置成将方法调用从所述接口实例路由到一个或多个模拟的类型级参数化构造函数和所述类型的静态成员。
【技术特征摘要】
2011.09.12 US 61/533,747;2012.01.13 US 13/350,5521.一种用于在包括存储器和至少一个处理器的计算机系统中在接口实例上提供类型级构造的方法,所述方法包括 实例化接口实例的动作,所述接口实例包括实例对象和一个或多个实例成员; 实例化分开的类型化的对象的动作,所述分开的类型化的对象被配置成维护一个或多个模拟的类型级参数化构造函数;以及 将所述实例化的接口实例与所述分开的类型化的对象相关联的动作,其中所述分开的类型化的对象被配置成将方法调用从所述接口实例路由到一个或多个模拟的类型级参数化构造函数和所述类型的静态成员。2.如权利要求1所述的方法,其特征在于,所述接口实例被实现为模拟一个或多个类型级操作。3.如权利要求1所述的方法,其特征在于,多个不同的接口实例与所述分开的类型化的对象相关联以向实现所述接口实例的应用开发者提供统一视图。4.如权利要求1所述的方法,其特征在于,所述接口实例的所述实例成员被路由到所述模拟的类型级参数化构造函数。5.如权利要求4所述的方法,其特征在于,所述模拟的类型级参数化构造函数包括一个或多个类型级操作。6.如权利要求1所述的方法,其特征在于,所述实例成员包括静态成员。7.如权利要求6所述的方法,其特征在于,所述静态成员被所述分开的类型化的对象模拟。8.如权利要求6所述的方法,其特征在于,执行所述静态成员的运行时尝试被重定向到所述静态成员的相关联的接口实例。9.如权利要求8所述的方法,其特征在于,所述重定向允许所述运行时在实现基于接口的调用的所述接口实例的顶上模拟静态成员的存在。10.如权利要求1所述的方法,其特征在于,还包括 所述运行时标识所述接口实例上的回调方法的动作; 所述运行时创建具有调用方法的委托类型的动作,所述调用方法具有与所述回调方法的签名完全相同的签名; 在确定所述委托已被调用之后,所述运行时将所述回调方法转发到应用二进制接口(ABI)方法的动作;以及 将所述回调方法的结果作为所述委托调用的结果返回的动作,以使得所述运行时提供在接口的ABI上的委托API体验。11.一种用于...
【专利技术属性】
技术研发人员:S·法克斯,J·D·卡普兰,L·普罗塞克,R·M·拜尔斯,R·A·拜因顿,
申请(专利权)人:微软公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。