actf 0.0.1
An acute CTF reader
Loading...
Searching...
No Matches
/home/adwe/code/actf/freader.h File Reference

A file-based CTF2 reader and its methods. More...

#include <stdbool.h>
#include <stddef.h>
#include "event.h"

Go to the source code of this file.

Data Structures

struct  actf_freader_cfg
 The configuration of a CTF2 FS reader. More...

Typedefs

typedef struct actf_freader actf_freader
 CTF2 FS Reader.

Functions

actf_freaderactf_freader_init (struct actf_freader_cfg cfg)
 Initialize a CTF2 FS reader.
int actf_freader_open_folder (actf_freader *rd, char *path)
 Open a CTF2 trace directory and sets up generators to read it.
int actf_freader_open_folders (actf_freader *rd, char **paths, size_t len)
 Like actf_freader_open_folder() but allows multiple CTF2 directories to be specified.
int actf_freader_read (actf_freader *rd, actf_event ***evs, size_t *evs_len)
int actf_freader_seek_ns_from_origin (actf_freader *rd, int64_t tstamp)
const char * actf_freader_last_error (actf_freader *rd)
void actf_freader_free (actf_freader *rd)
 Free a reader.
struct actf_event_generator actf_freader_to_generator (actf_freader *rd)
 Create an event generator based on a reader.

Detailed Description

A file-based CTF2 reader and its methods.

The reader implements a CTF2-FS-1.0 consumer: https://diamon.org/ctf/files/CTF2-FS-1.0.html

Function Documentation

◆ actf_freader_init()

actf_freader * actf_freader_init ( struct actf_freader_cfg cfg)

Initialize a CTF2 FS reader.

Parameters
cfgthe configuration
Returns
the reader or NULL with errno set. A returned reader should be freed with actf_freader_free().

◆ actf_freader_open_folder()

int actf_freader_open_folder ( actf_freader * rd,
char * path )

Open a CTF2 trace directory and sets up generators to read it.

Does the following:

  1. Reads the CTF2 metadata
  2. Constructs a decoder for each data stream file
  3. Hooks up all decoders to a muxer
Parameters
rdthe reader
paththe path to a CTF2 trace directory
Returns
ACTF_OK on success or an error code. On error, see actf_last_error().

◆ actf_freader_open_folders()

int actf_freader_open_folders ( actf_freader * rd,
char ** paths,
size_t len )

Like actf_freader_open_folder() but allows multiple CTF2 directories to be specified.

The data streams of all CTF2 directories will be hooked up to the same muxer.

◆ actf_freader_read()

int actf_freader_read ( actf_freader * rd,
actf_event *** evs,
size_t * evs_len )

◆ actf_freader_seek_ns_from_origin()

int actf_freader_seek_ns_from_origin ( actf_freader * rd,
int64_t tstamp )

◆ actf_freader_last_error()

const char * actf_freader_last_error ( actf_freader * rd)
See also
actf_last_error

◆ actf_freader_free()

void actf_freader_free ( actf_freader * rd)

Free a reader.

Parameters
rdthe reader

◆ actf_freader_to_generator()

struct actf_event_generator actf_freader_to_generator ( actf_freader * rd)

Create an event generator based on a reader.

The reader is owned by the caller and must be kept alive as long as the event generator is in use.

Parameters
rdthe reader
Returns
an event generator