[ Home Page ] [ Eiffel Archive ] [ Tools for Eiffel Developers | Eiffel Classes and Clusters ]

Arc de Triomphe clipart (2486 bytes)eext - Portable external calls


Written by Pirmin Kalberer.

eext-991228.zip (7,900 bytes)
SmallEiffel Mailing List Announcement and thread
http://www.spin.ch/~kalberer/eiffel/ (for Eiffel Projects)
http://www.spin.ch/~kalberer/ (Pirmin Kalberer's home page)


eext - Portable external calls

Description

The attached file contains a first draft of a portable class for external interfaces.

The class is written in the style of the Gobo kernel library. It should help to develop a portable GTK wrapper and to make swigeiffel portable.

The test program was successfully compiled with se and ise. It compiles also with VE (v2.96 Beta for Linux), but the string output in the C code is missing --> HELP! The short form:

class interface KL_EXTERNAL_ROUTINES
feature(s) from KL_EXTERNAL_ROUTINES
   --  conversion of Eiffel to C types
   any_to_pointer (arg: ANY): POINTER
   string_to_pointer (arg: STRING): POINTER
      --  A reference to a C form of string `arg'
      --  Warning: Memory is shared between Eiffel and C
   string_to_pointer_copy (arg: STRING): POINTER
      --  Create a new C string copied from `arg'
      --  Warning: Memory of C string is not collected by Eiffel GC
   array_to_pointer (arg: ARRAY[ANY]): POINTER
   string_array_to_pointer (arg: ARRAY[STRING]): POINTER
      --  Convert an ARRAY of STRINGs to char **
feature(s) from KL_EXTERNAL_ROUTINES
   --  conversion of C to Eiffel types
   pointer_to_string (arg: POINTER): STRING
      --  Warning: Memory is shared between Eiffel and C
   pointer_to_string_copy (arg: POINTER): STRING
feature(s) from KL_EXTERNAL_ROUTINES
   get_pointer (arg: POINTER): POINTER
      --  Return `arg' as POINTER type
      --  Example: ptr := get_pointer($print)
end of KL_EXTERNAL_ROUTINES

Could someone invest some time to complete and test it?

Pirmin

Pirmin Kalberer (kalberer@spin.ch)
http://www.spin.ch/~kalberer/

25 September 1999 (Added to Eiffel Forum Archive: 28 December 1999)


[ Home Page ] [ Eiffel Archive ] [ Tools for Eiffel Developers | Eiffel Classes and Clusters ]