System for object oriented dynamic linking based upon a catalog of registered function set or class identifiers
First Claim
1. A computer, comprisinga central processing unit;
- non-volatile memory;
high-speed memory;
a library of function sets, each function set including at least one member function, embodied in the high-speed memory;
computer readable program code comprising one or more client applications embodied in the non-volatile memory and capable of utilizing and residing in the high-speed memory; and
computer readable program code means, embodied in the non-volatile memory, for managing use of functions by said one or more client applications, the computer readable program code means comprising;
computer readable program code means for causing the computer to store a dispatch record for said one or more client applications, each said dispatch record for said one or more client applications including a function set ID for each of said plurality of function sets used by said client application;
computer readable program dispatch code means responsive to a call by the client application of a particular member function and to the dispatch record for causing the computer to supply a request for a link to a function set having the particular member function; and
computer readable program link code means, responsive to the request for the link to the function set and to the function set ID in the dispatch record, for causing the computer to link the particular member function to the client application wherein the link code means includescomputer readable program code means for causing said computer to create a resource set catalog, the resource set catalog identifying function sets in the library by respective function set IDs, and storing a plurality of set records which characterize member functions within respective sets;
computer readable program lookup code means for causing the computer to look up a set record for the function set in the resource set catalog based on the corresponding function set ID; and
programmable code means, responsive to the set record, for causing the computer to return the particular member function to the client application.
2 Assignments
0 Petitions
Accused Products
Abstract
A system is provided for managing code resources for use by client applications in a computer, wherein the computer has internal memory storing at least one client application. The apparatus comprises a resource set catalog stored in the internal memory. The resource set catalog identifies a plurality of function sets of functions by respective function set IDs. Further, the resource set catalog includes set records which characterize the functions within the respective sets. A dispatch engine, in the internal memory, linked with a client application, supplies a particular function set ID in response to a call by the client application of a particular function which is a member of a corresponding function set identified by the particular function set ID. A lookup engine in the internal memory, coupled with the resource set catalog and the dispatch engine, is responsive to the particular function set ID to look up a set record for a corresponding function set in the resource set catalog. Finally, a link engine in the internal memory and coupled with the dispatch engine returns the particular function to the client application in response to the set record. Thus, because the link engine is responsive to the set record, which is not linked with the client, the client need not be aware of changes in the structure of the library in which the particular function set resides. Thus, the function set can be moved into and out of internal memory, revised, placed in different sections of internal memory, and otherwise handled independently of the client, without requiring re-compilation of the client application.
-
Citations
52 Claims
-
1. A computer, comprising
a central processing unit; -
non-volatile memory; high-speed memory; a library of function sets, each function set including at least one member function, embodied in the high-speed memory; computer readable program code comprising one or more client applications embodied in the non-volatile memory and capable of utilizing and residing in the high-speed memory; and computer readable program code means, embodied in the non-volatile memory, for managing use of functions by said one or more client applications, the computer readable program code means comprising; computer readable program code means for causing the computer to store a dispatch record for said one or more client applications, each said dispatch record for said one or more client applications including a function set ID for each of said plurality of function sets used by said client application; computer readable program dispatch code means responsive to a call by the client application of a particular member function and to the dispatch record for causing the computer to supply a request for a link to a function set having the particular member function; and computer readable program link code means, responsive to the request for the link to the function set and to the function set ID in the dispatch record, for causing the computer to link the particular member function to the client application wherein the link code means includes computer readable program code means for causing said computer to create a resource set catalog, the resource set catalog identifying function sets in the library by respective function set IDs, and storing a plurality of set records which characterize member functions within respective sets; computer readable program lookup code means for causing the computer to look up a set record for the function set in the resource set catalog based on the corresponding function set ID; and programmable code means, responsive to the set record, for causing the computer to return the particular member function to the client application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer, comprising:
-
an input; a central processing unit; non-volatile memory; internal memory; at least one client application embodied in internal memory; and programmable code means for managing code resources for use by client applications in the computer, the programmable code means, comprising; a resource set catalog stored in the internal memory, the resource set catalog identifying a plurality of function sets of member functions by respective function set IDs, and storing a plurality of set records which characterize member functions within respective sets; dispatch code means, in the internal memory linked with a client application, for causing the computer to supply a particular function set ID in response to a call by a client application of a particular member function which is a member of the a function set identified by the particular function set ID in the resource set catalog; lookup code means, in the internal memory, for causing the computer to identify, based upon the resource set catalog and responsive to the dispatch code means, one of said plurality of set records for the corresponding function set in the resource set catalog; and link code means, in the internal memory and responsive to the dispatch code means, for causing the computer to return the particular member function to the client application in response to the set record. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. An article of manufacture, comprising:
-
a computer usable medium having computer readable program code means embodied therein for managing code resources used by client applications in a computer, said program code means comprising; code resources comprising a library of function sets stored on the computer usable medium, the function sets in the library having function set IDs, and the function sets including member functions; program code means for causing the computer to create a resource set catalog, the resource set catalog identifying function sets in the library by respective function set IDs, and to store a plurality of set records which characterize member functions within respective sets; dispatch code means, linked with a client application, for causing the computer to supply a particular function set ID in response to a call by the client application of a particular member function which is a member of a corresponding function set identified by the particular function set ID; program lookup code means, responsive to the particular function set ID, for causing the computer to query the resource set catalog to look up a set record for the corresponding function set in the resource set catalog; and program link code means, for causing the computer to return the particular member function from the library to the client application in response to the set record, and to write valid links in the function link cache and the set link cache, wherein the dispatch code means includes; a dispatch record linked with the client application which stores the particular function set ID, a function link cache, linked with the client application, to store a link to the particular member function, a set link cache, linked with the client application to store a link to the set record for the set of functions including the particular member function, a dispatch code means linked to the dispatch record, the function link cache, the set link cache and the lookup engine, responsive to the call to supply the particular member function if the function link cache is valid, for causing the computer to supply the set record if the set link cache is valid and to supply the particular function set ID if neither the function link cache nor set link cache is valid. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. In a computer, a computer readable memory having code means for managing functions for use by client applications in the computer, the computer having internal memory storing at least one client application and non-volatile memory, the code means comprising:
-
a resource catalog stored in the internal memory, the resource catalog including records identifying a plurality of functions available for dynamic linking with the client application; dispatch code, in the internal memory linked with a client application, causing the computer to supply a request to link with a particular function in response to a call by the client application of the particular function; lookup code in the internal memory, coupled with the resource catalog and the dispatch engine, causing the computer to look up a record for the particular function in the resource catalog in response to the request; link code, in the internal memory and coupled with the dispatch engine, causing the computer to return the particular function to the client application in response to the record; and registration code in the internal memory executable during runtime of the client application, which the inserts records for a library of functions in the resource catalog in response to a request to make the library available for linking, and removes the records for the library from the resource catalog in response to a request to make the library unavailable for linking.
-
-
38. A computer, including at least one central processing unit, non-volatile memory, high-speed memory, code means for managing code resources for use by client applications, the volatile memory storing at least one client application, the code means comprising:
-
a class catalog stored in the internal memory, the class catalog identifying a plurality of classes by respective class IDs, and storing class records which characterize derived classes, each derived class having at least one corresponding class in the plurality of classes from which the derived class is derived; dispatch code in the internal memory linked with a client application, to supply a particular class ID in response to a call by the client application of a function of a particular class identified by the particular class ID; lookup code in the internal memory, coupled with the class catalog and the dispatch engine, responsive to the particular class ID, causing the computer to look up a class record for the corresponding class in the class catalog; link code in the internal memory and coupled with the dispatch engine, causing the computer to return the function of the particular class to the client application in response to the class record; and library management code, coupled with the class catalog, causing the computer to provide information about a class in the class catalog to the client application in response to the class ID. - View Dependent Claims (39, 40, 41, 42)
-
-
43. A process for managing code resources used by a client application in a computer and dynamically installing client applications, the computer having internal memory storing at least one said client application, comprising:
-
providing a class identifier and link pointer in the client application; providing a class catalog in the internal memory, the class catalog identifying a plurality of classes by respective class identifiers; providing class records which contain information regarding each class and table records which characterize corresponding classes; and updating the class catalog by generating a new object for inclusion in the class catalog, wherein said generating comprises means for; querying the class identifier; querying a memory pool; determining, based on the class identified and memory allocation data, whether the memory pool allocation has been allocated to an object; if the memory location has not been allocated, allocating the memory pool location to the new object; determining the class record by querying one of the plurality of classes to determine whether the new object is supported by the class; if the class is associated with a library other than a root library, then loading the library and incrementing a use counter in the table record; retrieving the table record using the class record; determining whether the new object is supported by the class based on the table record; determining the size of the new object based on the object record; placing the object in the allocated memory pool; and incrementing the use counter.
-
-
44. A process executable in a computer, the computer including client applications in the computer, comprising the steps of:
-
providing a class identifier and link pointer in the client application; providing a class catalog, the catalog stored in the internal memory, the class catalog identifying a plurality of classes by respective class identifiers, and storing class records which characterize corresponding classes, including at least one parent class having at least one class, each class comprising at least one object; providing at least one operating system designated folder holding a register library; determining whether new files are copied to or removed from the folder by the client application; and updating the class catalog to include new library resources copied into the folder and deleting library resources which have been moved from the folder subsequent to use. - View Dependent Claims (45, 46, 47)
-
-
48. A computer readable memory for managing code resources for use by client applications in a computer, the computer having internal memory storing at least one client application, comprising:
-
a class catalog stored in the internal memory, the class catalog identifying a plurality of classes by respective class identifiers, and storing class records which characterize corresponding classes; link code means, in the internal memory, for causing the computer to return the particular function to the client application in response to the class record; library management code means, coupled with the class catalog, causing the computer to provide information about a class in the class catalog to the client application in response to a request to make the library unavailable for linking; and a registration code means causing the computer to insert a library of function sets in the class catalog in response to a request to make the library available for linking, and to remove the function sets in the library from the class catalog in response to a request to make the library unavailable for linking. - View Dependent Claims (49, 50)
-
-
51. A computer including internal memory storing at least one client application and non-volatile memory storing programmable code, the code comprising:
-
a class identifier and link pointer in the client application, upon compiling the client application; a class catalog, the catalog stored in the internal memory, the class catalog identifying a plurality of classes by respective class identifiers, and storing class records which characterize corresponding classes, including at least one parent class including at least one class, each class comprising at least one object; at least one operating system designated folder holding a register library; means for determining whether new files are copied to or removed from the folder by the client application; and update code means for including new library resources copied into the folder in the class catalog and deleting library resources which have been moved from the folder subsequent to use from the class catalog.
-
-
52. A computer including a central processing unit, volatile internal memory and non-volatile memory means for managing code resources for use by client applications in the computer, the computer having internal memory storing at least one client application, said means for managing code comprising:
-
means for providing a class identifier and link pointer in the client application; means for providing a class catalog stored in the internal memory, the class catalog identifying a plurality of classes by respective class identifiers, and storing class records which characterize corresponding classes, including at least one parent class having at least one class, each class comprising at least one object; means for providing at least one operating system designated folder and at least one client application designated folder, each holding at least one register library; means for determining whether new files are copied to or removed from the folder by the client application; means for determining whether the new file is a shared library resource; and means for updating the class catalog to include new library resources copied into the folder and deleting library resources which have been moved from the folder subsequent to use.
-
Specification