-<div id="Binding\ code\ generation"></div>
-
-Binding code generation
------------------------
-
-The binding API is rather simple; functions receive a json object
-describing arguments and return a json object describing the result or
-an error. In order to simplify development, the
-`generate-binding-glue.py` script was added, that contains a description
-of the API as a python dictionary. This script generates the header
-`afb_binding_api.hpp` and the afb binding functions as
-`afb_binding_glue.inl`. Where the latter is included in `main.cpp`.
-
-Each function for the AFB binding that is generated does the following:
-
-- Lock the binding mutex, so that we serialize all access to
- the binding.
-
-- Do some debug logging (if wanted).
-
-- Check the binding state, i.e. the compositor might have exited
- unexpectedly at which point it would not make sense to continue.
-
-- Extract the arguments from the json object that is provided (doing
- some primitive type checking).
-
-- Call the afb\_binding\_api method corresponding to this binding
- function
-
-- Check the afb\_binding\_api’s function return value, log an error
- state and return the result to the afb request.
-
-The generated functions do also check for any "loose" exception that
-comes out of the afb\_binding\_api call (which in turn might call the
-actual non-trivial implementation in `App`). However, **IF** an
-exception is thrown and not handled inside the afb\_binding\_call, that
-internal state of the window manager might be broken at this time (hence
-the talkative error log).
-