* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef _LTTNG_CONSUMER_H
-#define _LTTNG_CONSUMER_H
+#ifndef LIB_CONSUMER_H
+#define LIB_CONSUMER_H
#include <limits.h>
#include <poll.h>
/* inform the consumer to quit when all fd has hang up */
LTTNG_CONSUMER_STOP,
LTTNG_CONSUMER_ADD_RELAYD_SOCKET,
+ /* Inform the consumer to kill a specific relayd connection */
+ LTTNG_CONSUMER_DESTROY_RELAYD,
};
/* State of each fd in consumer */
unsigned int metadata_flag;
/* Used when the stream is set for network streaming */
uint64_t relayd_stream_id;
+ /* Next sequence number to use for trace packet */
+ uint64_t next_net_seq_num;
};
/*
int net_seq_idx;
/* Number of stream associated with this relayd */
unsigned int refcount;
+
+ /*
+ * This flag indicates whether or not we should destroy this object. The
+ * destruction should ONLY occurs when this flag is set and the refcount is
+ * set to zero.
+ */
+ unsigned int destroy_flag;
+
/*
* Mutex protecting the control socket to avoid out of order packets
* between threads sending data to the relayd. Since metadata data is sent
struct consumer_relayd_sock_pair *consumer_find_relayd(int key);
int consumer_handle_stream_before_relayd(struct lttng_consumer_stream *stream,
size_t data_size);
+void consumer_destroy_relayd(struct consumer_relayd_sock_pair *relayd);
extern struct lttng_consumer_local_data *lttng_consumer_create(
enum lttng_consumer_type type,
struct lttng_consumer_local_data *ctx);
int lttng_consumer_on_recv_stream(struct lttng_consumer_stream *stream);
-#endif /* _LTTNG_CONSUMER_H */
+#endif /* LIB_CONSUMER_H */