Claims
- 1. In a object-based computing system, a computer-implemented method for creating an object reference, wherein the object reference is associated with a local-only servant object, the method comprising:
implementing a first base class to create a first object that represents the object reference, wherein the first base class is associated with an object request broker; obtaining a local-only create closure; and calling an operation on a second base class, the operation being called with the local-only create closure, wherein the operation is arranged to create a server-side representation associated with the local-only servant object, the server-side representation being arranged to be stored in the first object that represents the object reference.
- 2. A method as recited in claim 1 wherein obtaining the local-only create closure includes:
creating a skeleton object; calling a local m-table builder for the skeleton object, wherein the local m-table builder is called with a local-only custom object class; and creating a local closure object with the skeleton object.
- 3. A method as recited in claim 2 wherein obtaining the local-only create closure further includes:
creating an implementation definition object associated with the skeleton object; and setting a pointer from the local closure object to the implementation definition object.
- 4. A method as recited in claim 2 wherein calling the local m-table builder includes creating an inheritance structure of m-tables.
- 5. A method as recited in claim 1 further including:
setting a pointer from the object reference to the server-side representation.
- 6. A method as recited in claim 1 further including
determining whether a first pointer from the first object to the local-only servant object is set to a first value; raising an exception when it is determined that the first pointer is not set to the first value, wherein the exception is arranged to indicate that the first pointer is not set to the first value; and calling a first method on the local-only servant object when it is determined that the first pointer is set to the first value.
- 7. A method as recited in claim 6 further including:
calling a servant method on the first object.
- 8. A method as recited in claim 7 further including:
calling a pre-local method associated with the first object, wherein the pre-local method is called with a client representation associated with the local-only servant; and storing a copy of the second pointer to the client representation in the first object.
- 9. A method as recited in claim 8 further including:
copying the second pointer, wherein first pointer is the copy of the second pointer.
- 10. A method as recited in claim 8 further including invoking a post-local method associated with the first object, wherein the post-local method is associated with the pre-local method.
- 11. A method as recited in claim 8 wherein calling the pre-local method includes storing a copy of the server-side representation associated with the local-only servant object with respect to the client representation.
- 12. A method as recited in claim 7 further including:
receiving an invocation call on the first object; locating a first method associated with the invocation call, the method being included in an m-table associated with the first object; and calling the first method.
- 13. A method for creating a first object reference associated with a servant object in an object-based system, the method comprising:
determining when a first client representation which includes a first pointer to the servant object is valid; creating a second client representation when it is determined that the first client representation is not valid, the second client representation including a second pointer to the servant object; and creating an association between the first object reference and the second client reference, wherein the first object reference is arranged to invoke the servant object, the first object reference being local to the servant object.
- 14. A method as recited in claim 13 wherein determining when a first client representation is valid includes determining whether the first pointer is set to a value which indicates validity of the client representation, the first client representation being invalid when the value is a null value.
- 15. A method as recited in claim 13 wherein when it is determined that the first client representation is valid, the first client representation is referenced by a second object reference which is associated with a first client object.
- 16. A method as recited in claim 15 wherein when it is determined that the first client representation is valid, the method further includes making a copy of the first client object.
- 17. A method as recited in claim 13 wherein when it is determined that the first client representation is not valid, the method further includes making a copy of a first revoked client object associated with the first client representation, the copy of the first revoked client object being arranged to reference the second client representation.
- 18. A method for processing a request to create a local-only object reference in an object-based system, the method comprising:
receiving the request to create the local only object reference, the request being received on a servant object; requesting a first client representation from a server representation; determining whether the first client representation is valid; and creating a new client representation when it is determined that the first client representation is not valid.
- 19. A method as recited in claim 18 further including creating a copy of a client object associated with the new client representation.
- 20. A method as recited in claim 18 wherein determining whether the first client representation is valid includes determining whether a pointer from the first client representation to the servant object is set to indicate that the first client representation is invalid.
- 21. A customization object in an object-based system, the customization object being arranged to be invoked only by a client which is in a first process with the customization object, the customization object comprising:
a pre-local method arranged to store a copy of a representation of the customization object; a post-local method, wherein the post-local method is associated with the pre-local method; and a servant method arranged to check for a pointer from the client to the customization object, wherein the pointer is arranged to indicate whether the customization object is suitable for invocation.
- 22. A customization object as recited in claim 21 further including:
a set_exception method arranged to raise an exception during an invocation of the customization object.
- 23. A customization object as recited in claim 21 wherein the representation is a server representation.
- 24. A customization object as recited in claim 21 further wherein the representation is independent of an interface definition language type.
- 25. A computer system arranged to create an object reference, wherein the object reference is associated with a local-only servant object, the computer system comprising:
a processor; a first base class arranged to create a first object that represents the object reference, wherein the first base class is associated with an object request broker; a local-only create closure; and a second base class, the second base class including an operation that is arranged to be called with the local-only create closure, wherein the operation is arranged to create a server-side representation associated with the local-only servant object, the server-side representation being arranged to be stored in the first object that represents the object reference.
- 26. A computer system as recited in claim 25 further including:
an object request broker, a skeleton object; a local-only custom object class, the local-only custom object class being associated with the object request broker; and a local m-table builder associated with the skeleton object, wherein the local m-table builder is arranged to be called with the local-only custom object class.
- 27. A computer system as recited in claim 26 further including:
an implementation definition object associated with the skeleton object; and a pointer from the local closure object to the implementation definition object.
- 28. A computer system as recited in claim 25 further including:
a pointer from the first object to the server-side representation.
- 29. A computer program product for creating a first object reference associated with a servant object in an object-based system, wherein the first object reference is arranged to invoke the servant object, the first object reference being local to the servant object, the computer program product comprising:
computer code that determines when a first client representation which includes a first pointer to the servant object is valid; computer code that creates a second client representation when it is determined that the first client representation is not valid, the second client representation includes a second pointer to the servant object; and a computer readable medium that stores the computer codes.
- 30. A computer program product as recited in claim 29 wherein computer code that determines when a first client representation is valid includes computer code that determines whether the first pointer is set to null.
- 31. A computer program product as recited in claim 29 further including computer code that makes a copy of a first revoked client object associated with the first client representation, the copy of the first revoked client object being arranged to reference the second client representation.
- 32. A computer program product as recited in claim 29 wherein the computer readable medium is a data signal embodied in a carrier wave.
- 33. A computer program product for creating an object reference, wherein the object reference is associated with a local-only servant object, the method comprising:
computer code that implements a first base class to create a first object that represents the object reference, wherein the first base class is associated with an object request broker; computer code that obtains a local-only create closure; computer code that calls an operation on a second base class, the operation being called with the local-only create closure, wherein the operation is arranged to create a server-side representation associated with the local-only servant object, the server-side representation being arranged to be stored in the first object that represents the object reference; and a computer readable medium that stores the computer codes.
- 34. A computer program product as recited in claim 33 wherein the computer code that obtains the local-only create closure includes:
computer code that creates a skeleton object; computer code that calls a local m-table builder for the skeleton object, wherein the local m-table builder is called with a local-only custom object class; and computer code that creates a local closure object with the skeleton object.
- 35. A computer program product as recited in claim 34 wherein the computer code that calls the local m-table builder includes computer code that creates an inheritance structure of m-tables.
- 36. A computer program product as recited in claim 34 further including:
computer code that sets a pointer from the object reference to the server-side representation.
- 37. A computer program product as recited in claim 34 wherein the computer readable medium is a data signal embodied in a carrier wave.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The following U.S. patent applications are related to the present application and are incorporated by reference herein in their entirety: U.S. patent application Ser. No. 08/993,075, now U.S. Pat. No. 6,205,491, entitled “Method and Apparatus for Deferred Throwing of Exceptions in C++”; U.S. patent application Ser. No. 08/993,205, now U.S. Pat. No. 6,016,489, entitled “Method and Apparatus for Constructing Stable Iterators in a Shared Data Collection”; U.S. patent application Ser. No. 08/993,263, entitled “Marshaling and Unmarshaling Framework for Supporting Filters in a Distributed Object System”; U.S. patent application Ser. No. 08/993,206, entitled “Method and Apparatus for Enforcing Locking Invariants in Multi-Threaded Systems”; U.S. patent application Ser. No. 08/993,204, entitled “Method and Apparatus for Efficient Representation of Variable Length Identifiers in a Distributed Object System”; and U.S. patent application Ser. No. 08/993,287, now U.S. Pat. No. 6,249,803, entitled “Method and Apparatus for Executing Code During Method Invocation”; all filed on even date.
[0002] This application is also related to U.S. patent application Ser. No. 08/554,794, now U.S. Pat. No. 5,577,251, filed Nov. 7, 1995 as a continuation to application Ser. No. 07/995,863, filed Dec. 21, 1992 (now abandoned); U.S. patent application Ser. No. 08/670,682, now U.S. Pat. No. 6,044,224, filed Jun. 26, 1996; U.S. patent application Ser. No. 08/673,181, now U.S. Pat. No. 6,032,199, filed Jun. 26, 1996; U.S. patent application Ser. No. 08/670,700, now U.S. Pat. No. 6,189,048, filed Jun. 26, 1996; U.S. patent application Ser. No. 08/670,681, now U.S. Pat. No. 6,044,409, filed Jun. 26, 1996; U.S. patent application Ser. No. 08/670,684, filed Jun. 26, 1996; and U.S. patent application Ser. No. 08/669,782, now U.S. Pat. No. 5,991,823, filed Jun. 26, 1996.
Divisions (1)
|
Number |
Date |
Country |
Parent |
08993800 |
Dec 1997 |
US |
Child |
10139669 |
May 2002 |
US |