CN103049306A - Simulation of static members and parameterized constructors on an interface-based api - Google Patents

Simulation of static members and parameterized constructors on an interface-based api Download PDF

Info

Publication number
CN103049306A
CN103049306A CN2012103352268A CN201210335226A CN103049306A CN 103049306 A CN103049306 A CN 103049306A CN 2012103352268 A CN2012103352268 A CN 2012103352268A CN 201210335226 A CN201210335226 A CN 201210335226A CN 103049306 A CN103049306 A CN 103049306A
Authority
CN
China
Prior art keywords
action
interface
interface instance
event
instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012103352268A
Other languages
Chinese (zh)
Other versions
CN103049306B (en
Inventor
S·法克斯
J·D·卡普兰
L·普罗塞克
R·M·拜尔斯
R·A·拜因顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN103049306A publication Critical patent/CN103049306A/en
Application granted granted Critical
Publication of CN103049306B publication Critical patent/CN103049306B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Abstract

Embodiments are directed to providing a simulation of a type-level construct on an interface instance and to maintaining a token-based event handling system. In one scenario, a computer system instantiates an interface instance that includes an instance object and multiple instance members. The computer system also instantiates a separate typed object which is configured to maintain one or more simulated type-level parameterized constructors. The computer system then associates the instantiated interface instance with the separate typed object. The typed object routes method invocations from the interface instance to various simulated type-level parameterized constructors and static members of the type.

Description

Simulation based on the static member on the API of interface and parametrization constructed fuction
Technical field
The present invention relates to the simulation based on the static member on the API of interface and parametrization constructed fuction.
Background
Computing machine has become and highly has been integrated in work, family, mobile device and many other places.Computing machine can be fast and is effectively processed bulk information.The software application that is designed to move in computer system allows the user to carry out the various functions that comprise commercial application, school work, amusement etc.Software application is designed to carry out specific task usually, such as the e-mail program that is used for drawing up the word processor application of document or is used for transmission, reception and e-mail management.
These software application typically use Integrated Development Environment (IDE) design and establishment.IDE allows the developer to access different elements and the structure of the establishment of assisting software program.Different IDE may allow to use different programming languages.For example, some IDE is more suitable for OO software development.These IDE can have editing machine, compiler, debugger, class browser, object detector and allow other instruments of every one side of developer's control and Application and Development.In some cases, OO IDE allows the developer by parameter information structure object is provided, and allows to use the static member with some type.
Brief overview
Embodiment described herein relates to the simulation that type level structure (type-level construct) is provided in interface instance, and relates to the event handling system of safeguarding based on token.In one embodiment, computer system instantiation one interface instance, this interface instance comprise instance objects and Multi-instance member.This computer system is the typed object that separates of instantiation one also, and this object is configured to safeguard the type level parametrization constructed fuction (parameterized constructor) of one or more simulations.This computer system will be associated with the typed object that should separate through the interface instance of instantiation subsequently.The object of the type is routed to the type level parametrization constructed fuction of each simulation and the static member of the type with method call from this interface instance.
In another embodiment, the event handling system of computer system maintenance based on token.The event subscription table of a plurality of programming objects of this computer system instantiation, this table are configured to token is mapped to the event of event subscription device and their subscription.The event subscription table is that in the event subscription each is safeguarded the weak reference to the subscriber.So, do not force the subscriber to keep follow the tracks of subscribing in the situation of survival (alive) at the event subscription table.Computer system determines that subsequently at least one event no longer has any subscription, and determines based on described, should subscribe to from the event subscription table to remove.When the free subscription of the institute that is followed the tracks of by described table all was removed, described event subscription table also can be released (free) this moment.
Provide this general introduction in order to introduce in simplified form some concepts that will further describe in the following detailed description.This general introduction is not key feature or the essential feature that is intended to identify theme required for protection, is not intended to for the scope that helps to determine theme required for protection yet.
Additional feature and advantage will be set forth in the following description, and partly can it will be apparent to those skilled in the art by this description, perhaps can come acquistion by the practice to herein teaching.The feature and advantage of embodiments of the invention can be implemented and obtain by means and the combination that particularly points out in claims.It is fully apparent that the feature of embodiments of the invention will become from the following description and the appended claims book, perhaps can be by as described below to practice of the present invention and acquistion.
The accompanying drawing summary
In order further to illustrate above and other advantage and the feature of various embodiments of the present invention, present the more specifically description of various embodiments of the present invention with reference to accompanying drawing.Be appreciated that these accompanying drawings only describe exemplary embodiments of the present invention, therefore will be considered to the restriction to its scope.Embodiments of the invention will be by describing with supplementary features and details with accompanying drawing and explain, in the accompanying drawing:
Fig. 1 shows the Computer Architecture that embodiments of the invention can operate therein, is included in the simulation that type level structure is provided on the interface instance and the event handling system of safeguarding based on token.
Fig. 2 shows the process flow diagram for the exemplary method of the simulation that type level structure is provided in interface instance.
Fig. 3 shows the process flow diagram be used to the exemplary method of the event handling system of safeguarding based on token.
Fig. 4 shows the embodiments of the invention that wherein maintenance event is subscribed in the event handling system of based on token.
Specifically describe
Embodiment described herein relates to the simulation that type level structure (type-level construct) is provided in interface instance, and relates to the event handling system of safeguarding based on token.In one embodiment, computer system instantiation one interface instance, this interface instance comprise instance objects and Multi-instance member.This computer system is the typed object that separates of instantiation one also, and this object is configured to safeguard the type level parametrization constructed fuction (parameterized constructor) of one or more simulations.This computer system will be associated with the typed object that should separate through the interface instance of instantiation subsequently.The object of the type is routed to the type level parametrization constructed fuction of each simulation and the static member of the type with method call from this interface instance.
In another embodiment, the event handling system of computer system maintenance based on token.The event subscription table of a plurality of programming objects of this computer system instantiation, this table are configured to token is mapped to the event of event subscription device and their subscription.The event subscription table is that in the event subscription each is safeguarded the weak reference to the subscriber.So, do not force the subscriber to keep follow the tracks of subscribing in the situation of survival (alive) at the event subscription table.Computer system determines that subsequently at least one event no longer has any subscription, and determines based on described, should subscribe to from the event subscription table to remove.When the free subscription of the institute that is followed the tracks of by described table all was removed, described event subscription table also can be released (free) this moment.
Below discuss and now relate to several different methods and the method action that to carry out.It should be noted that, although these method actions may be discussed by a graded, or in process flow diagram, be depicted as according to particular order and carry out, yet be not to need specific order, unless specifically stated otherwise, or situation about before an action is performed, needing because this action depends on finishing of another action.
Various embodiments of the present invention can comprise or utilize special use or multi-purpose computer, and this special use or multi-purpose computer comprise such as computer hardwares such as one or more processors and system storage, and be as discussed in detail below.Each embodiment in the scope of the invention also comprises physics and other computer-readable mediums for carrying or storage computer executable instructions and/or data structure.Such computer-readable medium can be can be by any usable medium of universal or special computer system accesses.The computer-readable medium that stores computer executable instructions with data mode is computer-readable storage medium.The computer-readable medium of load capacity calculation machine executable instruction is transmission medium.Thus, and unrestricted, various embodiments of the present invention can comprise at least two kinds of remarkable different computer-readable mediums: computer-readable storage medium and transmission medium as example.
Computer-readable storage medium comprises RAM, ROM, EEPROM, CD-ROM, based on solid state drive (SSD) or other optical disc storage, disk storage or other magnetic storage apparatus of the storer of RAM, flash memory, phase transition storage (PCM) or other type or can be used for the desired program code devices of computer executable instructions, data or the storage of data structure form and can be by any other medium of universal or special computer access.
" network " is defined by allowing one or more data link and/or the data switching exchane of transmission electronic data between computer system and/or module and/or other electronic equipments.When information exchange crosses that network (hardwired, wireless or hardwired or wireless combination) is transmitted or when offering computing machine, this computing machine should connect and suitably was considered as transmission medium.Transmission medium can comprise following network: described network can be used for transporting the data of form of computer-executable instructions or data structure form or desired program code devices, and can be by universal or special computer access.Above-mentioned combination also should be included in the scope of computer-readable medium.
In addition, after arriving various computer system components, the program code devices of computer executable instructions or data structure form can be from the transmission medium automatic transmission to computer-readable storage medium (or vice versa).For example, the computer executable instructions or the data structure that receive by network or data link (for example can be buffered in Network Interface Module, network interface unit or " NIC ") in RAM in, then finally be transferred to the computer-readable storage medium of the more not volatibility of computer system RAM and/or computer systems division.Accordingly, it should be understood that computer-readable storage medium can be included in also in the computer system component that utilizes (or even main utilization) transmission medium.
Computing machine can be carried out (or computing machine is soluble) instruction and for example comprise the instruction that causes multi-purpose computer, special purpose computer or dedicated treatment facility to carry out certain function or certain group function.Computer executable instructions can be for example binary code, the intermediate format instructions such as assembly language or even source code.Although with the special-purpose language description of architectural feature and/or method action this theme, be appreciated that subject matter defined in the appended claims is not necessarily limited to above-mentioned feature or action.On the contrary, above-mentioned feature and action are as the exemplary forms that realizes claim and disclosed.
It should be appreciated by those skilled in the art that, the present invention can put into practice in having the network computing environment of being permitted eurypalynous computer system configurations, these computer system configurations comprise personal computer, desk-top computer, laptop computer, message handling device, portable equipment, multicomputer system, based on microprocessor or programmable consumer electronic device, network PC, small-size computer, mainframe computer, mobile phone, PDA, pager, router, switch etc.The present invention also can put into practice in distributed system environment, local and remote computer system is got up by network (via hardwired data link, wireless data link or via the combination of hardwired and wireless data link) link in this environment, each computer system execute the task (for example, cloud computing, cloud service etc.).In distributed system environment, program module can be arranged in local and remote memory storage device.
Fig. 1 shows the Computer Architecture 100 that can adopt therein principle of the present invention.Computer architecture 100 comprises computer system 101.Computer system 101 can be this locality or the Distributed Computer System of any type, comprises cloud computing system.Computer system can comprise be used to the various disparate modules of carrying out various different tasks.For example, instantiation module 110 can be configured to instantiation interface instance (for example, 115), typed object (for example, 120) or other elements.Computer system can be configured to move Integrated Development Environment (IDE), and this Integrated Development Environment allows the program developer Application and Development.IDE 107 can receive the user from developer 105 and input 106, and described user inputs the various functions that indication will be provided by other modules of this IDE and computer system.The function of these modules will be further described below.
Generally speaking, (runtime) was associated interface instance 115 when embodiment described herein allowed to move with Class1 20, and this interface instance can be used for the static member of effect and the type of analog parameter constructed fuction 121 subsequently.Similarly, can provide the example of object 120 during operation, the type level operation of the type that this example provides when can be used for accessing to this operation.
Thereby embodiment allows a group interface example is associated with a type, thereby provides simulation operating based on the type level on the ABI top of interface during to operation.In some cases, be used for making the kind of ABI based on interface is adapted to OO system other operations of case method being carried out when realizing that restriction can be by operation.Embodiment described herein provides parameter for static member and constructed fuction.
One or more examples of interface 115 can be associated with Class1 20 during operation.When this operation, carry out one when having the constructed fuction of type of parameter, scan the example that this interface has the method for one group of parameter of mating with searching and returns the type of indication during this operation.Subsequently, use rreturn value as new object, by assigning to selected method, simulate this constructed fuction during this operation.These other technologies that can call wrapper (wrapper) during from structure, running are different, and described other technologies are simulated structure by calling single known API simply.
When embodiment also allows to move by using the interface instance that is associated with type to simulate the static member.The member that on each static member and the interface is tied to the described static member's of definition type is associated.When attempting carrying out the static member when this moves, access is redirected to the interface that it is associated on the contrary.In the top of ABI simulation static member's existence, it requires calling based on interface during this operation of this redirected permission.At least in some cases, can call Wrapper Technology during the operation of other versions and not allow to simulate the static member, expose the object model that only has the example member when requiring on the contrary this operation.
Similarly, can be with the example operation of type level operation simulation for the object that provides to this ABI to by this operation the time during this operation.To create the single type object during this operation, this single type object is realized for the parametrization constructed fuction on the type and static member's interface.When calling the interface method that is dispatched to expression parametrization constructed fuction, during this operation this is called and be assigned to constructed fuction and the return results that has the same procedure parameter with invoked interface method.When the static member's that represents a type interface method being made when calling, the static member of the type of the object reference indication that provides during by operation satisfies this interface requests.
Embodiment can call the distinct methods in the life-span of wrapper when can be used to manage the operation of taking on event source when also having described operation.These methods keep event source wrapper survival (alive) when only can be used for by this operation, and needing only the event subscription person of trustship (host) in when this operation needs it.
In one embodiment, safeguard one group of weak reference that can call each event subscription person of wrapper when being bound to the operation of this event source during this operation.In the event subscription table, safeguard these references.When this event source is subscribed, this subscriber's weak reference is added in this group weak reference.Similarly, when event subscription was terminated, its corresponding weak reference was removed from this group active subscription person.Believe when this operation when it can finally change this event subscription table that it checks that at first this group weak reference sees if there is any weak reference and still survives.If any one survival in these references, the candidate of finalization when the event subscription table that then is associated with this event subscription table no longer is considered by this operation.
Realize during the operation of reference count that another life-span management technology that is used for event handling can be called wrapper when safeguarding each event source operation.Increase progressively this reference count from this event source of this system reference.When this reference count when being non-zero, safeguard the strong reference to this event source during this operation, thereby prevent that it is qualified by refuse collection.When reference count hits 0, discharge it during this operation to the strong reference of this event source.When no longer being needed by working procedure, the event subscription table that is associated with this event source is allowed to become qualified by refuse collection subsequently.
And embodiment provides a kind of mode of entrusting object for when operation in the interface simulation of expression callback method.Other realizations may require to entrust abstract being interrupted and client code is directly made readjustment to using Binary Interface (ABI).As described here, in order to simulate trust, identify the callback method on this interface instance during this operation.It creates the trust type with " calling " method subsequently, should " calling " method have and the identical signature of the signature of this callback method.When this trust is directly called or is called via event, during this operation this trust is forwarded to bottom ABI method.The result of this callback method is used as subsequently and entrusts the result who calls to return.In this way, provide during this operation the trust API on the ABI of interface to experience.
Similarly, can be during operation the ABI caller provide for interface, the example of this interface mappings trust of trustship when being moved by this.To create the object of the new interface that realizes having single " calling " method during this operation, the method has the signature that the signature with this trust is complementary.When external call person makes when calling the interface method of this object, its trust of just packing of this run time call.The result that this trust is called is passed as the result that the method is called subsequently.This is provided at the ABI based on interface in the trust when allowing this operation.Below, for the method 200 and 300 of Fig. 2 and Fig. 3, further explain these concepts respectively.
Consider system described above and architecture, referring to figs. 2 and 3 process flow diagram will understand better the method that realizes according to disclosed theme.In order to explain for simplicity, these methods are shown and described as a series of frames.Yet, should be appreciated that and understand that theme required for protection is not subjected to the restriction of the order of frame because some frames can by different order carry out and/or therewith the place describe and other frames of describing carry out simultaneously.In addition, be not the frame shown in all be to realize that method described below is necessary.
Fig. 2 shows the process flow diagram for the method 200 of the simulation that type level structure is provided in interface instance.Now assembly and the data of frequent reference environment 100 are come describing method 200.
Method 200 comprises the action of instantiation interface instance, and this interface instance comprises instance objects and one or more example member (action 210).For example, but example module 110 instantiation interface instance 115.Although an interface instance only is shown among Fig. 1, yet will understands, but instantiation any amount of interface instance basically.Example 115 comprises at least one instance objects 116, and one or more example member 117.At least in some cases, these examples member can comprise the static member.Depend on realization, the interface instance of each instantiation can comprise instance objects and/or (static state) example member of varying number.In case after being instantiated, this interface instance can be implemented with the analog type level and operate.
Method 200 further comprises the action of the typed object 120 that instantiation separates, wherein should typed object 120 separately be configured to safeguard the type level parametrization constructed fuction 121(action 220 of one or more simulations) and action that the interface instance 115 of instantiation is associated with the typed object 120 that separates, the type level parametrization constructed fuction 121 and the static member 122(that wherein should typed object separately be configured to method call 118 is routed to from this interface instance one or more simulations of the type move 230).In some cases, as previously mentioned, a plurality of distinct interface examples can be by in order instantiation or simultaneously instantiation of module 110.In the interface instance of these instantiations each can be associated to provide unified view to the application developer that realizes this interface instance by (for example, the interface conjunctionn module 125) with the typed object 120 that separates.Thereby for example, if developer 105 is using IDE 107 Application and Development, the interface instance of using in this IDE can be associated with the typed object that separates and think that the developer provides unified view.
In certain embodiments, the example member 117 of this interface instance can be routed to the type level parametrization constructed fuction 120 of simulation.The type level parametrization constructed fuction of these simulations can comprise one or more type level operations.These operations can be used by this interface instance.The type level parametrization constructed fuction of simulation also can be used to simulate the trust object on this interface instance.This trust object can represent various callback methods.
As above-mentioned, can use signature that the type level parametrization constructed fuction 121 of simulation is complementary with native method (native method).But native method as used herein refers to the method for operating system the machine ground (natively) access of computer system 101 or computer system 101.The type level parametrization constructed fuction of simulation and native method are complementary to detect the suitable interface instance that to call its allocating method.Then, after receiving the his-and-hers watches first finger and decide static member 122 the calling of interface method of type, the example member 117 that the typed object 120 that should separate calls this specified type satisfies this calling interface method.Described static member can separated typed object 121 simulations.Attempt to be redirected to described static member's the interface instance that is associated 115 when carrying out any operation of described static member.During described this operation of redirected permission in the existence that realizes based on the top simulation static member who calls 118 interface instance of interface.Thereby can identify the callback method on this interface instance during this operation, establishment has the trust type (this call method has and the identical signature of the signature of this callback method) of call method, determine that this trust is called, this callback method is forwarded to suitable ABI (ABI) method, and the result that the result that will adjust back calls as trust returns.So, provide during this operation the trust API on the ABI of interface to experience.
Correspondingly, embodiment described herein can provide the simulation of the type level structure on the interface instance.So, by having the typed object that separates of safeguarding type level structure, can provide parametrization constructed fuction and static member.Thereby the individual interface example can be with the type level parametrization constructed fuction route of its method call by simulation.
Fig. 3 shows the process flow diagram be used to the method 300 of the event handling system of safeguarding based on token.Now will be frequently come describing method 300 with reference to assembly and the data of the environment 400 of Fig. 4.
Method 300 comprises the action of the event subscription table of a plurality of programming objects of instantiation, and this table is configured to one or more tokens are mapped to the event (action 310) of event subscription device and their subscription.For example, instantiation module 440 can be set up event subscription table 445 and its part as the event handling system of based on token is safeguarded.This event subscription table can comprise a plurality of different event subscription (for example, 446A and 446B) for different programming objects 450.So, when event when the certain programmed object occurs, notified to the subscriber of this event.Described event subscription has subscriber (447A/447B) and is used for each subscriber's associated event.For example, the subscriber 447A among the event subscription 446A subscribes to event A(448A) and event B(448B).Event subscription person 447B subscribes to event A(448B), event C(448C) and event D(448D).To be appreciated that each subscriber can subscribe to basically any amount of different event.
Method 300 can comprise that also the event subscription table is that in the described event subscription each is maintained into the action of subscriber's weak reference, so that described subscription can be tracked and the event subscription table needn't force the subscriber to keep survival (action 320).Event subscription table 445 can be that each event subscription (446A/446B) is set up and safeguards weak reference 441 to subscriber (447A/447B).This weak reference is followed the tracks of this subscription and is not forced the subscriber to keep survival (therefore with reference to being designated " weak " reference).Correspondingly, the event subscription table will not force the subscriber to keep survival to safeguard this reference.
In some cases, timer 445 can be used for determining that this subscription has kept the fixed time amount of having survived.Then, based on determined time quantum, this subscription can be removed.In other cases, the developer can remove the subscription to the time simply, or the developer can remove module 460 with subscription and removes the programming object that event is tied to.No matter reason how, event may arrive more like this: it no longer has any subscriber.At this point, the event subscription table can determine that this event does not have any subscription (action 330).
During this subscription removed, the event subscription table did not keep subscriber or event survival.And at least in some cases, after determining that for given event more subscription will not followed the tracks of, but event subscription table automatic moving is except it self.Shall also be noted that at least in certain embodiments programming object, timer 455 and subscription remove module 460 can realize by personal code work 451 that these are different with the event subscription table from the instantiation module 440 that realizes with system code.Yet, be noted that each part of Computer Architecture 400 can realize in the hardware of any type basically and/or software environment.
In certain embodiments, can realize that reference count replaces weak reference.Realize during the operation of reference count that this technology that is used for event handling can be called wrapper when safeguarding each event source operation.In these cases, can realize strong reference between the event that subscriber and this subscriber order.As long as when event subscription person is added to event source, this reference count is incremented, and remove the subscriber this reference count is successively decreased.When definite this reference count when being non-zero, the strong reference of event source is safeguarded automatically.Should be strong with reference to preventing that event source is by refuse collection.When definite reference count is 0, discharge it during this operation to the strong reference of this event source.This allows this event source qualified by refuse collection when no longer being needed by its active program that is associated.
Method, system and the computer program of the type level constructing analog that provides on the interface instance correspondingly, have been described.Method, system and the computer program of the event handling system of safeguarding based on token are provided in addition.
The present invention can be embodied as other concrete form and not deviate from its spirit or essential characteristic.It only is illustrative and nonrestrictive that described embodiment should be considered in all respects.Therefore, scope of the present invention is by appended claims but not aforementioned description indication.The implication and the interior change of scope that fall into the equivalents of claims are contained by the scope of claims.

Claims (15)

1. one kind is used for providing the method for type level structure in the computer system that comprises storer and at least one processor in interface instance, and described method comprises:
The action of instantiation interface instance, described interface instance comprise instance objects and one or more example member;
The action of the typed object that instantiation separates, the described typed object that separates are configured to safeguard the type level parametrization constructed fuction of one or more simulations; And
With the action that the interface instance of described instantiation is associated with the described typed object that separates, the wherein said typed object that separates is configured to method call is routed to the type level parametrization constructed fuction of one or more simulations and the static member of described type from described interface instance.
2. the method for claim 1 is characterized in that, described interface instance is implemented as the one or more type level operations of simulation.
3. the method for claim 1 is characterized in that, a plurality of different interface instance are associated to provide unified view to the application developer that realizes described interface instance with the described typed object that separates.
4. the method for claim 1 is characterized in that, the described example member of described interface instance is routed to the type level parametrization constructed fuction of described simulation.
5. method as claimed in claim 4 is characterized in that, the type level parametrization constructed fuction of described simulation comprises one or more type level operations.
6. the method for claim 1 is characterized in that, described example member comprises the static member.
7. method as claimed in claim 6 is characterized in that, described static member is by the described typed simulating that separates.
8. method as claimed in claim 6 is characterized in that, attempts being redirected to described static member's the interface instance that is associated when carrying out described static member's operation.
9. method as claimed in claim 8 is characterized in that, simulates static member's existence during the described operation of described redirected permission based on the top of the described interface instance of calling of interface in realization.
10. the method for claim 1 is characterized in that, also comprises:
Identify the action of the callback method on the described interface instance during described operation;
Create the action of the trust type with call method during described operation, described call method has and the identical signature of the signature of described callback method;
After definite described trust has been called, during described operation described callback method is forwarded to the action of ABI (ABI) method; And
The action that the result that the result of described callback method is called as described trust returns is so that the trust API that is provided at during described operation on the ABI of interface experiences.
11. computer program that is used for realizing a kind of method, described method is used for safeguarding the event handling system of based on token, described computer program comprises the one or more computer-readable recording mediums that store computer executable instructions on it, so that described computing system is carried out described method, described method comprises when being carried out by one or more processors of computing system in described instruction:
The action of the event subscription table of a plurality of programming objects of instantiation, described table is configured to one or more tokens are mapped to the event of event subscription device and subscription thereof;
Described event subscription table is that in the described event subscription each is safeguarded the action to described subscriber's weak reference, so that described subscriptions can needn't force described subscriber to keep surviving by tracked and described event subscription table;
Determine that at least one event no longer has the action of any subscription; And
Determine the action that this subscription is removed from described event subscription table based on described.
12. computer program as claimed in claim 11 is characterized in that, realizes that reference count replaces described weak reference.
13. computer program as claimed in claim 12 is characterized in that, described event subscription table does not keep described subscriber or the survival of described event.
14. a computer system comprises:
One or more processors;
System storage;
Store one or more computer-readable recording mediums of computer executable instructions, so that described computing system is carried out a kind of method of the simulation for type level structure is provided in interface instance, described method comprises described computer executable instructions when being carried out by described one or more processors:
The action of instantiation interface instance, described interface instance comprise instance objects and one or more example member;
The action of the typed object that instantiation separates, described typed object are configured to safeguard the type level parametrization constructed fuction of one or more simulations;
With the action that the interface instance of described instantiation is associated with the described typed object that separates, the wherein said typed object that separates is configured to method call is routed to the type level parametrization constructed fuction of one or more simulations and the static member of described type from described interface instance;
Identify the action of the call back function on the described interface instance during described operation;
In described when operation, create the action of the trust type with call method, and described call method has the signature that the signature with described callback method is equal to;
After definite described trust has been called, during described operation described callback method is forwarded to the action of ABI (ABI) method; And
The action that the result that the result of described callback method is called as described trust returns is so that the trust API that is provided at during described operation on the ABI of interface experiences.
15. computer system as claimed in claim 14 is characterized in that, uses signature that type level parametrization constructed fuction and one or more native method of one or more simulations are complementary to detect the suitable interface instance of calling for its allocating method.
CN201210335226.8A 2011-09-12 2012-09-11 The simulation of the static member on the API based on interface and parametrization constructed fuction Active CN103049306B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161533747P 2011-09-12 2011-09-12
US61/533,747 2011-09-12
US13/350,552 2012-01-13
US13/350,552 US9183001B2 (en) 2011-09-12 2012-01-13 Simulation of static members and parameterized constructors on an interface-based API

Publications (2)

Publication Number Publication Date
CN103049306A true CN103049306A (en) 2013-04-17
CN103049306B CN103049306B (en) 2016-05-11

Family

ID=47830619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210335226.8A Active CN103049306B (en) 2011-09-12 2012-09-11 The simulation of the static member on the API based on interface and parametrization constructed fuction

Country Status (4)

Country Link
US (1) US9183001B2 (en)
EP (1) EP2756396B1 (en)
CN (1) CN103049306B (en)
WO (1) WO2013039800A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108737474A (en) * 2017-04-21 2018-11-02 北京京东尚科信息技术有限公司 The method, apparatus that HTTP interface calls
CN112667324A (en) * 2020-12-30 2021-04-16 凌云光技术股份有限公司 Method and device for calling command class in command mode

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930891B2 (en) * 2013-02-04 2015-01-06 David Wei Ge Method for visual manipulations of all kinds of programming objects

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014555A1 (en) * 2001-06-29 2003-01-16 Michal Cierniak System and method for efficient dispatch of interface calls
CN1664779A (en) * 2003-06-26 2005-09-07 微软公司 Software development infrastructure
US20100299659A1 (en) * 2009-05-20 2010-11-25 Microsoft Corporation Attribute based method redirection

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988271B2 (en) 1998-10-02 2006-01-17 Microsoft Corporation Heavyweight and lightweight instrumentation
AU5728500A (en) * 1999-06-11 2001-01-02 Microsoft Corporation Data driven remote device control model with general programming interface-to-network messaging adapter
US8135796B1 (en) * 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services in a distributed computing environment
US7171475B2 (en) * 2000-12-01 2007-01-30 Microsoft Corporation Peer networking host framework and hosting API
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US7114148B2 (en) * 2002-09-30 2006-09-26 Microsoft Corporation Runtime services for network software platform
US20050005261A1 (en) * 2003-07-02 2005-01-06 Severin William B. Component integration engine
US7526750B2 (en) 2003-10-15 2009-04-28 Microsoft Corporation Object-based systematic state space exploration of software
US7730465B2 (en) * 2004-10-22 2010-06-01 Microsoft Corporation Mixed types
US20080256549A1 (en) * 2007-04-10 2008-10-16 International Business Machines Corporation System and Method of Planning for Cooperative Information Processing
US8296730B2 (en) 2008-03-12 2012-10-23 Microsoft Corporation Using extension methods to extend COM objects
US20100042982A1 (en) * 2008-08-15 2010-02-18 Microsoft Corporation Optimization of imperative implementation of compositional content
GB2466289A (en) 2008-12-18 2010-06-23 Veda Technology Ltd Executing a service application on a cluster by registering a class and storing subscription information of generated objects at an interconnect
US8370807B2 (en) 2009-03-12 2013-02-05 Microsoft Corporation Debugging for runtime type systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014555A1 (en) * 2001-06-29 2003-01-16 Michal Cierniak System and method for efficient dispatch of interface calls
CN1664779A (en) * 2003-06-26 2005-09-07 微软公司 Software development infrastructure
US20100299659A1 (en) * 2009-05-20 2010-11-25 Microsoft Corporation Attribute based method redirection

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NOCKY: "《http://blog.csdn.net/nocky/article/details/6056671》", 15 May 2009 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108737474A (en) * 2017-04-21 2018-11-02 北京京东尚科信息技术有限公司 The method, apparatus that HTTP interface calls
CN112667324A (en) * 2020-12-30 2021-04-16 凌云光技术股份有限公司 Method and device for calling command class in command mode
CN112667324B (en) * 2020-12-30 2023-12-05 凌云光技术股份有限公司 Method and device for calling command class in command mode

Also Published As

Publication number Publication date
EP2756396A4 (en) 2015-04-15
EP2756396A1 (en) 2014-07-23
CN103049306B (en) 2016-05-11
US9183001B2 (en) 2015-11-10
EP2756396B1 (en) 2018-07-25
US20130066622A1 (en) 2013-03-14
WO2013039800A1 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
Zhang et al. Narrowing the gap between serverless and its state with storage functions
US11537809B2 (en) Dynamic container grouping
CN102027460B (en) Dynamic declarative application description
US9684493B2 (en) R-language integration with a declarative machine learning language
Brazier et al. Agent factory: Generative migration of mobile agents in heterogeneous environments
CN110599183B (en) Intelligent contract calling method and device and storage medium
CN102446100B (en) For the type of data type and the abstract system and method for length
CN105164642B (en) The operating system of contract is supported
CN110716748A (en) Service processing method and device, computer readable medium and electronic equipment
US8813258B2 (en) Selectively exposing base class libraries based on application execution context
CN103049306A (en) Simulation of static members and parameterized constructors on an interface-based api
CN109388435A (en) Realize app while the repeatedly method and apparatus of opening operation
WO2022103685A1 (en) Continuous integration and development of code in a secure environment
CN107368300B (en) MapReduce-based data summarization system and method
Welch Life of occam-pi
US10262054B2 (en) Database and service upgrade without downtime
Dubey et al. Heterogeneous data mining environment based on dam for mobile computing environments
US20220122038A1 (en) Process Version Control for Business Process Management
Agüero et al. Towards on embedded agent model for Android mobiles
CN109144575A (en) Device, method, electronic equipment and the memory of cross operating system operation application
Agüero et al. Developing intelligent agents on the Android platform
US20230359440A1 (en) Externally-initiated runtime type extension
Žemlička et al. Software architecture and software quality
Boulifa et al. Model generation for distributed Java programs
Ye et al. EvoIsolator: Evolving program slices for hardware isolation based security

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150727

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant