b2592dc3f548e8e58737964c5823ece29dfa21f8
[sip-router] / src / modules / kafka / kfk.h
1 /*
2  * Copyright (C) 2019 Vicente Hernando (Sonoc https://www.sonoc.io)
3  *
4  * This file is part of Kamailio, a free SIP server.
5  *
6  * Kamailio is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version
10  *
11  * Kamailio is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
19  *
20  */
21
22 /** \file
23  * \brief Kafka :: Apache Kafka functions via librdkafka
24  * \ingroup kfk
25  *
26  * - \ref kfk.c
27  * - Module: \ref kfk
28  */
29
30 #ifndef _KFK_H
31 #define _KFK_H
32
33 /**
34  * \brief Initialize kafka functionality.
35  *
36  * \param brokers brokers to add.
37  * \return 0 on success.
38  */
39 int kfk_init(char *brokers);
40
41 /**
42  * \brief Close kafka related functionality.
43  */
44 void kfk_close();
45
46 /**
47  * \brief Parse general configuration properties for Kafka.
48  */
49 int kfk_conf_parse(char *spec);
50
51 /**
52  * \brief Parse topic properties for Kafka.
53  */
54 int kfk_topic_parse(char *spec);
55
56 /**
57  * \brief send a message to a topic.
58  *
59  * \return 0 on success.
60  */
61 int kfk_message_send(str *topic, str *message);
62
63 /**
64  * \brief Initialize statistics.
65  *
66  * \return 0 on success.
67  */
68 int kfk_stats_init();
69
70 /**
71  * \brief Close statistics.
72  */
73 void kfk_stats_close();
74
75 /**
76  * \brief Get total statistics.
77  *
78  * \param msg_total return total number of messages by reference.
79  * \param msg_error return total number of errors by reference.
80  *
81  * \return 0 on success.
82  */
83 int kfk_stats_get(uint64_t *msg_total, uint64_t *msg_error);
84
85 /**
86  * \brief Get statistics for a specified topic.
87  *
88  * \param s_topic string with topic name.
89  * \param msg_total return total number of messages by reference.
90  * \param msg_error return total number of errors by reference.
91  *
92  * \return 0 on success.
93  */
94 int kfk_stats_topic_get(str *s_topic, uint64_t *msg_total, uint64_t *msg_error);
95
96 #endif /* KFK_H */