/*! @mainpage Välkommen! @note This documentation (text and illustrations) is licensed under a Creative Commons Attribution-ShareAlike 4.0 International license. Welcome to the \bt_api (libbabeltrace2) documentation! To get an idea of how to use the libbabeltrace2 API, have a look at the \ref guides "guides" and \ref examples "examples". That being said, we recommend that you read the \ref api-fund to understand what the API expects exactly. If you are developing a \bt_name \bt_plugin or an application which uses libbabeltrace2, we recommend that you \ref guide-build-bt2-dev "build the \bt_name library for development". @section main-bt2-nutshell \bt_name in a nutshell \bt_name is an open-source software project by EfficiOS; its purpose is to process or convert traces. The \bt_name project contains: - A library, libbabeltrace2, which all the other parts rely on. libbabeltrace2 offers a C99 interface. This documentation is about libbabeltrace2's API. - A command-line program, \bt_cli, which can convert and manipulate traces. - Python 3 bindings which offer a Pythonic interface of libbabeltrace2. - "Standard" plugins which ship with the project. Common Trace Format (CTF) input and output, plain text input and output, and various utilities are part of those plugins. With the \bt_name library, you can: - Write custom \ref api-comp-cls-src "source", \ref api-comp-cls-flt "filter", \ref api-comp-cls-sink "sink" component classes which you can package as \bt_p_plugin. Component classes are instantiated as \bt_p_comp within a trace processing \bt_graph and components are assembled to accomplish a trace manipulation or conversion job. - Load \bt_p_plugin, instantiate their component classes within a trace processing \bt_graph, connect the components as needed, and run the graph to accomplish a trace manipulation or conversion job. This is what the \bt_cli CLI tool's convert and run commands do, for example. A trace processing \bt_graph contains connected components. The specific component topology determines the trace processing task to realize. @image html basic-convert-graph.png "A conversion graph, a specific trace processing graph." Between the components of a trace processing graph, \bt_p_msg flow from \bt_p_oport to \bt_p_iport following the configured \bt_p_conn through \bt_p_msg_iter. There are many types of messages, chief amongst which is the \bt_ev_msg. With libbabeltrace2, you can also \ref api-qexec "query" some specific object from a component class (for example, the available LTTng live sessions of an LTTng relay daemon). This is what the \bt_cli CLI tool's query command does, for example. Make sure to read \bt_man{babeltrace2-intro,7} to learn even more about the \bt_name project and its core concepts. @section main-contents What's in this documentation?
\ref api-fund
Explains the basic principles of the \bt_api. Make sure you understand this section as you need this knowledge to use the API correctly.
\ref guides
Shows how to achieve common tasks with libbabeltrace2. Guides help you navigate through the most important features of the library and its API.
\ref examples
Contains simple and more complex examples which apply the different parts of the API to accomplish real tasks.
API reference
Documents all the \bt_name C functions, definitions, macros, enumerators, and types. Each documentation module describes its API thoroughly and how it's related to other modules.
*/