Skip to content

Latest commit

 

History

History
73 lines (51 loc) · 2.35 KB

api_full.rst

File metadata and controls

73 lines (51 loc) · 2.35 KB

Full APIs

Note

Application developers who desire fine-grained control of IO tasks should use the Full APIs. In simple cases (e.g. reading a file for analysis, interactive Python, or saving some data for a small project or tests) please refer to the :ref:`High-Level APIs`.

Currently ADIOS2 support bindings for the following languages and their minimum standards:

Language Standard Interface
C++

11/newer

older

#include adios2.h

use C bindings

C 99 #include adios2_c.h
Fortran 90 use adios2
Python

2.7

3

import adios2

import adios2

Tip

Prefer the C++11 bindings if your application C++ compiler supports the 2011 (or later) standard. For code using previous C++ standards (98 or 03) use the C bindings for ABI compatibility.

Caution!

Statically linked libraries (*.a) might result in conflicting ABIs between an older C++ project, the C bindings, and the adios native C++11 library. Test to make sure it works for your platform.

The current interaction flow for each language binding API with the ADIOS2 library is specified as follows

.. blockdiag ::

   diagram {
      default_fontsize = 22;
      default_shape = roundedbox;
      default_linecolor = blue;

      "ADIOS2" -> "C++11", C, Python;
      C -> Fortran, Matlab;

      "ADIOS2"[width = 200, height = 60]

      group{
         label = "C++11 Library"
         color = orange

         "ADIOS2";
      }

      group{
         label = "Language bindings APIs"
         color = yellow

         "C++11", C, Python, Fortran, Matlab;
      }
   }

The following sections provide a summary of the API calls on each language and links to Write and Read examples to put it all together.