Remove doc/API.txt (Babeltrace 1.x API documentation)
[babeltrace.git] / doc / API.txt
diff --git a/doc/API.txt b/doc/API.txt
deleted file mode 100644 (file)
index 918c353..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-Babeltrace API documentation
-
-Babeltrace provides trace read and write libraries, as well as a trace
-converter. A plugin can be created for any trace format to allow its
-conversion to/from another trace format.
-
-The main format expected to be converted to/from is the Common Trace
-Format (CTF). The latest version of the CTF specification can be found at:
-       git tree:   git://git.efficios.com/ctf.git
-       gitweb:     http://git.efficios.com/?p=ctf.git
-
-This document describes the main concepts to use the libbabeltrace,
-which exposes the Babeltrace trace reading capability.
-
-
-TERMINOLOGY
-¯¯¯¯¯¯¯¯¯¯¯
-
-* A "callback" is a reference to a piece of executable code (such as a
-  function) that is passed as an argument to another piece of code
-  (like another function).
-
-* A "context" is a structure that represents an object in which a trace
-  collection is opened.
-
-* An "iterator" is a structure that enables the user to traverse a trace.
-
-* A "trace handle" is a unique identifier representing a trace file.
-  It allows the user to manipulate a trace directly.
-
-* The "declaration" of a field or an event, is the structure which contains
-  the representaion of an object as declared in the metadata. All the
-  declarations of all events and fields can be accessed as soon as the trace is
-  open, but of course they contain no trace data, just the layout.
-
-* The "definition" of a field or an event is the structure in which the actual
-  trace data is contained. When we read an event in the trace, we access its
-  definition and we can access all the field definitions contained in all the
-  scopes of this event to the get the actual data.
-
-* "Scopes" allow specifying the level at which the information about the
-  current event must be fetched: event header, event payload, event context,
-  stream context. Compound-type (arrays, structures, sequences and variants)
-  fields are relative scopes which contain fields.
-
-
-USAGE
-¯¯¯¯¯¯
-
-Context:
-
-In order to use libbabeltrace to read a trace, the first step is to create a
-context structure and to add a trace to it. This is done using the
-bt_context_create() and bt_context_add_trace() functions. As long as this
-context structure is allocated and the trace is valid, the trace can be
-manipulated by the library.
-
-The context can be destroyed by calling one more bt_context_put() than
-bt_context_get(), functions which respectively decrement and increment the
-refcount of the context. These functions ensures that the context won't be
-destroyed when it is in use.
-
-Once a trace is added to the context, it can be read and seeked using iterators
-and callbacks.
-
-
-Iterator:
-
-An iterator can be created using the bt_iter_create() function. As of now, only
-ctf iterator are supported. These are used to traverse a ctf-formatted trace.
-Such iterators can be created with bt_ctf_iter_create().
-
-While creating an iterator, a begin and an end position may be specified. To do
-so, one or two struct bt_iter_pos must be passed. Such struct have two
-attributes: type and u. "type" is the seek type, can be either:
-       BT_SEEK_TIME
-       BT_SEEK_RESTORE
-       BT_SEEK_CUR
-       BT_SEEK_BEGIN
-       BT_SEEK_END
-and "u" is a union of the seek time (if using BT_SEEK_TIME) and the restore
-position (if using BT_SEEK_RESTORE).
-
-Once the iterator is created, various functions become available. We have
-bt_ctf_iter_read_event() which returns the ctf event of the trace where the
-iterator is set. There is also bt_ctf_iter_destroy() which frees the iterator.
-Note that only one iterator can be created in a context at the same time. If
-more than one iterator is being created for the same context, the second
-creation will return NULL. The previous iterator must be destroyed before
-creation of the new iterator. In the future, creation of multiples iterators
-will be allowed.
-
-The bt_ctf_iter_read_event_flags() function has the same behaviour as
-bt_ctf_iter_read_event() but takes an additionnal flag pointer. This flag is
-used to inform the user if a special condition occured while reading the event.
-As of now, only the BT_ITER_LOST_EVENTS is handled, it informs the user that
-some events were discarded by the tracer. To get the number of events lost
-immediately prior to the last event read, the user can call the
-bt_ctf_get_lost_events_count() function.
-
-Finally, we have the bt_ctf_get_iter() function which returns a struct bt_iter
-with which the iterator can be moved using one of these functions:
-       bt_iter_next(),         moves the iterator to the next event
-       bt_iter_set_pos(),      moves the iterator to the specified position
-
-To get the current position (struct bt_iter_pos) of the iterator, the function
-bt_iter_get_pos() must be used. To create an arbitrary position based on a
-specific time, bt_iter_create_time_pos() is the function to use. The
-bt_iter_pos structure returned by these two functions must be freed with
-bt_iter_free_pos() after use.
-
-
-CTF Event:
-
-A CTF event is obtained from an iterator via the bt_ctf_iter_read_event()
-function or via the call_data parameter of a callback. To read the data of a
-CTF event :
-       * bt_ctf_event_name()           returns the name of the event;
-       * bt_ctf_get_timestamp()        returns the timestamp of the event
-                                       offsetted with the system clock
-                                       source (in ns);
-       * bt_ctf_get_cycles()           returns the timestamp of the event as
-                                       written in the packet (in cycles).
-
-The payload of an event is divided in various scopes depending on the type of
-information. There are six top-level scopes (defined in the ctf_scope enum)
-which can be accessed by the bt_ctf_get_top_level_scope() function :
-       BT_TRACE_PACKET_HEADER          = 0,
-       BT_STREAM_PACKET_CONTEXT        = 1,
-       BT_STREAM_EVENT_HEADER          = 2,
-       BT_STREAM_EVENT_CONTEXT         = 3,
-       BT_EVENT_CONTEXT                = 4,
-       BT_EVENT_FIELDS                 = 5.
-
-In order to access a field or a field list, the user needs to pass a scope as
-argument, this scope can be a top-level scope or a scope relative to an
-arbitrary field in the case of compound types (array, sequence, structure or
-variant)
-
-For more information on each scope, see the CTF specifications.
-
-The bt_ctf_get_field_list() function gives access to the list of fields in the
-current event. The bt_ctf_get_field() function gives acces to of a specific
-field of an event.
-
-The bt_ctf_get_event_decl_list() and bt_ctf_get_decl_fields() functions give
-respectively access to the list of the events declared in a trace and the list
-of the fields declared in an event.
-
-Once the field is obtained, we can obtain its name and type using the
-bt_ctf_field_name() and bt_ctf_field_type() functions respectively. The
-possible types are defined in the ctf_type_id enum:
-       CTF_TYPE_UNKNOWN = 0,
-       CTF_TYPE_INTEGER,
-       CTF_TYPE_FLOAT,
-       CTF_TYPE_ENUM,
-       CTF_TYPE_STRING,
-       CTF_TYPE_STRUCT,
-       CTF_TYPE_UNTAGGED_VARIANT,
-       CTF_TYPE_VARIANT,
-       CTF_TYPE_ARRAY,
-       CTF_TYPE_SEQUENCE,
-       NR_CTF_TYPES.
-
-Depending on the field type, we can get informations about the field with the
-following functions:
-       * bt_ctf_get_index()            return the element at the index
-                                       position of an array of a sequence;
-
-       * bt_ctf_get_array_len()        return the length of an array;
-
-       * bt_ctf_get_int_signedness()   return the signedness of an integer;
-
-       * bt_ctf_get_int_base()         return the base of an integer;
-
-       * bt_ctf_get_int_byte_order()   return the byte order of an integer;
-
-       * bt_ctf_get_int_len()          return the size in bits of an integer;
-
-       * bt_ctf_get_encoding()         return the encoding of an int or a
-                                       string defined in the
-                                       ctf_string_encoding enum:
-                                               CTF_STRING_NONE = 0,
-                                               CTF_STRING_UTF8,
-                                               CTF_STRING_ASCII,
-                                               CTF_STRING_UNKNOWN.
-
-All of these functions require a field declaration as parameter, depending on
-the source type of data (struct definition* or struct bt_ctf_field_decl*), the
-user might have to call bt_ctf_get_decl_from_def() or
-bt_ctf_get_decl_from_field_decl().
-
-The following functions give access to the value associated with a field
-defintion:
-       * bt_ctf_get_uint64();
-       * bt_ctf_get_int64();
-       * bt_ctf_get_char_array();
-       * bt_ctf_get_string();
-       * bt_ctf_get_enum_int();
-       * bt_ctf_get_enum_str().
-
-If the field does not exist or is not of the type requested, the value returned
-with these four functions is undefined. To check if an error occured, use the
-bt_ctf_field_get_error() function after accessing a field. If no error
-occured, the function will return 0.
-
-It is also possible to access the declaration fields, the same way as the
-definition ones. bt_ctf_get_event_decl_list() sets a list to an array of
-bt_ctf_event_decl pointers and bt_ctf_get_event_decl_fields() sets a list to an
-array of bt_ctf_field_decl pointers.  From the first type, the name of the
-event can be obtained with bt_ctf_get_decl_event_name().  For the second type,
-the field decl name is obtained with bt_ctf_get_decl_field_name().
-
-The declaration functions allow the user to list the events, fields and
-contexts fields enabled in the trace once it is opened, whereas the definition
-functions apply on the current event being read.
-
-
-Callback:
-
-The iterator allow the user to read the trace, in order to access the events
-and fields, the user can either call the functions listed previously on each
-event, or register callbacks functions that are called when specific (or all)
-events are read.
-
-This is done with the bt_ctf_iter_add_callback() function. It requires a valid
-ctf iterator as the first argument. Here are all arguments:
-       iter: trace collection iterator (input)
-       event: event to target. 0 for all events.
-       private_data: private data pointer to pass to the callback
-       flags: specific flags controlling the behavior of this callback
-               (or'd).
-       callback: function pointer to call
-       depends: struct bt_dependency detailing the required computation
-               results.  Ends with 0.
-       weak_depends: struct bt_dependency detailing the optional computation
-               results that can be optionally consumed by this
-               callback.
-       provides: struct bt_dependency detailing the computation results
-               provided by this callback.
-               Ends with 0.
-
-"depends", "weak_depends" and "provides" memory is handled by the babeltrace
-library after this call succeeds or fails. These objects can still be used by
-the caller until the babeltrace iterator is destroyed, but they belong to the
-babeltrace library.
-
-As of now the flags and dependencies are not used, the callbacks are
-processed in FIFO order.
-
-Note: once implemented, the dependency graph will be calculated when
-bt_ctf_iter_read_event() is executed after a bt_ctf_iter_add_callback(). It is
-valid to create/add callbacks/read/add more callbacks/read some more.
-
-The callback function passed to bt_ctf_iter_add_callback() must return a
-bt_cb_ret value:
-       BT_CB_OK                = 0,
-       BT_CB_OK_STOP           = 1,
-       BT_CB_ERROR_STOP        = 2,
-       BT_CB_ERROR_CONTINUE    = 3.
-
-
-Trace handle:
-
-When a trace is added to a context, bt_context_add_trace() returns a trace
-handle id.  This id is associated with its corresponding trace handle.  With
-that id, it is possible to manipulate directly the trace.
-
-       * bt_trace_handle_get_path()
-               -> returns the path of the trace handle (path to the trace).
-
-       * bt_trace_handle_get_timestamp_begin()
-       * bt_trace_handle_get_timestamp_end()
-               -> return the creation/destruction timestamps (in ns or cycles
-                       depending on the type specified) of the buffers of a
-                       trace.
-
-       * bt_ctf_event_get_handle_id()
-               -> returns the handle id associated with an event.
-
-
-For more information on CTF, see the CTF documentation.
This page took 0.025629 seconds and 4 git commands to generate.