Index

Package: Module

Description

package Glib.Module is
This package provides wrapper code for dynamic module loading

Types

Module_Flags

type Module_Flags is mod 2 ** 32;

G_Module

type G_Module is new C_Proxy;

Constants & Global variables

Module_Bind_Lazy (Module_Flags)

Module_Bind_Lazy : constant Module_Flags := 2 ** 0;

Module_Bind_Mask (Module_Flags)

Module_Bind_Mask : constant Module_Flags := 16#1#;

Subprograms & Entries

Module_Supported

function Module_Supported return Boolean;
Return True if dynamic module loading is supported

Module_Open

function Module_Open 
(File_Name: String;
Flags: Module_Flags := Module_Bind_Lazy) return G_Module;
Open a module `file_name' and return handle, which is null on error.

Module_Close

function Module_Close 
(Module: G_Module) return Boolean;
Close a previously opened module, return True on success.

Module_Make_Resident

procedure Module_Make_Resident 
(Module: G_Module);
Make a module resident so Module_Close on it will be ignored

Module_Error

function Module_Error return String;
Query the last module error as a string

Generic_Module_Symbol (generic)

generic type Pointer is private;--  This is typically a pointer to procedure/function.  procedure Generic_Module_Symbol 
(Module: G_Module;
Symbol_Name: String;
Symbol: out Pointer;
Success: out Boolean);
Retrieve a symbol pointer from `module'. Success is set to True on success.

Module_Name

function Module_Name 
(Module: G_Module) return String;
Retrieve the file name from an existing module

Module_Build_Path

function Module_Build_Path 
(Directory: String;
Module_Name: String) return String;
Build the actual file name containing a module. `directory' is the directory where the module file is supposed to be, or the null string in which case it should either be in the current directory or, on some operating systems, in some standard place, for instance on the PATH. Hence, to be absolutely sure to get the correct module, always pass in a directory. The file name consists of the directory, if supplied, and `module_name' suitably decorated accoring to the operating system's conventions (for instance lib*.so or *.dll). No checks are made that the file exists, or is of correct type.