RAD Namespace in C

Most RAD objects are represented in the abstract data representation (ADR) document as interfaces. You can search RAD objects by searching the RAD namespace.

To access a RAD object, you need the following:

  • A proxy, which can be used to search the RAD namespace. An interface proxy class allows you to use a proxy to search the RAD namespace. Interface proxy is defined in the binding module of each interface.

  • The list and lookup functions (module_interface__rad_list() and module_interface__ rad_lookup()) provided by client binding library of a module. These functions also provide the option to perform either strict or relaxed versioning.

    Note:

    These functions use a double underscore between interface and the following function.

As RAD interfaces become more extensive in Oracle Solaris, the probability of two clients interoperating increases when using the strict and relaxed API versioning. Each versioning mode is applicable on a per-interface and per-connection basis.

Relaxed versioning is the default mode for RAD communication. In this mode, RAD accepts connections for any minor version of an interface if the major version of the server module matches the major version of the client binding. Relaxed versioning mode maximizes the cross-system compatibility of the interfaces. In strict versioning mode, RAD rejects the client unless the minor version of the module at the server is greater than or equal to the minor version of the client binding.

The proxy automatically provides the base name and the version details using functions for the interface instances. It is structured as follows:

<domain name>:type=<interface name>[,optional additional key value pairs]

The <domain name> and the <interface name> are automatically derived from the ADR interface description language (IDL) definition and are stored in the module binding.

Certain interfaces return or accept object references directly to or from clients. These objects might not be named. Objects that are not named are anonymous. Anonymous objects cannot be looked up in the RAD namespace, but the interface provides access methods that make it simple to interact with them.