X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Flocation-internal.h;h=9eafd471a2d5273cb4aa2273cfc304ce8f9f0b02;hp=d33cab652668c38d713c801bc71df132f953fbbe;hb=7966af5763c4aaca39df9bbfa9277ff15715c720;hpb=ab5be9fa2eb5ba9600a82cd18fd3cfcbac69169a diff --git a/include/lttng/location-internal.h b/include/lttng/location-internal.h index d33cab652..9eafd471a 100644 --- a/include/lttng/location-internal.h +++ b/include/lttng/location-internal.h @@ -13,8 +13,20 @@ #include #include #include +#include +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The public API assumes that trace archive locations are always + * provided as "constant". This means that the user of liblttng-ctl never + * has to destroy a trace archive location. Hence, users of liblttng-ctl + * have no visibility of the reference counting of archive locations. + */ struct lttng_trace_archive_location { + struct urcu_ref ref; enum lttng_trace_archive_location_type type; union { struct { @@ -66,29 +78,31 @@ struct lttng_trace_archive_location_comm { } LTTNG_PACKED; -LTTNG_HIDDEN struct lttng_trace_archive_location *lttng_trace_archive_location_local_create( const char *path); -LTTNG_HIDDEN struct lttng_trace_archive_location *lttng_trace_archive_location_relay_create( const char *host, enum lttng_trace_archive_location_relay_protocol_type protocol, uint16_t control_port, uint16_t data_port, const char *relative_path); -LTTNG_HIDDEN ssize_t lttng_trace_archive_location_create_from_buffer( const struct lttng_buffer_view *buffer, struct lttng_trace_archive_location **location); -LTTNG_HIDDEN ssize_t lttng_trace_archive_location_serialize( const struct lttng_trace_archive_location *location, struct lttng_dynamic_buffer *buffer); -LTTNG_HIDDEN -void lttng_trace_archive_location_destroy( +void lttng_trace_archive_location_get( struct lttng_trace_archive_location *location); +void lttng_trace_archive_location_put( + struct lttng_trace_archive_location *location); + +#ifdef __cplusplus +} +#endif + #endif /* LTTNG_LOCATION_INTERNAL_H */