Ticket #196 (closed enhancement: fixed)

Opened 8 months ago

Last modified 8 months ago

C-binding

Reported by: jasper Owned by: jasper
Priority: major Milestone: Maintenance of Phase II
Component: Client Header Files Version: 1.2.0.14
Keywords: Cc:

Description

The COBIA client headers provide a language binding for C++. This however is not compatible with C compilers. A good starting point for binding to other language bindings is to allow for a C-language binding exposed via the client header files.

With #ifdef cplusplus the C and C++ specific bits can be separated. There are to be C and C++ specific parts for the COBIA API itself, but also for the code generated from IDL, which requires a code generator update.

The c-binding will not include interface adapters and wrappers, as this is not possible in plain C, nor a substitute for it in terms of callable functions, as this is not practical and we do not want to promote CAPE-OPEN development in plain C.

The generated C-binding however can serve as the basis for binding to other native languages, such as FORTRAN-90 and rust (the latter via the rust's bindgen tool).

Change History

comment:1 Changed 8 months ago by jasper

Changes are to apply to Phase III code only. Switch to phase III will be soon.

comment:2 Changed 8 months ago by jasper

  • Status changed from new to closed
  • Resolution set to fixed

comment:3 Changed 8 months ago by jasper

Additional fix in commit 03f21fc66349ccde56949c344442476565dfaa4e

comment:4 Changed 8 months ago by jasper

Additional fix in commit 151c5cc5a423d17c78319d34969b7f7ae0c16491

comment:5 Changed 8 months ago by jasper

Additional fix in commit db76b48011da434532b49c97af967cc98dc2b79c

comment:6 Changed 8 months ago by jasper

Additional fix in commit cb620842b90fc549245f2473e174b686d57e1fd9

Note: See TracTickets for help on using tickets.