Extensible mechanism for providing safe automatic management...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C707S793000

Reexamination Certificate

active

06230213

ABSTRACT:

NOTICE REGARDING COPYRIGHT RIGHTS
A portion of the disclosure of this patent document contains material that is subject to copyright protection.
The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever in the material contained herein.
BACKGROUND OF THE INVENTION
This invention relates to object oriented programs of the type that create and interact with objects.
Most programming languages, such as C++, deal with objects (encapsulations of data structures and associated operation(s)) as in-memory data structures with some associated behavior. The ability to access such objects has been difficult in light of residency and memory management issues. For example, C++ is a language which is derived in part from C, and as such, it suffers from many of the same problems of memory management that C programs have. The use of pointers and, to a lesser extent references, contribute to an overall lack of robustness in many C++ applications.
A central issue is that of object ownership. If an object is referenced by another C++ object, either by pointer or reference, who owns the object? What happens if the object is deleted with references still outstanding? For example,
FIG. 1A
illustrates two object references A and B referencing an object
12
. The object
12
may, for example, be a word processing document view, and the two references A and B two different screens of that word processing document view. Both object references “own” the object. Suppose, however, the object reference A is closed, causing the closure or destruction of the object
12
in order free up memory in the associated computing system. As illustrated in
FIG. 1B
, with the reference object A now gone, and with it the object
12
, the object reference B references an invalid memory location, and any changes that may have been made by the objection reference B will most likely be lost.
Thus, there has been a need to provide a method of object access that addresses such issues.
SUMMARY OF THE INVENTION
The present invention provides the ability to access objects (program data structures and associated operation(s)) without undue regard to residency and memory management issues. The invention is extensible to permit different underlying representations and access semantics to be implemented.
The invention builds upon the envelope-letter pattern (Coplien, James O., “Advanced C++ Programming Styles and Idioms,” Addison-Wesley Publishing Co, Inc. ISBN: 0-201-54855-0) in several key areas:
type safety is guaranteed at the programmer level.
access to different points in the inheritance hierarchy is provided. (The object may be one type, the user may only know of a different or related type.)
read and write access is separately tracked to permit underlying representations, such as databases, to be updated only when needed.
many different underlying representations, such as databases, dynamic code libraries and remote objects may be used to provide the programmer with a consistent and transparent access view.
when coupled with memory management objects, automatic allocation and de-allocation of resources is possible.
Broadly, the invention provides a mechanism to control and manage object ownership by creating an envelope class that makes itself look like (to the user) the actual object. An envelope object or object reference is created through the envelope class to reference the actual object, and used as a base for all other references to the actual object to which the envelope object relates. The envelope object keeps track of how many references are made to the underlying object by maintaining a reference count that is incremented with each reference to the object that is established, and decremented each time a reference is deleted or goes out of scope. The object reference will keep the object viable (i.e., maintain its memory space) until the last reference to the object goes out of scope. When this happens, the object reference will then call upon one or more virtual member functions to destroy the object and free the memory space it was using.
Thus, the invention has the advantage of allowing an object to be owned by more than one reference without fear of losing the object when the first of those references goes out of scope, destroying the object and leaving the remaining reference(s) pointing to an invalid portion of memory. In addition, the invention will ensure that when the last reference to use the object goes out of scope, the object is properly destroyed to free memory space.
Indeed, a very useful byproduct of the invention is the potential for abolishing the use of pointers and references in a large body of reusable code. This effectively closes a serious robustness hole in the use of C++.
In a further embodiment of the invention, the object reference may be specialized to the object. For example, when the last reference is deleted, the destruction of the object can include operations indigenous to the object, such as storing data structures, or returning memory to a heap, or other specialized management procedures.
These and other features, objects and advantages will become apparent to those skilled in this art upon a reading of the following detailed description together with the accompanying drawings and attached Appendix A (which contains the source code listing, in C++, of the parts of the invention).


REFERENCES:
patent: 4695949 (1987-09-01), Thatte et al.
patent: 4755939 (1988-07-01), Watson
patent: 4853842 (1989-08-01), Thatte et al.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Extensible mechanism for providing safe automatic management... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Extensible mechanism for providing safe automatic management..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Extensible mechanism for providing safe automatic management... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2495366

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.