Patent US5889992A successfully refreshed from Google Patents.
US5889992A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method for mapping types stored in a model in an object-oriented repository to language constructs for A C binding for the repository
Assignee: Unisys Corp
•
Filing: 1996-03-28
•
Granted: 1999-03-30
•
Expires: 2016-03-28
Abstract
Abstract The method of the present invention is useful in a computer system having a user interface, a CPU, a memory, at least one disk drive, and an object-oriented repository, a program operating in the computer system for accessing the object-oriented repository. The program executes a method for mapping types in a model stored in the repository to language constructs for a C binding to the repository. The method first processes each type in the model, then the program processes each data type in the model. Function declarations and C to C++ wrapper functions are generated for each type and data type.
Inventors
- 👤 Paul Donald Koerber
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-01 08:32
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/70; G06F8/76; G06F8/30; G06F8/40; G06F8/41; G06F8/43; G06F8/436; G06F8/437; G06F9/00; G06F9/06; G06F9/44; G06F9/448; G06F9/4488; G06F9/4492
Claims Analysis
Total Claims: 14
Claim 1
Independent Claim
378 words
In a computer system having a user interface, a CPU, a memory, at least one disk drive, and an object-oriented repository, a program operating in said computer system for accessing said object-oriented repository, said program executing a method for mapping types in a model stored in said repository to language constructs for a C binding to said repository and writing said language constructs to a file on said at least one disk drive comprising the steps of: a. for each type in said model, determining if a current one of said types is valid for C binding, and if so; b. generating object initializer function declarations for said current type; c. determining if there are more properties for said current type, and if so; d. for each property for said current type, determining if a current one of said properties is valid for C binding, and if so; e. generating accessor function declarations for said current property; f. determining if said current property is not read-only, and if so; g. generating mutator function declarations for said current property; h. if there are no more properties for said current type, determining if there are more operations for said current type, and if so; i. for each operation for said current type, determining if a current one of said operations is valid for C binding, and if so; j. resolving operation name for said current operation; k. generating declaration for said current operation; l. if there are no more operations for said current type, generating special function declarations; and, m. generating C to C++ wrapper functions for said current type; n. determining if there are more of said types in said model, and if so, repeating steps a through n hereof; o. if there are no more types, then; p. for each data type in said model, determining if a current one of said data types is valid for C binding, and if so; q. generating function declarations for said current data type; r. generating C to C++ wrapper functions for said current data type; s. determining if there are more data types in said model, and if so, repeating steps p through s hereof; and, t. if there are no more data types in said model, stopping said program.
Claim 2
Dependent Claim
378 words
In a computer system having a user interface, a CPU, a memory, at least one disk drive, and an object-oriented repository, a program operating in said computer system for accessing said object-oriented repository, said program executing a method for mapping types in a model stored in said repository to language constructs for a C binding to said repository and writing said language constructs to a file on said at least one disk drive comprising the steps of: a. for each type in said model, determining if a current one of said types is valid for C binding, and if so; b. generating object initializer function declarations for said current type; c. determining if there are more properties for said current type, and if so; d. for each property for said current type, determining if a current one of said properties is valid for C binding, and if so; e. generating accessor function declarations for said current property; f. determining if said current property is not read-only, and if so; g. generating mutator function declarations for said current property; h. if there are no more properties for said current type, determining if there are more operations for said current type, and if so; i. for each operation for said current type, determining if a current one of said operations is valid for C binding, and if so; j. resolving operation name for said current operation; k. generating declaration for said current operation; l. if there are no more operations for said current type, generating special function declarations; and, m. generating C to C++ wrapper functions for said current type; n. determining if there are more of said types in said model, and if so, repeating steps a through n hereof; o. if there are no more types, then; p. for each data type in said model, determining if a current one of said data types is valid for C binding, and if so; q. generating function declarations for said current data type; r. generating C to C++ wrapper functions for said current data type; s. determining if there are more data types in said model, and if so, repeating steps p through s hereof; and, t. if there are no more data types in said model, stopping said program.
Claim 3
Dependent Claim
203 words
A method as in claim 1 wherein said step of generating C to C++ wrapper function for said current type further comprises: u. generating object initializer functions for said current type; v. determining if there are more properties for said current type, and if so; w. for each property for said current type, determining if a current one of said properties is valid for C binding, and if so; x. generating C to C++ wrapper code for accessor functions for said current property, y. determining if said current property is not read-only, and if so; z. generating C to C++ wrapper code for mutator functions for said current property; aa. if there are no more properties for said type, determining if there are more operations for said type, and if so; ab. for each operation for said type, determining if a current one of said operations is valid for C binding, and if so; ac. resolving operation name for said current operation; ad. generating a C to C++ wrapper function for said current operation; and, ae. if there are no more operations for said type, generating a wrapper function for any special operations; and, af. returning to step n of claim 1 hereof.
Claim 4
Dependent Claim
74 words
A method as in claim 2 wherein said step of generating C to C++ wrapper code for accessor functions further comprises: ag. generating function heading with correct parameters; ah. generating code to check myself parameter; ai. generating code for return if an error was found; aj. generating code to call C++ accessor; ak. generating code to return a value for said accessor; and, al. returning to said program at step y of claim 2.
Claim 5
Dependent Claim
82 words
A method as in claim 2 wherein said step of generating C to C++ wrapper code for mutator functions further comprises: ag. generating function heading with correct parameters; ah. generating code to check myself parameter; ai. determining if said current property type is an object, and if so; aj. generating code to check object parameter; ak. generating code for return if an error was found; al. generating code to call C++ mutator; and, am. returning to step w of claim 2 hereof.
Claim 6
Dependent Claim
373 words
A method as in claim 2 wherein said step of generating C to C++ wrapper function for an operation further comprises: ag. generating function heading with a return type and a parameter list for said operation; ah. determining if said operation is a class operation, and if so; ai. generating a check for UREP object parameter; aj. if said operation is not a class operation, generating a check for myself object parameter; ak. determining if there are more parameters, and if so; al. for each parameter, declaring a local variable for correct type for a current one of said parameters; am. determining if said current parameter is a data type, and if so, an. generating an assignment to said local variable; ao. if said current parameter is not a data type, determining if said current parameter is optional, and if so; ap. generating a check for a null object for said current parameter; aq. generating a call to check object function for said current parameter; ar. generating code to store value in said local variable; as. if there are no more parameters for said operation, determining if said operation has a return value, and if so; at. generating code to return a null object if an error was found; au. if said operation does not have a return value, generating code to return if an error occurs; av. determining if said operation returns a value or a has a parameter that returns a value, and if so; aw. generating a local variable to hold said return value; ax. generating a call to said operation in C++ binding, and capturing said return value in said local variable; ay. determining if said current operation has output or input/output parameters, and if so; az. generating code to transfer values from C++ operation call to each of said parameters; ba. generating code to store said return value; bb. generating a return; bc. if said current operation does not return an object, generating a call to C++ operation in a return statement; bd. if said current operation does not return a parameter with an object, generating a call to C++ operation in a return statement; and, be. returning to said program at step ab of claim 2 hereof.
Claim 7
Dependent Claim
112 words
A method as in claim 1 wherein said step of generating function declarations for said current data type further comprises: u. determining if said current data type needs values, and if so; v. generating values for said current data type; w. determining if said current data type is not symbolic, and if not: i) generating object initializer declarations; ii) generating conversion function declarations; x. determining if said current data type is symbolic, and if so; y. generating format and conversion function declarations; z. if said current data type is not symbolic, generating class id and model id function declarations; and, aa. returning to said program at step r of claim 1 hereof.
Claim 8
Dependent Claim
101 words
A method as in claim 1 wherein said step of generating C to C++ wrapper functions for said current data type further comprises: u. determining if said current data type is not symbolic, and if not: i) generating object initializer functions; ii) generating conversion functions; v. if said current data type is not not symbolic, determining if said current data type is symbolic, and if so; w. generating format and conversion functions; x. if said current data type is not symbolic, generating class id and model id functions; and, y. returning to said program at step s of claim 1 hereof.
Claim 9
Dependent Claim
377 words
In a computer system having a user interface, a CPU, a memory, at least one disk drive, and an object-oriented repository, a program operating in said computer system for accessing said object-oriented repository, said program executing a method for mapping types in a model stored in said repository to language constructs for a C binding to said repository and writing said language constructs to a file on said at least one disk drive comprising the steps of: a. for each type in said model, determining if a current one of said types is valid for C binding, and if so; b. generating object initializer function declarations for said current type; c. determining if there are more properties for said current type, and if so; d. for each property for said current type, determining if a current one of said properties is valid for C binding, and if so; e. generating accessor function declarations for said current property; g. determining if said current property is not read-only, and if so; h. generating mutator function declarations for said current property; i. if there are no more properties for said current type, determining if there are more operations for said current type, and if so; j. for each operation for said current type, determining if a current one of said operations is valid for C binding, and if so; k. resolving operation name for said current operation; l. generating declaration for said current operation; m. if there are no more operations for said current type, generating special function declarations; n. generating C to C++ wrapper functions for said current type; o. determining if there are more of said types in said model, and if so, repeating steps a through n hereof; p. if there are no more types, then; q. for each data type in said model, determining if a current one of said data types is valid for C binding, and if so; r. generating function declarations for said current data type; s. generating C to C++ wrapper functions for said current data type; and, t. determining if there are more data types in said model, and if so, repeating steps q through s hereof; u. if there are no more data types in said model, stopping said program.
Claim 10
Dependent Claim
377 words
In a computer system having a user interface, a CPU, a memory, at least one disk drive, and an object-oriented repository, a program operating in said computer system for accessing said object-oriented repository, said program executing a method for mapping types in a model stored in said repository to language constructs for a C binding to said repository and writing said language constructs to a file on said at least one disk drive comprising the steps of: a. for each type in said model, determining if a current one of said types is valid for C binding, and if so; b. generating object initializer function declarations for said current type; c. determining if there are more properties for said current type, and if so; d. for each property for said current type, determining if a current one of said properties is valid for C binding, and if so; e. generating accessor function declarations for said current property; g. determining if said current property is not read-only, and if so; h. generating mutator function declarations for said current property; i. if there are no more properties for said current type, determining if there are more operations for said current type, and if so; j. for each operation for said current type, determining if a current one of said operations is valid for C binding, and if so; k. resolving operation name for said current operation; l. generating declaration for said current operation; m. if there are no more operations for said current type, generating special function declarations; n. generating C to C++ wrapper functions for said current type; o. determining if there are more of said types in said model, and if so, repeating steps a through n hereof; p. if there are no more types, then; q. for each data type in said model, determining if a current one of said data types is valid for C binding, and if so; r. generating function declarations for said current data type; s. generating C to C++ wrapper functions for said current data type; and, t. determining if there are more data types in said model, and if so, repeating steps q through s hereof; u. if there are no more data types in said model, stopping said program.
Claim 11
Dependent Claim
203 words
A method as in claim 8 wherein said step of generating C to C++ wrapper functions for said current type further comprises: v. generating object initializer functions for said current type; w. determining if there are more properties for said current type, and if so; x. for each property for said current type, determining if a current one of said properties is valid for C binding, and if so; y. generating C to C++ wrapper code for accessor functions for said current property, z. determining if said current property is not read-only, and if so; aa. generating C to C++ wrapper code for mutator functions for said current property; ab. if there are no more properties for said type, determining if there are more operations for said type, and if so; ac. for each operation for said type, determining if a current one of said operations is valid for C binding, and if so; ad. resolving operation name for said current operation; ae. generating a C to C++ wrapper function for said current operation; and, af. if there are no more operations for said type, generating a wrapper function for any special operations; and, ag. returning to step o of claim 8 hereof.
Claim 12
Dependent Claim
74 words
A method as in claim 9 wherein said step of generating C to C++ wrapper code for accessor functions further comprises: ah. generating function heading with correct parameters; ai. generating code to check myself parameter; aj. generating code for return if an error was found; ak. generating code to call C++ accessor; al. generating code to return a value for said accessor; and, am. returning to said program at step z of claim 9.
Claim 13
Dependent Claim
82 words
A method as in claim 9 wherein said step of generating C to C++ wrapper code for mutator functions further comprises: ah. generating function heading with correct parameters; ai. generating code to check myself parameter; ad. determining if said current property type is an object, and if so; ak. generating code to check object parameter; al. generating code for return if an error was found; am. generating code to call C++ mutator; and, an. returning to step x of claim 9 hereof.
Claim 14
Dependent Claim
373 words
A method as in claim 9 wherein said step of generating C to C++ wrapper function for an operation further comprises: ah. generating function heading with a return type and a parameter list for said operation; ai. determining if said operation is a class operation, and if so; aj. generating a check for UREP object parameter; ak. if said operation is not a class operation, generating a check for myself object parameter; al. determining if there are more parameters, and if so; am. for each parameter, declaring a local variable for correct type for a current one of said parameters; an. determining if said current parameter is a data type, and if so, ao. generating an assignment to said local variable; ap. if said current parameter is not a data type, determining if said current parameter is optional, and if so; aq. generating a check for a null object for said current parameter; ar. generating a call to check object function for said current parameter; as. generating code to store value in said local variable; m. if there are no more parameters for said operation, determining if said operation has a return value, and if so; at. generating code to return a null object if an error was found; au. if said operation does not have a return value, generating code to return if an error occurs; av. determining if said operation returns a value or a has a parameter that returns a value, and if so; aw. generating a local variable to hold said return value; ax. generating a call to said operation in C++ binding, and capturing said return value in said local variable; ay. determining if said current operation has output or input/output parameters, and if so; az. generating code to transfer values from C++ operation call to each of said parameter; ba. generating code to store said return value; bb. generating a return; bc. if said current operation does not return an object, generating a call to C++ operation in a return statement; bd. if said current operation does not return a parameter with an object, generating a call to C++ operation in a return statement; and, be. returning to said program at step ac of claim 9 hereof.
References Cited (Backward Citations)
US5421015A
Cited
US5557776A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-03-29 | 2002-09-28 | 2003-03-30 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-03-29 | 2006-09-28 | 2007-03-30 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-03-29 | 2010-09-28 | 2011-03-30 | $7700.00 | Window Closed / Lapsed |