GNU
|
Liberty Eiffel
|
Automated Tests
|
Wiki
|
Savannah project
|
Debian packages
|
Documentation
>
libraries
>
FOREIGN_DLL_FUNCTION
+
Point of view
All features
ANY
All features
class FOREIGN_DLL_FUNCTION
Summary
top
Direct parents
Inherit list:
FOREIGN_AGENT
Class invariant
top
ffi_call /= Void
parameter_types /= Void
Overview
top
Creation features
{
FOREIGN_DLL
}
make
(external_function:
POINTER
, a_parameter_types:
TRAVERSABLE
[
FOREIGN_TYPE
], a_result_type:
FOREIGN_TYPE
)
Features
{}
make
(external_function:
POINTER
, a_parameter_types:
TRAVERSABLE
[
FOREIGN_TYPE
], a_result_type:
FOREIGN_TYPE
)
{
ANY
}
call
(parameters:
FOREIGN_PARAMETERS
)
item
(parameters:
FOREIGN_PARAMETERS
):
FOREIGN_OBJECT
parameter_types
:
TRAVERSABLE
[
FOREIGN_TYPE
]
result_type
:
FOREIGN_TYPE
{}
ffi_call
:
FFI_CALL
types
:
FOREIGN_TYPES
prepare
(a_function:
POINTER
)
make
(external_function:
POINTER
, a_parameter_types:
TRAVERSABLE
[
FOREIGN_TYPE
], a_result_type:
FOREIGN_TYPE
)
effective procedure
{}
top
require
external_function.is_not_null
a_parameter_types /= Void
ensure
parameter_types
= a_parameter_types
result_type
.is_equal(a_result_type)
call
(parameters:
FOREIGN_PARAMETERS
)
effective procedure
{
ANY
}
top
require
parameters.match_types(
parameter_types
)
result_type
.is_equal(
types
.nothing)
item
(parameters:
FOREIGN_PARAMETERS
):
FOREIGN_OBJECT
effective function
{
ANY
}
top
require
parameters.match_types(
parameter_types
)
not
result_type
.is_equal(
types
.nothing)
ensure
Result.match_type(
result_type
)
parameter_types
:
TRAVERSABLE
[
FOREIGN_TYPE
]
writable attribute
{
ANY
}
top
result_type
:
FOREIGN_TYPE
writable attribute
{
ANY
}
top
ffi_call
:
FFI_CALL
writable attribute
{}
top
types
:
FOREIGN_TYPES
writable attribute
{}
top
prepare
(a_function:
POINTER
)
effective procedure
{}
top
require
ffi_call
= Void
a_function.is_not_null
ensure
ffi_call
/= Void