Home
Categories
Dictionary
Glossary
Download
Project Details
Changes Log
What Links Here
FAQ
License

C modules



C modules are modules which are implemented as dlls coded in C. There are two ways to interface with a C library for these modules:
  • The basic way. This is the simplest way to make the interface as for the framework, but it is more invasive for the C library
  • A way which involves the specification of an interfacing configuration. With this way, you will need to create a Java library to perform the interfacing, but it is much less invasive for the C library
The framework uses JNA to interface with the C library.

Deployment

These modules do not need a deployment in their parent application because they are scripted.

Declaration

These modules are declared by the top-level cModule element. For example:
      <cModule name="FlightManagementSystem">

C module implementation

Setting a project for the C module dll


Basic C modules

Main Article: Basic C modules

The cImplementation element declares the C dll which implements the module. For example:

      <cModule name="FlightManagementSystem">
         <cImplementation path="myCLib" />
      </cModule>
The path attribute refer to the name of the dll (without the ".dll" extension) which implements the module. The path of this file is by default relative to the application.xml file which declares the module.

Configured C modules

Main Article: Configured C modules

The cImplementation element declares the C dll which implements the module. For example:

      <cModule name="FlightManagementSystem" nativeConfig="nativeConf.xml">
         <cImplementation path="myCLib" />
      </cModule>
The path attribute refer to the name of the dll (without the ".dll" extension) which implements the module. The path of this file is by default relative to the application.xml file which declares the module.

The nativeConfig attribute specifies the interfacing configuration.

See also


Categories: concepts | development

Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence