From: Szymon Janc <szymon.janc@gmail.com>
To: Marcin Kraglak <marcin.kraglak@tieto.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCHv5 11/14] shared/gatt: Add gatt-client include service iterator
Date: Wed, 22 Oct 2014 20:29:21 +0200 [thread overview]
Message-ID: <12297005.3fX06ItIqc@athlon> (raw)
In-Reply-To: <1413454646-23076-12-git-send-email-marcin.kraglak@tieto.com>
Hi Marcin,
On Thursday 16 October 2014 12:17:23 Marcin Kraglak wrote:
> It will allow user to take value, handle, start and end handle
> of included service.
> ---
> src/shared/gatt-client.c | 30 ++++++++++++++++++++++++++++++
> src/shared/gatt-client.h | 10 ++++++++++
> 2 files changed, 40 insertions(+)
>
> diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c
> index 971788c..28865da 100644
> --- a/src/shared/gatt-client.c
> +++ b/src/shared/gatt-client.c
> @@ -1674,6 +1674,36 @@ bool bt_gatt_characteristic_iter_next(struct
> bt_gatt_characteristic_iter *iter, return true;
> }
>
> +bool bt_gatt_include_service_iter_init(struct bt_gatt_incl_service_iter
> *iter, + const bt_gatt_service_t *service)
> +{
> + if (!iter || !service)
> + return false;
> +
> + memset(iter, 0, sizeof(*iter));
> + iter->service = (struct service_list *) service;
I know that this is based on existing code but I'll comment on it here :)
This cast is really confusing. Either it should be casted to void* as service
field inside iter or service should be const in iter if we are passing const
data there. Or it should be of type service_list and named services?
This list interface is kinda hard to read and I don't really like it without
proper macros (like in kernel code)...
> +
> + return true;
> +}
> +
> +bool bt_gatt_include_service_iter_next(struct bt_gatt_incl_service_iter
> *iter, + const bt_gatt_included_service_t **incl)
> +{
> + struct service_list *service;
> +
> + if (!iter || !incl)
> + return false;
> +
> + service = iter->service;
> +
> + if (iter->pos >= service->num_includes)
> + return false;
> +
> + *incl = &service->includes[iter->pos++];
> +
> + return true;
> +}
> +
> struct read_op {
> bt_gatt_client_read_callback_t callback;
> void *user_data;
> diff --git a/src/shared/gatt-client.h b/src/shared/gatt-client.h
> index 05b4838..bf4e7bb 100644
> --- a/src/shared/gatt-client.h
> +++ b/src/shared/gatt-client.h
> @@ -113,6 +113,11 @@ struct bt_gatt_characteristic_iter {
> size_t pos;
> };
>
> +struct bt_gatt_incl_service_iter {
> + void *service;
> + size_t pos;
> +};
> +
> bool bt_gatt_service_iter_init(struct bt_gatt_service_iter *iter,
> struct bt_gatt_client *client);
> bool bt_gatt_service_iter_next(struct bt_gatt_service_iter *iter,
> @@ -129,6 +134,11 @@ bool bt_gatt_characteristic_iter_init(struct
> bt_gatt_characteristic_iter *iter, bool
> bt_gatt_characteristic_iter_next(struct bt_gatt_characteristic_iter *iter,
> const bt_gatt_characteristic_t **chrc);
>
> +bool bt_gatt_include_service_iter_init(struct bt_gatt_incl_service_iter
> *iter, + const bt_gatt_service_t *service);
> +bool bt_gatt_include_service_iter_next(struct bt_gatt_incl_service_iter
> *iter, + const bt_gatt_included_service_t **inc);
> +
> typedef void (*bt_gatt_client_read_callback_t)(bool success, uint8_t
> att_ecode, const uint8_t *value, uint16_t length,
> void *user_data);
--
Szymon K. Janc
szymon.janc@gmail.com
next prev parent reply other threads:[~2014-10-22 18:29 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-16 10:17 [PATCHv5 00/14] Included service discovery Marcin Kraglak
2014-10-16 10:17 ` [PATCHv5 01/14] shared/gatt: Add discover_secondary_services() Marcin Kraglak
2014-10-22 13:37 ` Szymon Janc
2014-10-16 10:17 ` [PATCHv5 02/14] shared/gatt: Add initial implementation of discover_included_services Marcin Kraglak
2014-10-22 13:37 ` Szymon Janc
2014-10-16 10:17 ` [PATCHv5 03/14] shared/gatt: Discover included services 128 bit UUIDS Marcin Kraglak
2014-10-22 18:43 ` Szymon Janc
2014-10-16 10:17 ` [PATCHv5 04/14] shared/gatt: Add extra check in characteristic iterator Marcin Kraglak
2014-10-22 17:49 ` Szymon Janc
2014-10-16 10:17 ` [PATCHv5 05/14] shared/gatt: Add included service iterator Marcin Kraglak
2014-10-22 18:43 ` Szymon Janc
2014-10-16 10:17 ` [PATCHv5 06/14] shared/gatt: Remove not needed function parameter Marcin Kraglak
2014-10-16 10:17 ` [PATCHv5 07/14] shared/gatt: Distinguish Primary from Secondary services Marcin Kraglak
2014-10-16 10:17 ` [PATCHv5 08/14] tools/btgatt-client: Print type of service Marcin Kraglak
2014-10-22 18:00 ` Szymon Janc
2014-10-16 10:17 ` [PATCHv5 09/14] shared/gatt: Discover secondary services Marcin Kraglak
2014-10-16 10:17 ` [PATCHv5 10/14] shared/gatt: Discover included services Marcin Kraglak
2014-10-22 18:20 ` Szymon Janc
2014-10-16 10:17 ` [PATCHv5 11/14] shared/gatt: Add gatt-client include service iterator Marcin Kraglak
2014-10-22 18:29 ` Szymon Janc [this message]
2014-10-16 10:17 ` [PATCHv5 12/14] tools/btgatt-client: Print found include services Marcin Kraglak
2014-10-16 10:17 ` [PATCHv5 13/14] shared/gatt: Fix searching descriptors Marcin Kraglak
2014-10-16 10:17 ` [PATCHv5 14/14] shared/gatt: Add function bt_gatt_result_included_count() Marcin Kraglak
2014-10-22 6:25 ` [PATCHv5 00/14] Included service discovery Marcin Kraglak
2014-10-22 14:54 ` Luiz Augusto von Dentz
2014-10-22 15:35 ` Arman Uguray
2014-10-22 18:39 ` Szymon Janc
2014-10-23 7:55 ` Luiz Augusto von Dentz
2014-10-24 19:32 ` Arman Uguray
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=12297005.3fX06ItIqc@athlon \
--to=szymon.janc@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcin.kraglak@tieto.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.