X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fgraph%2Fgraph-const.h;h=9cb12acfd02ad7ed62822b06e7bdb081f965fe18;hb=cd6128ca5412c3b9cb40afe2580008329f612930;hp=e2f24e0563a27d7a5c0b31107117709cd8a1dab3;hpb=0d72b8c329ad51d14ab4e83330b38c2c8da69dd4;p=babeltrace.git diff --git a/include/babeltrace/graph/graph-const.h b/include/babeltrace/graph/graph-const.h index e2f24e05..9cb12acf 100644 --- a/include/babeltrace/graph/graph-const.h +++ b/include/babeltrace/graph/graph-const.h @@ -2,10 +2,9 @@ #define BABELTRACE_GRAPH_GRAPH_CONST_H /* + * Copyright 2017-2018 Philippe Proulx * Copyright 2017 Jérémie Galarneau * - * Author: Jérémie Galarneau - * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights @@ -25,27 +24,41 @@ * SOFTWARE. */ -/* For bt_bool */ +/* For bt_bool, bt_graph */ #include #ifdef __cplusplus extern "C" { #endif -struct bt_graph; - -enum bt_graph_status { +typedef enum bt_graph_status { BT_GRAPH_STATUS_OK = 0, BT_GRAPH_STATUS_END = 1, BT_GRAPH_STATUS_AGAIN = 11, BT_GRAPH_STATUS_COMPONENT_REFUSES_PORT_CONNECTION = 111, BT_GRAPH_STATUS_CANCELED = 125, BT_GRAPH_STATUS_ERROR = -1, - BT_GRAPH_STATUS_NO_SINK = -6, BT_GRAPH_STATUS_NOMEM = -12, -}; +} bt_graph_status; + +extern bt_bool bt_graph_is_canceled(const bt_graph *graph); + +extern void bt_graph_get_ref(const bt_graph *graph); + +extern void bt_graph_put_ref(const bt_graph *graph); + +#define BT_GRAPH_PUT_REF_AND_RESET(_var) \ + do { \ + bt_graph_put_ref(_var); \ + (_var) = NULL; \ + } while (0) -extern bt_bool bt_graph_is_canceled(const struct bt_graph *graph); +#define BT_GRAPH_MOVE_REF(_var_dst, _var_src) \ + do { \ + bt_graph_put_ref(_var_dst); \ + (_var_dst) = (_var_src); \ + (_var_src) = NULL; \ + } while (0) #ifdef __cplusplus }