int pmix_bfrop_pack_pdata(pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_pdata_t *pdata; int32_t i; int ret; char *foo; pdata = (pmix_pdata_t *) src; for (i = 0; i < num_vals; ++i) { /* pack the proc */ if (PMIX_SUCCESS != (ret = pmix_bfrop_pack_proc(buffer, &pdata[i].proc, 1, PMIX_PROC))) { return ret; } /* pack key */ foo = pdata[i].key; if (PMIX_SUCCESS != (ret = pmix_bfrop_pack_string(buffer, &foo, 1, PMIX_STRING))) { return ret; } /* pack the type */ if (PMIX_SUCCESS != (ret = pmix_bfrop_pack_int(buffer, &pdata[i].value.type, 1, PMIX_INT))) { return ret; } /* pack value */ if (PMIX_SUCCESS != (ret = pack_val(buffer, &pdata[i].value))) { return ret; } } return PMIX_SUCCESS; }
int pmix_bfrop_pack_info(pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_info_t *info; int32_t i; int ret; char *foo; info = (pmix_info_t *) src; for (i = 0; i < num_vals; ++i) { /* pack key */ foo = info[i].key; if (PMIX_SUCCESS != (ret = pmix_bfrop_pack_string(buffer, &foo, 1, PMIX_STRING))) { return ret; } /* pack required flag */ if (PMIX_SUCCESS != (ret = pmix_bfrop_pack_bool(buffer, &info[i].required, 1, PMIX_BOOL))) { return ret; } /* pack the type */ if (PMIX_SUCCESS != (ret = pmix_bfrop_pack_int(buffer, &info[i].value.type, 1, PMIX_INT))) { return ret; } /* pack value */ if (PMIX_SUCCESS != (ret = pack_val(buffer, &info[i].value))) { return ret; } } return PMIX_SUCCESS; }
pmix_status_t pmix12_bfrop_pack_pdata(pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_pdata_t *pdata; int32_t i; pmix_status_t ret; char *foo; int v1type; pdata = (pmix_pdata_t *) src; for (i = 0; i < num_vals; ++i) { /* pack the proc */ if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_proc(buffer, &pdata[i].proc, 1, PMIX_PROC))) { return ret; } /* pack key */ foo = pdata[i].key; if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(buffer, &foo, 1, PMIX_STRING))) { return ret; } /* pack the type - unfortunately, v1.2 directly packed the int instead of * using the store_data_type function. This means we lose the translation! * So get it here */ v1type = pmix12_v2_to_v1_datatype(pdata[i].value.type); if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(buffer, &v1type, 1, PMIX_INT))) { return ret; } /* pack value */ if (PMIX_SUCCESS != (ret = pack_val(buffer, &pdata[i].value))) { return ret; } } return PMIX_SUCCESS; }
/* * PMIX_VALUE */ pmix_status_t pmix12_bfrop_pack_value(pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_value_t *ptr; int32_t i; pmix_status_t ret; int v1type; ptr = (pmix_value_t *) src; for (i = 0; i < num_vals; ++i) { /* pack the type - unfortunately, v1.2 directly packed the int instead of * using the store_data_type function. This means we lose the translation! * So get it here */ v1type = pmix12_v2_to_v1_datatype(ptr[i].type); if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(buffer, &v1type, 1, PMIX_INT))) { return ret; } /* now pack the right field */ if (PMIX_SUCCESS != (ret = pack_val(buffer, &ptr[i]))) { return ret; } } return PMIX_SUCCESS; }
/* * PMIX_VALUE */ int pmix_bfrop_pack_value(pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_value_t *ptr; int32_t i; int ret; ptr = (pmix_value_t *) src; for (i = 0; i < num_vals; ++i) { /* pack the type */ if (PMIX_SUCCESS != (ret = pmix_bfrop_pack_int(buffer, &ptr[i].type, 1, PMIX_INT))) { return ret; } /* now pack the right field */ if (PMIX_SUCCESS != (ret = pack_val(buffer, &ptr[i]))) { return ret; } } return PMIX_SUCCESS; }