IDL repositories
Tip icon
To better understand this section, examine the sample SstPingPongIiop.
IDL definitions play a central role in the marshaling of CORBA requests. Typically, a collection of parsed IDL definitions are maintained by an ORB in a repository which is accessed as needed (either statically or dynamically). SST does not, however, provide an IDL repository. Instead, it relies on the existence of an external third-party repository and simply caches locally the information found remotely.
When setting up an application context for use with IIOP, you can optionally specify either (or both) the path to a swapped out repository cache and an IOR for an external repository. For example:
idlRepository: iorString cache: cache
Sets the object reference for the IDL repository to @iorString, an IOR in string form. Sets the location for constructing the repository cache to @cache. @cache should be a file name or a zero argument block.
If the cache location is a file name, then the file should contain a swapped-out cache file (@cache). The swapped-out cache file is generated by dumping a primed repository cache to disk using the Swapper. SST includes a file (sstidlic.swp) which contains a swapped out repository cache primed with the GIOP, IOP, IIOP, and CORBA modules, together with CosNaming, CosLifeCycle, and CosTransactions. Alternatively, you can specify a block which, when sent value, will generate an appropriate repository cache. If the cache location is not provided then a limited repository cache is supplied by the system.
The repository IOR (@iorString) is a string that you can use an argument to the fromString: instance method of SstIor. Thus, it can be the output of CORBA::object_to_string() in the repository's native environment, the name of a file containing the IOR string, or an HTTP URL indicating the location of a page containing the IOR string. If the IOR is not provided then the definitions available in the primed cache file are the only definitions which will be available to you since there is no external repository in which to find more definitions.
If both the IOR and cache path are omitted, the system will still function but only in a limited way.
The default IDL-Smalltalk mapping specifies that IDL structures map to instances of Dictionary. In some situations, you might prefer to represent structures by objects outside of the Dictionary hierarchy. SST provides support for this by allowing you to map a repository type ID (for a particular IDL struct definition) to a Smalltalk class. You establish this mapping using the type:matches: method in SstIdlRepository. The specified Smalltalk class must implement setter and getter methods for each of the attributes of the IDL structure definition.
Last modified date: 04/21/2020