REQUIRE()

From Lianjapedia
Revision as of 20:09, 10 March 2021 by Barrymavin (Talk | contribs)

Jump to: navigation, search

Purpose

Load a library file built with the Lianja C Extensions API, a Lianja procedure library or a JavaScript (.js), PHP (.php) or Python (.py) file

Syntax

REQUIRE(<expC>)

See Also

CLOSE PROCEDURE, DO, FUNCTION, INCLUDE(), INCLUDE_ONCE(), LIST PROCEDURE, PARAMETERS, PROCEDURE, RELEASE LIBRARY, REQUIRE_ONCE(), SET LIBRARY

Description

The REQUIRE() function opens the specified, scans the contents of it, and records the names and positions of the procedures defined within it. The <expC> is the name of the library file, which can be a Lianja API or Lianja procedure library file or a JavaScript (.js), PHP (.php) or Python (.py) file. If the file extension is not stated, '.so' is assumed on Linux. To load a Lianja procedure or class library file, the '.prg' or '.dbo' file extension must be included. You can place as many procedures or classes as you want in a procedure library file.

The SET LIBRARY TO command, without any filename specified, closes all active C Extensions library files. A closed library file discards any knowledge of where the procedures within reside. The RELEASE LIBRARY <library filename> command can be used to close an individual C Extensions library file.

The SET PROCEDURE and CLOSE PROCEDURE commands can also be used to handle Lianja procedure library files.

The active procedures and functions can be listed with the LIST or DISPLAY PROCEDURE commands.

In Lianja 6 dynamically loadable modules are now supported.

This provides OO encapsulation for existing code so that loading a library does not "pollute" the namespace and create potential problems due to name clashes.

Use the require() function to dynamically load a library and reference its public variables and procedures/functions in an OO manner.

The filename specified as the argument to the require() function must exist in the Lianja path or be prefixed with a special prefix e.g lib:/ or thirdpartylibs:/

Example

// Open Samples.so API procedure library
require("Samples")
// Close pdf.so API procedure library
release library pdf.so
// Close all active API procedure library files
set library to