File: api_full.rst

package info (click to toggle)
adios2 2.10.2%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 33,764 kB
  • sloc: cpp: 175,964; ansic: 160,510; f90: 14,630; yacc: 12,668; python: 7,275; perl: 7,126; sh: 2,825; lisp: 1,106; xml: 1,049; makefile: 579; lex: 557
file content (73 lines) | stat: -rw-r--r-- 2,404 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#########
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               |
+----------+----------+-------------------------+
|          | 11/newer | ``#include adios2.h``   |
| C++      |          |                         |
|          | older    | use C bindings          |
+----------+----------+-------------------------+
| C        | 99       | ``#include adios2_c.h`` |
+----------+----------+-------------------------+
| Fortran  | 90       | ``use adios2``          |
+----------+----------+-------------------------+
|          | 2.7      | ``import adios2``       |
| Python   |          |                         |
|          | 3        | ``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.

.. include:: cxx11.rst
.. include:: fortran.rst
.. include:: c.rst