INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES

indexing

title: "The operating system dynamic library such as a DLL or a shared library."
project: "Visual Eiffel Library"
revision: "$Revision: 1.1 $"
copyright: "Copyright (C) 1996-2005 Object Tools Group"
license: "http://visual-eiffel.com/license"
cluster: pool
class DYNAMIC_SYSTEM_LIBRARY
inherit

MEMORY
redefine
dispose
end

WAPI_DYNAMIC_LINK_LIBRARY_FUNCTIONS
end
creation

make
feature {NONE}-- Creation

make (lib_name: STRING)
require
non_void_lib_name: lib_name /= void
non_empty_lib_name: not lib_name.is_empty
ensure
name_set: equal (name, lib_name)
feature -- Status report

name: STRING

last_error: STRING

is_open: BOOLEAN
-- Is library loaded?
feature -- Status setting

open
-- Load the library
require
is_closed: not is_open
ensure
is_open: is_open = (last_error = void)

close
-- Unload the library
require
is_open: is_open
ensure
is_closed: not is_open
feature -- Query

routine_address (routine_name: STRING): POINTER
require
non_void_routine_name: routine_name /= void
non_empty_routine_name: not routine_name.is_empty
feature -- Removal

dispose
-- Free resources if necessary
invariant

non_void_name: name /= void
non_empty_name: not name.is_empty
end -- class DYNAMIC_SYSTEM_LIBRARY

INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES