Development system with a property-method-event programming model for developing context-free reusable software components
First Claim
1. In a computer system, a method for creating context-free C++ software components which are executable by a computer program operating on said computer system, the method comprising:
- creating from a first C++ class a first component having an event source, said first C++ class comprising class data members and class methods operative on said data members, said event source comprising an event which occurs in said first component at runtime;
creating from a second C++ class a second component having an event sink, said second C++ class comprising class data members and class methods operative on said data members, said event sink comprising an event handler for processing said event which occurs in said first component at runtime, said second component being unaware of said class data members and class methods which comprise said first class;
connecting said event source to said event sink by performing substeps of;
(i) storing in said second component a pointer to a dispatcher method in said second component, said dispatcher method capable of invoking said event handler;
(ii) storing in said first component at runtime a pointer to said pointer to said dispatcher method, so that said dispatcher method can be invoked by said first component at runtime; and
upon occurrence of said event in said first component at runtime, invoking by said first component said dispatcher method of said second component, whereupon said dispatcher method invokes said event handler for runtime processing of said event.
10 Assignments
0 Petitions
Accused Products
Abstract
A development system providing a property-method-event programming (PME) model for developing context-free reusable software components is described. Despite the absence of any C++ language support for events, the present invention provides a type-safe "wiring" mechanism--one using standard C++ to dispatch an event, raised by one object (the "event source"), to a method of another object (the "event sink"), with the requirement that the event source does not need to know the class of the event sink. As a result, the system allows developers to create C++ software components which can be connected together without the components having to know anything about the makeup of the component to which it is connected. Thus, developers can create pre-packaged, re-usable software components which can simply be "plugged into" a design--all accomplished within the confines of the standard C++ programming language (i.e., without having to employ proprietary extensions).
-
Citations
30 Claims
-
1. In a computer system, a method for creating context-free C++ software components which are executable by a computer program operating on said computer system, the method comprising:
-
creating from a first C++ class a first component having an event source, said first C++ class comprising class data members and class methods operative on said data members, said event source comprising an event which occurs in said first component at runtime; creating from a second C++ class a second component having an event sink, said second C++ class comprising class data members and class methods operative on said data members, said event sink comprising an event handler for processing said event which occurs in said first component at runtime, said second component being unaware of said class data members and class methods which comprise said first class; connecting said event source to said event sink by performing substeps of; (i) storing in said second component a pointer to a dispatcher method in said second component, said dispatcher method capable of invoking said event handler; (ii) storing in said first component at runtime a pointer to said pointer to said dispatcher method, so that said dispatcher method can be invoked by said first component at runtime; and upon occurrence of said event in said first component at runtime, invoking by said first component said dispatcher method of said second component, whereupon said dispatcher method invokes said event handler for runtime processing of said event. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. In a computer system, a method for creating context-free software objects which are executable by a computer program operating on said computer system, the method comprising:
-
creating from a first class a first object having a particular event occurring at runtime, said first class defining class data members and class methods operative on said data members; creating from a second class a second object having at least one event handler, said second class comprising class data members and class methods operative on said data members, said second object including a dispatcher for receiving an event from another object and dispatching that event to an appropriate event handler of said second object, wherein said second object is created from said second class without knowledge of any of the class data members and class methods which comprise said first class; upon occurrence of a particular event in said first object at runtime, invoking by said first object said dispatcher of said second object; in response to invoking of said dispatcher, identifying an appropriate event handler of said second object for processing of said particular event; and processing said particular event occurring at said first object by the identified appropriate event handler of said second object. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A development system for creating context-free, reusable software components, the system comprising:
-
means for creating source listings, said source listings including program listings specifying; creating from a first class a first object having a particular event occurring at runtime, said first class defining class data members and class methods operative on said data members, and creating from a second class a second object having at least one event handler, said second class comprising class data members and class methods operative on said data members, said second object including a dispatcher for receiving an event from another object and dispatching that event to an appropriate event handler of said second object, wherein said second object is created from said second class without knowledge of any of the class data members and class methods which comprise said first class; a compiler for compiling said source listings into an executable program; means for executing said program, said means including; means for invoking by said first object said dispatcher of said second object, upon occurrence of a particular event in said first object at runtime; means, responsive to said invoking means, for identifying an appropriate event handler of said second object for processing of said particular event; and means for processing said particular event occurring at said first object by the identified appropriate event handler of said second object. - View Dependent Claims (27, 28, 29, 30)
-
Specification