Client Library Declarations
In this context, a client program can be defined as a program that links to a connection library through a client library declaration rather than a connection block and connection library declaration.
INTERFACENAME Attribute
A client library can link to a connection library in much the same way as to a server library. The only difference is that, when linking to connection libraries, the INTERFACENAME attribute specifies the connection library to which to link.
The INTERFACENAME attribute does not replace the LIBACCESS, TITLE, and FUNCTIONNAME attributes. The latter attributes serve their usual purpose of identifying the library program to which to link. The INTERFACENAME attribute supplements this information by identifying a particular connection library within the connection library program.
INTERFACENAME Default Value
If the client program does not explicitly assign INTERFACENAME to the client library, then the INTNAME value is used as the default for INTERFACENAME; if INTNAME is also not assigned, then the library identifier is used.
Types of Linkage
A client program can link to a connection library through explicit linkage, implicit linkage, or direct linkage.
Example
The following ALGOL statements reside in a client program. These statements declare a client library CL1 and initiate explicit linkage for that library:
LIBRARY CL1 (LIBACCESS = BYTITLE, TITLE = “OBJECT/CLTEST.”,
INTERFACENAME = “CLTEST.”);
PROCEDURE PROC1;
LIBRARY CL1;
RSLT:= LINKLIBRARY (CL1);The following statements reside in OBJECT/CLTEST, the connection library program that is being linked to:
TYPE CONNECTION BLOCK TEST1;
BEGIN
PROCEDURE PROC1;
BEGIN
% Procedure body statements
END;
EXPORT PROC1;
END;
TEST1 LIBRARY CL1 (INTERFACENAME=“CLTEST.”, CONNECTIONS = 2);
RYRSLT:= READYCL (CL1);In the preceding example, the READYCL function is necessary so that the LINKLIBRARY function in the client program can succeed.

