Change in libosmocore[master]: add osmo_use_count_to_str_c()

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Sun Sep 20 09:51:33 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/20204 )

Change subject: add osmo_use_count_to_str_c()
......................................................................

add osmo_use_count_to_str_c()

So far there is only osmo_use_count_name_buf(). Also provide a use count to
string using a talloc context, allowing to use OTC_SELECT.

- instead of foo_name(), rather use foo_to_str().
- osmo_use_count_name_buf() returns the buf and not the chars_needed. So add
  osmo_use_count_to_str_buf() with a signature that is usable by
  OSMO_NAME_C_IMPL().
- provide osmo_use_count_to_str_c() using OSMO_NAME_C_IMPL().

Change-Id: I1d2e7ee979f8c316ef99f7c65675b36d092ddfca
---
M include/osmocom/core/use_count.h
M src/use_count.c
2 files changed, 27 insertions(+), 1 deletion(-)

Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/core/use_count.h b/include/osmocom/core/use_count.h
index a019525..cc5493c 100644
--- a/include/osmocom/core/use_count.h
+++ b/include/osmocom/core/use_count.h
@@ -216,6 +216,8 @@
 			    const char *file, int line);
 
 const char *osmo_use_count_name_buf(char *buf, size_t buf_len, const struct osmo_use_count *uc);
+int osmo_use_count_to_str_buf(char *buf, size_t buf_len, const struct osmo_use_count *uc);
+char *osmo_use_count_to_str_c(void *ctx, const struct osmo_use_count *uc);
 
 int32_t osmo_use_count_total(const struct osmo_use_count *uc);
 int32_t osmo_use_count_by(const struct osmo_use_count *uc, const char *use);
diff --git a/src/use_count.c b/src/use_count.c
index 453d2ae..738cc5d 100644
--- a/src/use_count.c
+++ b/src/use_count.c
@@ -107,6 +107,19 @@
  */
 const char *osmo_use_count_name_buf(char *buf, size_t buf_len, const struct osmo_use_count *uc)
 {
+	osmo_use_count_to_str_buf(buf, buf_len, uc);
+	return buf;
+}
+
+/*! Write a comprehensive listing of use counts to a string buffer.
+ * Reads like "12 (3*barring,fighting,8*kungfoo)".
+ * \param[inout] buf  Destination buffer.
+ * \param[in] buf_len  sizeof(buf).
+ * \param[in] uc  Use counts to print.
+ * \return number of bytes that would be written, like snprintf().
+ */
+int osmo_use_count_to_str_buf(char *buf, size_t buf_len, const struct osmo_use_count *uc)
+{
 	int32_t count = osmo_use_count_total(uc);
 	struct osmo_strbuf sb = { .buf = buf, .len = buf_len };
 	struct osmo_use_count_entry *e;
@@ -128,7 +141,18 @@
 	if (first)
 		OSMO_STRBUF_PRINTF(sb, "-");
 	OSMO_STRBUF_PRINTF(sb, ")");
-	return buf;
+	return sb.chars_needed;
+}
+
+/*! Write a comprehensive listing of use counts to a talloc allocated string buffer.
+ * Reads like "12 (3*barring,fighting,8*kungfoo)".
+ * \param[in] ctx  talloc pool to allocate from.
+ * \param[in] uc  Use counts to print.
+ * \return buf, always nul-terminated.
+ */
+char *osmo_use_count_to_str_c(void *ctx, const struct osmo_use_count *uc)
+{
+	OSMO_NAME_C_IMPL(ctx, 32, "ERROR", osmo_use_count_to_str_buf, uc)
 }
 
 /* Return a use token's use count entry -- probably you want osmo_use_count_by() instead.

-- 
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/20204
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I1d2e7ee979f8c316ef99f7c65675b36d092ddfca
Gerrit-Change-Number: 20204
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200920/51e17e05/attachment.htm>


More information about the gerrit-log mailing list