/*
+ * SPDX-License-Identifier: MIT
+ *
* Copyright 2013, 2014 Jérémie Galarneau <jeremie.galarneau@efficios.com>
* Copyright 2017-2018 Philippe Proulx <pproulx@efficios.com>
- *
- * 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
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
*/
#define BT_LOG_TAG "CTF-WRITER/EVENT"
#include "logging.h"
#include <inttypes.h>
+#include <stdbool.h>
#include <babeltrace2-ctf-writer/event.h>
#include <babeltrace2-ctf-writer/fields.h>
int bt_ctf_event_common_create_fields(
struct bt_ctf_stream_class_common *stream_class,
struct bt_ctf_validation_output *validation_output,
- create_field_func create_field_func,
- release_field_func release_field_func,
- create_header_field_func create_header_field_func,
- release_header_field_func release_header_field_func,
+ create_field_func_type create_field_func,
+ release_field_func_type release_field_func,
+ create_header_field_func_type create_header_field_func,
+ release_header_field_func_type release_header_field_func,
struct bt_ctf_field_wrapper **header_field,
struct bt_ctf_field_common **stream_event_context_field,
struct bt_ctf_field_common **context_field,
return ret;
}
-BT_HIDDEN
int _bt_ctf_event_common_validate(struct bt_ctf_event_common *event)
{
int ret = 0;
return ret;
}
-BT_HIDDEN
void _bt_ctf_event_common_set_is_frozen(struct bt_ctf_event_common *event,
bool is_frozen)
{
event->frozen = is_frozen;
}
-BT_HIDDEN
int bt_ctf_event_common_initialize(struct bt_ctf_event_common *event,
struct bt_ctf_event_class_common *event_class,
struct bt_ctf_clock_class *init_expected_clock_class,
int (*map_clock_classes_func)(struct bt_ctf_stream_class_common *stream_class,
struct bt_ctf_field_type_common *packet_context_field_type,
struct bt_ctf_field_type_common *event_header_field_type),
- create_field_func create_field_func,
- release_field_func release_field_func,
- create_header_field_func create_header_field_func,
- release_header_field_func release_header_field_func)
+ create_field_func_type create_field_func,
+ release_field_func_type release_field_func,
+ create_header_field_func_type create_header_field_func,
+ release_header_field_func_type release_header_field_func)
{
int ret;
struct bt_ctf_trace_common *trace = NULL;
return ret;
}
+static
int map_clock_classes_func(struct bt_ctf_stream_class_common *stream_class,
struct bt_ctf_field_type_common *packet_context_type,
struct bt_ctf_field_type_common *event_header_type)
static
void destroy_event_header_field(struct bt_ctf_field_wrapper *field_wrapper,
- struct bt_ctf_stream_class *stream_class)
+ struct bt_ctf_stream_class *stream_class __attribute__((unused)))
{
BT_ASSERT_DBG(field_wrapper);
bt_ctf_object_put_ref(field_wrapper->field);
static
void release_event_header_field(struct bt_ctf_field_wrapper *field_wrapper,
- struct bt_ctf_event_common *event_common)
+ struct bt_ctf_event_common *event_common __attribute__((unused)))
{
BT_ASSERT_DBG(field_wrapper);
BT_CTF_OBJECT_PUT_REF_AND_RESET(field_wrapper->field);
g_free(obj);
}
+BT_EXPORT
struct bt_ctf_event *bt_ctf_event_create(struct bt_ctf_event_class *event_class)
{
int ret;
(bt_ctf_validation_flag_copy_field_type_func)
bt_ctf_field_type_copy,
false, map_clock_classes_func,
- (create_field_func) bt_ctf_field_create,
- (release_field_func) bt_ctf_object_put_ref,
- (create_header_field_func) create_event_header_field,
- (release_header_field_func) destroy_event_header_field);
+ (create_field_func_type) bt_ctf_field_create,
+ (release_field_func_type) bt_ctf_object_put_ref,
+ (create_header_field_func_type) create_event_header_field,
+ (release_header_field_func_type) destroy_event_header_field);
if (ret) {
/* bt_ctf_event_common_initialize() logs errors */
goto error;
return event;
}
+BT_EXPORT
struct bt_ctf_event_class *bt_ctf_event_get_class(struct bt_ctf_event *event)
{
BT_CTF_ASSERT_PRE_NON_NULL(event, "Event");
return bt_ctf_object_get_ref(bt_ctf_event_common_borrow_class(BT_CTF_TO_COMMON(event)));
}
-BT_HIDDEN
+static
struct bt_ctf_stream *bt_ctf_event_borrow_stream(struct bt_ctf_event *event)
{
BT_ASSERT_DBG(event);
bt_ctf_object_borrow_parent(&BT_CTF_TO_COMMON(event)->base);
}
+BT_EXPORT
struct bt_ctf_stream *bt_ctf_event_get_stream(struct bt_ctf_event *event)
{
BT_CTF_ASSERT_PRE_NON_NULL(event, "Event");
return bt_ctf_object_get_ref(bt_ctf_event_borrow_stream(event));
}
+BT_EXPORT
int bt_ctf_event_set_payload(struct bt_ctf_event *event, const char *name,
struct bt_ctf_field *field)
{
(void *) event->common.payload_field, name, field);
}
+BT_EXPORT
struct bt_ctf_field *bt_ctf_event_get_payload(struct bt_ctf_event *event,
const char *name)
{
return field;
}
+BT_EXPORT
struct bt_ctf_field *bt_ctf_event_get_payload_field(
struct bt_ctf_event *event)
{
return bt_ctf_object_get_ref(bt_ctf_event_common_borrow_payload(BT_CTF_TO_COMMON(event)));
}
+BT_EXPORT
struct bt_ctf_field *bt_ctf_event_get_header(struct bt_ctf_event *event)
{
return bt_ctf_object_get_ref(bt_ctf_event_common_borrow_header(BT_CTF_TO_COMMON(event)));
}
+BT_EXPORT
struct bt_ctf_field *bt_ctf_event_get_context(struct bt_ctf_event *event)
{
return bt_ctf_object_get_ref(bt_ctf_event_common_borrow_context(BT_CTF_TO_COMMON(event)));
}
+BT_EXPORT
struct bt_ctf_field *bt_ctf_event_get_stream_event_context(
struct bt_ctf_event *event)
{
BT_CTF_TO_COMMON(event)));
}
-BT_HIDDEN
int bt_ctf_event_serialize(struct bt_ctf_event *event,
struct bt_ctfser *ctfser,
enum bt_ctf_byte_order native_byte_order)
return ret;
}
-BT_HIDDEN
-void _bt_ctf_event_freeze(struct bt_ctf_event *event)
-{
- _bt_ctf_event_common_set_is_frozen(BT_CTF_TO_COMMON(event), true);
-}
-
+BT_EXPORT
int bt_ctf_event_set_header(struct bt_ctf_event *event,
struct bt_ctf_field *header)
{
return 0;
}
+BT_EXPORT
int bt_ctf_event_set_context(struct bt_ctf_event *event,
struct bt_ctf_field *context)
{
return 0;
}
+BT_EXPORT
int bt_ctf_event_set_stream_event_context(struct bt_ctf_event *event,
struct bt_ctf_field *stream_event_context)
{