From 070aae61cdafc846e7a91c22947404e8cc7edce7 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Wed, 3 Apr 2019 20:54:00 -0700 Subject: Added a cmp function for the RADOS VOL connector. --- src/H5VLrados.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/H5VLrados.c b/src/H5VLrados.c index d76f5a3..c92623d 100644 --- a/src/H5VLrados.c +++ b/src/H5VLrados.c @@ -206,7 +206,7 @@ static H5VL_class_t H5VL_rados_g = { { /* info_cls - may need more here (DER) */ sizeof(H5VL_rados_info_t), /* info size */ H5VL_rados_info_copy, /* info copy */ - NULL, /* info compare */ + H5VL_rados_info_cmp, /* info compare */ H5VL_rados_info_free, /* info free */ NULL, /* info to str */ NULL /* str to info */ @@ -866,6 +866,38 @@ done: /*------------------------------------------------------------------------- + * Function: H5VL_rados_info_cmp + * + * Purpose: Compare rados-specific file access properties. + * + * Return: Success: 0, cmp_value set to a value like strcmp + * Failure: -1 + * + * Programmer: Dana Robinson + * April, 2019 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5VL_rados_info_cmp(int *cmp_value, const void *_info1, const void *_info2) +{ + H5VL_rados_info_t *info1 = (H5VL_rados_info_t *)_info1; + H5VL_rados_info_t *info2 = (H5VL_rados_info_t *)_info2; + herr_t ret_value = SUCCEED; + + FUNC_ENTER_NOAPI_NOINIT + + assert(info1); + assert(info2); + + *cmp_value = memcmp(info1, info2, sizeof(H5VL_rados_info_t); + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5VL_rados_info_cmp() */ + + +/*------------------------------------------------------------------------- * Function: H5VL_rados_info_free * * Purpose: Frees the rados-specific file access properties. -- cgit v0.12 From 7c38ca9cf5ae31cbce71516126d5df81b7a5b1ba Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Thu, 4 Apr 2019 09:30:20 -0700 Subject: Fix typo in cmp function --- src/H5VLrados.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/H5VLrados.c b/src/H5VLrados.c index c92623d..d8f7a18 100644 --- a/src/H5VLrados.c +++ b/src/H5VLrados.c @@ -890,7 +890,7 @@ H5VL_rados_info_cmp(int *cmp_value, const void *_info1, const void *_info2) assert(info1); assert(info2); - *cmp_value = memcmp(info1, info2, sizeof(H5VL_rados_info_t); + *cmp_value = memcmp(info1, info2, sizeof(H5VL_rados_info_t)); done: FUNC_LEAVE_NOAPI(ret_value) -- cgit v0.12 From 3099afddc7723b6c46c800d606ebe02b40b84e1b Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Thu, 4 Apr 2019 21:11:57 -0500 Subject: Fixed a missing prototype. --- src/H5VLrados.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/H5VLrados.c b/src/H5VLrados.c index 782d82d..6a70acb 100644 --- a/src/H5VLrados.c +++ b/src/H5VLrados.c @@ -96,6 +96,7 @@ typedef struct H5VL_rados_select_chunk_info_t { * Prototypes */ static void *H5VL_rados_info_copy(const void *_old_info); +static herr_t H5VL_rados_info_cmp(int *cmp_value, const void *_info1, const void *_info2); static herr_t H5VL_rados_info_free(void *_info); static herr_t H5VL_rados_term(void); -- cgit v0.12