In a simple bind, the names and the types of the two players involved must be identical, or the UniCon compiler will report these conditions as errors and will not perform the bind. The system designer can use the Rename property in the property list of a simple bind to resolve a name mismatch, however. When the UniCon compiler encounters the Rename property in a simple bind, it allows a name mismatch to be legal in the definition, and it resolves the name mismatch in the source code implementation during the system build. The Rename property is not necessary (and therefore not legal) in the property list of an abstraction bind because name mismatches are resolved by using the Match property.
In ProcedureCall, DataAccess, and RemoteProcCall connections, the names of all players in the connection must be identical. If they are not, the UniCon compiler reports this as an error and does not perform the connection. The system designer can use the Rename property in the property list of a connector instantiation or definition to resolve a name mismatch, however. When the UniCon compiler encounters the Rename property in a
ProcedureCall, DataAccess, or RemoteProcCall connection, it does not report name mismatches as errors, and it resolves the mismatches in the source code implementation of the system. The compiler renames all of the <identifier>s in the implementation that are associated with the players in the connection to a common, generated name. It does this during system construction with C language macros supplied in the compilation step of each source code module involved in the connection (with the -D compiler option). The Rename property is only legal in connectors of type ProcedureCall, DataAccess, and RemoteProcCall.
Although the Rename property can be specified in the <protocol> property list of a connector definition, it is typically specified in the the property list of a connector instantiation (i.e., in the property list of an <establish> or an <instantiation> of a connector). If specified in a connector definition, then every instantiation of that connector will allow name mismatches to be legal. Leaving this property out of a connector definition makes it more general, and it can be parameterized with the property during an instantiation.
There is no default value for the Rename property; it has no value part.
The merge rule for the Rename property has no effect, since the Rename property has no value part. The UniCon compiler simply views the property has either having been specified or not.
ESTABLISH RTM-remote-proc-call WITH client.timeget AS Caller server.timeget_routine AS Definer RENAME IDLTYPE (mach) END RTM-remote-proc-callThe UniCon compiler will rename the identifiers timeget and timeget_routine in the implementation to a third, generated identifier. It will also generate the correct "glue code" for the remote procedure call connection and then build the system successfully. The Rename property must be present in order for the UniCon compiler to do the renaming. If it is not present, the compiler will report the name mismatch as an error.
Below is an example of the Rename property embedded in a simple bind. Assume for the sake of the example that this simple bind is contained in the composite implementation of a component that is exporting a RoutineDef player called timeget in the interface. Assume also that in the composite implementation, before this simple bind definition, there is an instantiation of a Module component containing a RoutineDef player called timeget_routine. Assume that the instantiation name of the Module component is clientapp:
BIND timeget TO clientapp.timeget_routine RENAME END timegetThe Rename property is required to resolve a name mismatch in a simple bind. If this prop
Author:
Last Modified: May 12, 1996