X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=doc%2Fapi%2Fdox%2Fmain-page.dox;fp=doc%2Fapi%2Fdox%2Fmain-page.dox;h=0000000000000000000000000000000000000000;hp=edc79d48e0270008c163cf6c2adc2a3742132a4e;hb=43c59509042845f8d42c3e99ec74d45fa2dc0908;hpb=1cda4ff4025e4b3f7bd2a861baa51d2113c4cbf9 diff --git a/doc/api/dox/main-page.dox b/doc/api/dox/main-page.dox deleted file mode 100644 index edc79d48..00000000 --- a/doc/api/dox/main-page.dox +++ /dev/null @@ -1,136 +0,0 @@ -/** -@mainpage Welcome! - -Welcome to the -Babeltrace \btversion C API documentation! - -Babeltrace is an open -source converter of -trace -formats. You can use its C API to -write custom source, sink, and filter -\link btcomponents component classes\endlink which you can package as user -\link btplugins plugins\endlink. - - -@section intro What's this API for? - -The goal of using this API is to create user -\link btplugins plugins\endlink. - -A Babeltrace plugin contains one or more -\link btcomponents component classes\endlink. - -A component class is either: - -- A \b source component class: creates producers of trace - events. -- A \b sink component class: creates consumers of trace events. -- A \b filter component class: creates components which are both a - producers and consumers of trace events. - -A program or library can instantiate as many concrete \em components as -needed from a single component class. At component instantiation time, -the component class's registered user initialization function is called -with custom user parameters. - -Plugins, as of Babeltrace \btversion, are built as dynamic libraries -(.so or .dll files) and loaded by the \c -babeltrace converter program. You can also get plugin objects from a -shared object file or from a directory containing shared object files -thanks to the C API. The converter program is responsible for passing -notifications and events from source components to filter components, if -any, and from filter components to sink components. - -@image html babeltrace-cli.png - -@section mainpagectfir CTF IR - -The internal representations of a trace, a stream, and an event follow -the Common Trace Format model. -Within the Babeltrace C API, this representation is called the -Common Trace Format Intermediate Representation, or -\link ctfir CTF IR\endlink. CTF IR is flexible enough to represent -almost any trace or logging format. - -The CTF IR model contains the following objects, amongst others: - -- A \link ctfirfieldtypes field type\endlink is the type of concrete - \link ctfirfields fields\endlink. - - For example, an integer field type contains the size (in bits) of the - integer fields it creates, as well as their byte order, whether or not - they are signed, and so on. An integer field that you create out of an - integer field type, however, only contains a raw integral value. You - can create many fields from a single field type. - -- An \link ctfireventclass event class\endlink is the type of - a concrete \link ctfirevent event\endlink. - - An event class contains the field types of its various scopes, while - an event contains the actual fields holding their values. - -- A \link ctfirstreamclass stream class\endlink is the type of - a concrete \link ctfirstream stream\endlink. - - A stream class contains the field types of its various scopes, while - \link ctfirpacket packets\endlink attached to a - \link ctfirstream stream\endlink instantiated from a - stream class contains the actual - fields holding their values.

A stream class is the parent of one or - more event classes. - - -- A \link ctfirtraceclass trace class\endlink describes traces. - - A trace class is the parent of one or more stream classes. - -- A \link ctfirclockclass clock class\endlink holds the common - properties of clock values that are instantiated in \link ctfirevent - events\endlink. - -@section mainpagevalues Value objects - -Some parts of the Babeltrace API require typical, generic scalar values -(boolean, integer, floating point number, string) organized in compound -objects (array, map). This is similar to the model that -JSON offers. - -For example, the environment of a -\link ctfirtraceclass CTF IR trace class\endlink maps strings to strings -or to integers, and the parameters passed to component instances take -the form of a map. - -For this purpose, the API uses -\link values value objects\endlink. - -@section mainpageref Reference counting - -All the Babeltrace objects have a -reference count -to make them shareable. -When you use a Babeltrace object creation function (for example, -bt_value_bool_create()), you get a new reference to the created -object. When you add this object to another one, the latter takes its -own reference using bt_get(), incrementing the shared object's reference -count. When you are done with an object, you must call bt_put() to drop -your reference, decrementing its reference count. When an object's -reference count reaches 0, the object is considered \em destroyed and -cannot be used anymore. - -See \ref refs for more details. - -The postconditions of the functions and macros documented here indicate -what you can expect from the reference counts of the Babeltrace objects -passed as parameters to and returned from API functions. - -@section mainpagefreeze Frozen objects - -The Babeltrace library can \em freeze almost all of the Babeltrace -objects. A frozen object is considered \em immutable, although you can -still get and put references to this object. - -The preconditions of the functions and macros documented here indicate -when they expect unfrozen objects. The postconditions indicate when -the functions and macros freeze an object. -*/