diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 1ce1ad4bc02ff043d480396a01fcc010b3ec4fd0..b3ca5553ca52b3e1dbe9631ea8ecddd1ef9bb160 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -45,10 +45,6 @@ target_include_directories(_rpc_client INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) add_library(common::network::rpc_client ALIAS _rpc_client) -target_include_directories(_rpc_types INTERFACE - ${CMAKE_CURRENT_SOURCE_DIR}) -add_library(common::network::rpc_types ALIAS _rpc_types) - add_subdirectory(api) target_include_directories(_api_types INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/src/common/api/types.c b/src/common/api/types.c index ecb60f7d31c014e9f1b81e54b77ed47d6fd98a4c..2026c7c2bfc9aa7c0bfd2537686a55e781b68d75 100644 --- a/src/common/api/types.c +++ b/src/common/api/types.c @@ -27,7 +27,6 @@ #include <assert.h> #include <string.h> // #include <logger/logger.hpp> -#include <net/proto/rpc_types.h> #include "scord/types.h" #include "types-private.h" diff --git a/src/common/net/CMakeLists.txt b/src/common/net/CMakeLists.txt index c05d27138b983323f988fcd0220627aae57dd0e6..e38e67316c9b0fa1efcb05cdafafb6662167edbe 100644 --- a/src/common/net/CMakeLists.txt +++ b/src/common/net/CMakeLists.txt @@ -40,5 +40,3 @@ target_sources( ) target_link_libraries(_rpc_server PUBLIC common::config common::logger thallium) - -add_subdirectory(proto) diff --git a/src/common/net/proto/CMakeLists.txt b/src/common/net/proto/CMakeLists.txt deleted file mode 100644 index 32681285c4f6a8989bceb04a9e706683f742b217..0000000000000000000000000000000000000000 --- a/src/common/net/proto/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -################################################################################ -# Copyright 2021-2022, Barcelona Supercomputing Center (BSC), Spain # -# # -# This software was partially supported by the EuroHPC-funded project ADMIRE # -# (Project ID: 956748, https://www.admire-eurohpc.eu). # -# # -# This file is part of scord. # -# # -# scord is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# scord is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with scord. If not, see <https://www.gnu.org/licenses/>. # -# # -# SPDX-License-Identifier: GPL-3.0-or-later # -################################################################################ - -add_library(_rpc_types STATIC) - -set_property(TARGET _rpc_types PROPERTY POSITION_INDEPENDENT_CODE ON) - -target_include_directories(_rpc_types PUBLIC ${CMAKE_SOURCE_DIR}/src/lib) -target_sources( - _rpc_types - PRIVATE rpc_types.h rpc_types.c -) - -target_link_libraries(_rpc_types PRIVATE common::api::types Mercury::Mercury - Margo::Margo) diff --git a/src/common/net/proto/rpc_types.c b/src/common/net/proto/rpc_types.c deleted file mode 100644 index 623d9803fe744af85de219182fd84b5c7d17703e..0000000000000000000000000000000000000000 --- a/src/common/net/proto/rpc_types.c +++ /dev/null @@ -1,1150 +0,0 @@ -/****************************************************************************** - * Copyright 2021-2022, Barcelona Supercomputing Center (BSC), Spain - * - * This software was partially supported by the EuroHPC-funded project ADMIRE - * (Project ID: 956748, https://www.admire-eurohpc.eu). - * - * This file is part of scord. - * - * scord is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * scord is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with scord. If not, see <https://www.gnu.org/licenses/>. - * - * SPDX-License-Identifier: GPL-3.0-or-later - *****************************************************************************/ - -#include "rpc_types.h" - -hg_return_t (*hg_proc_ADM_adhoc_storage_type_t)(hg_proc_t, - void*) = hg_proc_hg_uint32_t; -hg_return_t (*hg_proc_ADM_pfs_storage_type_t)(hg_proc_t, - void*) = hg_proc_hg_uint32_t; -hg_return_t (*hg_proc_ADM_qos_scope_t)(hg_proc_t, void*) = hg_proc_hg_uint32_t; -hg_return_t (*hg_proc_ADM_qos_class_t)(hg_proc_t, void*) = hg_proc_hg_uint32_t; - -hg_return_t -hg_proc_ADM_node_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_node_t* node = (ADM_node_t*) data; - ADM_node_t tmp = NULL; - hg_size_t node_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the adm_node object we need to send - node_length = *node ? sizeof(adm_node) : 0; - ret = hg_proc_hg_size_t(proc, &node_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!node_length) { - return HG_SUCCESS; - } - - // if we actually need to send an adm_node object, - // write it to the mercury buffer - tmp = *node; - - ret = hg_proc_adm_node(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - break; - - case HG_DECODE: - // find out the length of the adm_node object - ret = hg_proc_hg_size_t(proc, &node_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!node_length) { - *node = NULL; - break; - } - - // if the received adm_node object was not NULL, read each of - // its fields from the mercury buffer - tmp = (adm_node*) calloc(1, sizeof(adm_node)); - - ret = hg_proc_adm_node(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - // return the newly-created ctx - *node = tmp; - break; - - case HG_FREE: - tmp = *node; - free(tmp); - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_dataset_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_dataset_t* dataset = (ADM_dataset_t*) data; - ADM_dataset_t tmp = NULL; - hg_size_t dataset_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the adm_dataset object we need to send - dataset_length = *dataset ? sizeof(adm_dataset) : 0; - ret = hg_proc_hg_size_t(proc, &dataset_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!dataset_length) { - return HG_SUCCESS; - } - - // if we actually need to send an adm_dataset object, - // write it to the mercury buffer - tmp = *dataset; - - ret = hg_proc_adm_dataset(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - break; - - case HG_DECODE: - // find out the length of the adm_dataset object - ret = hg_proc_hg_size_t(proc, &dataset_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!dataset_length) { - *dataset = NULL; - break; - } - - // if the received adm_dataset object was not NULL, read each of - // its fields from the mercury buffer - tmp = (adm_dataset*) calloc(1, sizeof(adm_dataset)); - - ret = hg_proc_adm_dataset(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - // return the newly-created ctx - *dataset = tmp; - break; - - case HG_FREE: - tmp = *dataset; - free(tmp); - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_job_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_job_t* job = (ADM_job_t*) data; - ADM_job_t tmp = NULL; - hg_size_t job_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the adm_storage object we need to send - job_length = *job ? sizeof(adm_job) : 0; - ret = hg_proc_hg_size_t(proc, &job_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!job_length) { - return HG_SUCCESS; - } - - // if we actually need to send an adm_job object, - // write it to the mercury buffer - tmp = *job; - - ret = hg_proc_adm_job(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - break; - - case HG_DECODE: - // find out the length of the adm_storage object - ret = hg_proc_hg_size_t(proc, &job_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!job_length) { - *job = NULL; - break; - } - - // if the received adm_job object was not NULL, read each of - // its fields from the mercury buffer - tmp = (adm_job*) calloc(1, sizeof(adm_job)); - - ret = hg_proc_adm_job(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - // return the newly-created ctx - *job = tmp; - break; - - case HG_FREE: - tmp = *job; - free(tmp); - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_transfer_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_transfer_t* transfer = (ADM_transfer_t*) data; - ADM_transfer_t tmp = NULL; - hg_size_t transfer_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the adm_transfer object we need to send - transfer_length = *transfer ? sizeof(adm_transfer) : 0; - ret = hg_proc_hg_size_t(proc, &transfer_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!transfer_length) { - return HG_SUCCESS; - } - - // if we actually need to send an adm_transfer object, - // write it to the mercury buffer - tmp = *transfer; - - ret = hg_proc_adm_transfer(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - break; - - case HG_DECODE: - // find out the length of the adm_transfer object - ret = hg_proc_hg_size_t(proc, &transfer_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!transfer_length) { - *transfer = NULL; - break; - } - - // if the received adm_transfer object was not NULL, read each of - // its fields from the mercury buffer - tmp = (adm_transfer*) calloc(1, sizeof(adm_transfer)); - - ret = hg_proc_adm_transfer(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - // return the newly-created ctx - *transfer = tmp; - break; - - case HG_FREE: - tmp = *transfer; - free(tmp); - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_dataset_list_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_dataset_list_t* list = (ADM_dataset_list_t*) data; - ADM_dataset_list_t tmp = NULL; - - hg_size_t length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - tmp = *list; - // write the length of the list - length = tmp->l_length; - ret = hg_proc_hg_size_t(proc, &tmp->l_length); - - if(ret != HG_SUCCESS) { - break; - } - - // write the list - for(size_t i = 0; i < length; ++i) { - ret = hg_proc_adm_dataset(proc, &tmp->l_datasets[i]); - - if(ret != HG_SUCCESS) { - break; - } - } - break; - - case HG_DECODE: { - - // find out the length of the list - ret = hg_proc_hg_size_t(proc, &length); - - if(ret != HG_SUCCESS) { - break; - } - - // loop and create list elements - tmp = (ADM_dataset_list_t) calloc(1, - sizeof(struct adm_dataset_list)); - tmp->l_length = length; - tmp->l_datasets = - (adm_dataset*) calloc(length, sizeof(adm_dataset)); - - for(size_t i = 0; i < length; ++i) { - ret = hg_proc_adm_dataset(proc, &tmp->l_datasets[i]); - - if(ret != HG_SUCCESS) { - break; - } - } - - // return the newly-created list - *list = tmp; - - break; - } - - case HG_FREE: - tmp = *list; - free(tmp->l_datasets); - free(tmp); - ret = HG_SUCCESS; - break; - } - - return ret; -} - - -hg_return_t -hg_proc_ADM_adhoc_storage_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_adhoc_storage_t* storage = (ADM_adhoc_storage_t*) data; - ADM_adhoc_storage_t tmp = NULL; - hg_size_t storage_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the adm_adhoc_storage object we need to - // send - storage_length = *storage ? sizeof(adm_adhoc_storage) : 0; - ret = hg_proc_hg_size_t(proc, &storage_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!storage_length) { - return HG_SUCCESS; - } - - // if we actually need to send an adm_adhoc_storage object, - // write each of its fields to the mercury buffer - tmp = *storage; - - // 1. the storage type - ret = hg_proc_hg_uint32_t(proc, &tmp->s_type); - - if(ret != HG_SUCCESS) { - break; - } - - // 2. the storage id - ret = hg_proc_hg_const_string_t(proc, &tmp->s_name); - - if(ret != HG_SUCCESS) { - break; - } - - // 3. the server-assigned id - ret = hg_proc_hg_int64_t(proc, &tmp->s_id); - - if(ret != HG_SUCCESS) { - break; - } - - // 4. the appropriate storage context - ret = hg_proc_ADM_adhoc_context_t(proc, &tmp->s_adhoc_ctx); - - if(ret != HG_SUCCESS) { - break; - } - - break; - - case HG_DECODE: - // find out the length of the adm_adhoc_storage object - ret = hg_proc_hg_size_t(proc, &storage_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!storage_length) { - *storage = NULL; - break; - } - - // if the received adm_adhoc_storage object was not NULL, read each - // of its fields from the mercury buffer - tmp = (adm_adhoc_storage*) calloc(1, sizeof(adm_adhoc_storage)); - - // 1. the storage type - ret = hg_proc_uint32_t(proc, &tmp->s_type); - - if(ret != HG_SUCCESS) { - break; - } - - // 2. the storage id - ret = hg_proc_hg_const_string_t(proc, &tmp->s_name); - - if(ret != HG_SUCCESS) { - break; - } - - // 3. the server-assigned id - ret = hg_proc_hg_int64_t(proc, &tmp->s_id); - - if(ret != HG_SUCCESS) { - break; - } - - // 4. the appropriate storage context - ret = hg_proc_ADM_adhoc_context_t(proc, &tmp->s_adhoc_ctx); - - if(ret != HG_SUCCESS) { - break; - } - - // return the newly-created ctx - *storage = tmp; - break; - - case HG_FREE: - tmp = *storage; - free(tmp); - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_adhoc_context_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_adhoc_context_t* ctx = (ADM_adhoc_context_t*) data; - ADM_adhoc_context_t tmp = NULL; - hg_size_t ctx_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the context - ctx_length = *ctx ? sizeof(adm_adhoc_context) : 0; - ret = hg_proc_hg_size_t(proc, &ctx_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!ctx_length) { - return HG_SUCCESS; - } - - // if not NULL, write the context - tmp = *ctx; - ret = hg_proc_adm_adhoc_context(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - break; - - case HG_DECODE: { - - // find out the length of the context - ret = hg_proc_hg_size_t(proc, &ctx_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!ctx_length) { - *ctx = NULL; - break; - } - - // if not NULL, read the context - tmp = (ADM_adhoc_context_t) calloc( - 1, sizeof(struct adm_adhoc_context)); - ret = hg_proc_adm_adhoc_context(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - // return the newly-created ctx - *ctx = tmp; - break; - } - - case HG_FREE: - tmp = *ctx; - free(tmp); - ret = HG_SUCCESS; - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_pfs_storage_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_pfs_storage_t* storage = (ADM_pfs_storage_t*) data; - ADM_pfs_storage_t tmp = NULL; - hg_size_t storage_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the adm_pfs_storage object we need to send - storage_length = *storage ? sizeof(adm_pfs_storage) : 0; - ret = hg_proc_hg_size_t(proc, &storage_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!storage_length) { - return HG_SUCCESS; - } - - // if we actually need to send an adm_pfs_storage object, - // write each of its fields to the mercury buffer - tmp = *storage; - - // 1. the storage type - ret = hg_proc_hg_uint32_t(proc, &tmp->s_type); - - if(ret != HG_SUCCESS) { - break; - } - - // 2. the storage id - ret = hg_proc_hg_const_string_t(proc, &tmp->s_name); - - if(ret != HG_SUCCESS) { - break; - } - - // 3. the server-assigned id - ret = hg_proc_hg_int64_t(proc, &tmp->s_id); - - if(ret != HG_SUCCESS) { - break; - } - - // 4. the appropriate storage context - ret = hg_proc_ADM_pfs_context_t(proc, &tmp->s_pfs_ctx); - break; - - case HG_DECODE: - // find out the length of the adm_pfs_storage object - ret = hg_proc_hg_size_t(proc, &storage_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!storage_length) { - *storage = NULL; - break; - } - - // if the received adm_pfs_storage object was not NULL, read each of - // its fields from the mercury buffer - tmp = (adm_pfs_storage*) calloc(1, sizeof(adm_pfs_storage)); - - // 1. the storage type - ret = hg_proc_uint32_t(proc, &tmp->s_type); - - if(ret != HG_SUCCESS) { - break; - } - - // 2. the storage id - ret = hg_proc_hg_const_string_t(proc, &tmp->s_name); - - if(ret != HG_SUCCESS) { - break; - } - - // 3. the server-assigned id - ret = hg_proc_hg_int64_t(proc, &tmp->s_id); - - if(ret != HG_SUCCESS) { - break; - } - - // 4. the appropriate storage context - ret = hg_proc_ADM_pfs_context_t(proc, &tmp->s_pfs_ctx); - - if(ret != HG_SUCCESS) { - break; - } - - // return the newly-created ctx - *storage = tmp; - break; - - case HG_FREE: - tmp = *storage; - free(tmp); - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_pfs_context_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_pfs_context_t* ctx = (ADM_pfs_context_t*) data; - ADM_pfs_context_t tmp = NULL; - hg_size_t ctx_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the context - ctx_length = *ctx ? sizeof(adm_pfs_context) : 0; - ret = hg_proc_hg_size_t(proc, &ctx_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!ctx_length) { - return HG_SUCCESS; - } - - // if not NULL, write the context - tmp = *ctx; - ret = hg_proc_adm_pfs_context(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - break; - - case HG_DECODE: { - - // find out the length of the context - ret = hg_proc_hg_size_t(proc, &ctx_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!ctx_length) { - *ctx = NULL; - break; - } - - // if not NULL, read the context - tmp = (ADM_pfs_context_t) calloc(1, sizeof(struct adm_pfs_context)); - ret = hg_proc_adm_pfs_context(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - // return the newly-created ctx - *ctx = tmp; - break; - } - - case HG_FREE: - tmp = *ctx; - free(tmp); - ret = HG_SUCCESS; - break; - } - - return ret; -} - - -hg_return_t -hg_proc_ADM_qos_limit_list_t(hg_proc_t proc, void* data) { - hg_return_t ret = HG_SUCCESS; - ADM_qos_limit_list_t* list = (ADM_qos_limit_list_t*) data; - ADM_qos_limit_list_t tmp = NULL; - - hg_size_t length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - tmp = *list; - // write the length of the list - length = tmp->l_length; - ret = hg_proc_hg_size_t(proc, &tmp->l_length); - - if(ret != HG_SUCCESS) { - break; - } - - // write the list - for(size_t i = 0; i < length; ++i) { - ret = hg_proc_adm_qos_limit(proc, &tmp->l_limits[i]); - - if(ret != HG_SUCCESS) { - break; - } - } - break; - - case HG_DECODE: { - - // find out the length of the list - ret = hg_proc_hg_size_t(proc, &length); - - if(ret != HG_SUCCESS) { - break; - } - - // loop and create list elements - tmp = (ADM_qos_limit_list_t) calloc( - 1, sizeof(struct adm_qos_limit_list)); - tmp->l_length = length; - tmp->l_limits = - (adm_qos_limit*) calloc(length, sizeof(adm_qos_limit)); - - for(size_t i = 0; i < length; ++i) { - ret = hg_proc_adm_qos_limit(proc, &tmp->l_limits[i]); - - if(ret != HG_SUCCESS) { - break; - } - } - - // return the newly-created list - *list = tmp; - - break; - } - - case HG_FREE: - tmp = *list; - free(tmp->l_limits); - free(tmp); - ret = HG_SUCCESS; - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_qos_entity_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_qos_entity_t* qos_entity = (ADM_qos_entity_t*) data; - ADM_qos_entity_t tmp = NULL; - hg_size_t qos_entity_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the adm_qos_entity object we need to send - qos_entity_length = *qos_entity ? sizeof(adm_qos_entity) : 0; - ret = hg_proc_hg_size_t(proc, &qos_entity_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!qos_entity_length) { - return HG_SUCCESS; - } - - // if we actually need to send an adm_qos_entity object, - // write each of its fields to the mercury buffer - - // 1. the QoS scope - ret = hg_proc_ADM_qos_scope_t(proc, &tmp->e_scope); - - if(ret != HG_SUCCESS) { - break; - } - - // 2. the appropriate related data depending on the scope (i.e. an - // ADM_node_t, ADM_job_t, ADM_dataset_t, or ADM_transfer_t) - switch(tmp->e_scope) { - - case ADM_QOS_SCOPE_DATASET: - ret = hg_proc_ADM_dataset_t(proc, &tmp->e_dataset); - break; - case ADM_QOS_SCOPE_NODE: - ret = hg_proc_ADM_node_t(proc, &tmp->e_node); - break; - case ADM_QOS_SCOPE_JOB: - ret = hg_proc_ADM_job_t(proc, &tmp->e_job); - break; - case ADM_QOS_SCOPE_TRANSFER: - ret = hg_proc_ADM_transfer_t(proc, &tmp->e_transfer); - break; - } - - break; - - case HG_DECODE: - // find out the length of the adm_qos_entity object - ret = hg_proc_hg_size_t(proc, &qos_entity_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!qos_entity_length) { - *qos_entity = NULL; - break; - } - - // if the received adm_qos_entity object was not NULL, read each - // of its fields from the mercury buffer - tmp = (adm_qos_entity*) calloc(1, sizeof(adm_qos_entity)); - - // 1. the QoS scope - ret = hg_proc_ADM_qos_scope_t(proc, &tmp->e_scope); - - if(ret != HG_SUCCESS) { - break; - } - - // 2. the appropriate related data depending on the scope (i.e. an - // ADM_node_t, ADM_job_t, ADM_dataset_t, or ADM_transfer_t) - switch(tmp->e_scope) { - - case ADM_QOS_SCOPE_DATASET: - ret = hg_proc_ADM_dataset_t(proc, &tmp->e_dataset); - break; - case ADM_QOS_SCOPE_NODE: - ret = hg_proc_ADM_node_t(proc, &tmp->e_node); - break; - case ADM_QOS_SCOPE_JOB: - ret = hg_proc_ADM_job_t(proc, &tmp->e_job); - break; - case ADM_QOS_SCOPE_TRANSFER: - ret = hg_proc_ADM_transfer_t(proc, &tmp->e_transfer); - break; - } - - // return the newly-created entity - *qos_entity = tmp; - break; - - case HG_FREE: - tmp = *qos_entity; - free(tmp); - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_node_list_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_node_list_t* list = (ADM_node_list_t*) data; - ADM_node_list_t tmp = NULL; - - hg_size_t length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - tmp = *list; - // write the length of the list - length = tmp->l_length; - ret = hg_proc_hg_size_t(proc, &tmp->l_length); - - if(ret != HG_SUCCESS) { - break; - } - - // write the list - for(size_t i = 0; i < length; ++i) { - ret = hg_proc_adm_node(proc, &tmp->l_nodes[i]); - - if(ret != HG_SUCCESS) { - break; - } - } - break; - - case HG_DECODE: { - - // find out the length of the list - ret = hg_proc_hg_size_t(proc, &length); - - if(ret != HG_SUCCESS) { - break; - } - - // loop and create list elements - tmp = (ADM_node_list_t) calloc(1, sizeof(struct adm_node_list)); - tmp->l_length = length; - tmp->l_nodes = (adm_node*) calloc(length, sizeof(adm_node)); - - for(size_t i = 0; i < length; ++i) { - ret = hg_proc_adm_node(proc, &tmp->l_nodes[i]); - - if(ret != HG_SUCCESS) { - break; - } - } - - // return the newly-created list - *list = tmp; - - break; - } - - case HG_FREE: - tmp = *list; - free(tmp->l_nodes); - free(tmp); - ret = HG_SUCCESS; - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_adhoc_resources_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_adhoc_resources_t* res = (ADM_adhoc_resources_t*) data; - ADM_adhoc_resources_t tmp = NULL; - hg_size_t res_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the adm_adhoc_resources object we need to - // send - res_length = *res ? sizeof(adm_adhoc_resources) : 0; - ret = hg_proc_hg_size_t(proc, &res_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!res_length) { - return HG_SUCCESS; - } - - // if we actually need to send an adm_transfer object, - // write it to the mercury buffer - tmp = *res; - - ret = hg_proc_adm_adhoc_resources(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - break; - - case HG_DECODE: - // find out the length of the adm_transfer object - ret = hg_proc_hg_size_t(proc, &res_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!res_length) { - *res = NULL; - break; - } - - // if the received adm_adhoc_resources object was not NULL, read - // each of its fields from the mercury buffer - tmp = (adm_adhoc_resources*) calloc(1, sizeof(adm_adhoc_resources)); - - ret = hg_proc_adm_adhoc_resources(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - // return the newly-created ctx - *res = tmp; - break; - - case HG_FREE: - tmp = *res; - free(tmp); - break; - } - - return ret; -} - -hg_return_t -hg_proc_ADM_job_resources_t(hg_proc_t proc, void* data) { - - hg_return_t ret = HG_SUCCESS; - ADM_job_resources_t* res = (ADM_job_resources_t*) data; - ADM_job_resources_t tmp = NULL; - hg_size_t res_length = 0; - - switch(hg_proc_get_op(proc)) { - - case HG_ENCODE: - // find out the length of the adm_job_resources object we need to - // send - res_length = *res ? sizeof(adm_job_resources) : 0; - ret = hg_proc_hg_size_t(proc, &res_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!res_length) { - return HG_SUCCESS; - } - - // if we actually need to send an adm_transfer object, - // write it to the mercury buffer - tmp = *res; - - ret = hg_proc_adm_job_resources(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - break; - - case HG_DECODE: - // find out the length of the adm_transfer object - ret = hg_proc_hg_size_t(proc, &res_length); - - if(ret != HG_SUCCESS) { - break; - } - - if(!res_length) { - *res = NULL; - break; - } - - // if the received adm_job_resources object was not NULL, read - // each of its fields from the mercury buffer - tmp = (adm_job_resources*) calloc(1, sizeof(adm_job_resources)); - - ret = hg_proc_adm_job_resources(proc, tmp); - - if(ret != HG_SUCCESS) { - break; - } - - // return the newly-created ctx - *res = tmp; - break; - - case HG_FREE: - tmp = *res; - free(tmp); - break; - } - - return ret; -} diff --git a/src/common/net/proto/rpc_types.h b/src/common/net/proto/rpc_types.h deleted file mode 100644 index f62fc561dff96c51a364497b11ace0b4c78c093c..0000000000000000000000000000000000000000 --- a/src/common/net/proto/rpc_types.h +++ /dev/null @@ -1,657 +0,0 @@ -/****************************************************************************** - * Copyright 2021-2022, Barcelona Supercomputing Center (BSC), Spain - * - * This software was partially supported by the EuroHPC-funded project ADMIRE - * (Project ID: 956748, https://www.admire-eurohpc.eu). - * - * This file is part of scord. - * - * scord is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * scord is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with scord. If not, see <https://www.gnu.org/licenses/>. - * - * SPDX-License-Identifier: GPL-3.0-or-later - *****************************************************************************/ - -#ifndef SCORD_PROTO_TYPES_HPP -#define SCORD_PROTO_TYPES_HPP - -#if 0 -#include <stdlib.h> // NOLINT -#include <mercury_macros.h> -#include <mercury_proc_string.h> -#include <scord/types.h> - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus - -/** - * N.B. MERCURY_GEN_STRUCT_PROC requires a `typedef` as its first argument, but - * admire_types.h also requires types to be defined as `struct T`s. Defining RPC - * types as `typedef struct T { ... } T;` solves both problems - */ - -#if 0 -typedef struct adm_node { - const char* n_hostname; -} adm_node; - -hg_return_t -hg_proc_ADM_node_t(hg_proc_t proc, void* data); - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_node, // NOLINT - ((hg_const_string_t) (n_hostname)) -); -// clang-format on - -typedef struct adm_dataset { - const char* d_id; -} adm_dataset; - -hg_return_t -hg_proc_ADM_dataset_t(hg_proc_t proc, void* data); - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_dataset, // NOLINT - ((hg_const_string_t) (d_id)) -); -// clang-format on - -typedef struct adm_job { - uint64_t j_id; - uint64_t j_slurm_id; -} adm_job; - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_job, // NOLINT - ((hg_uint64_t) (j_id)) - ((hg_uint64_t) (j_slurm_id)) -); -// clang-format on - -hg_return_t -hg_proc_ADM_job_t(hg_proc_t proc, void* data); - -typedef struct adm_qos_entity { - ADM_qos_scope_t e_scope; - union { - ADM_node_t e_node; - ADM_job_t e_job; - ADM_dataset_t e_dataset; - ADM_transfer_t e_transfer; - }; -} adm_qos_entity; - -extern hg_return_t (*hg_proc_ADM_qos_scope_t)(hg_proc_t, void*); - -hg_return_t -hg_proc_ADM_qos_entity_t(hg_proc_t proc, void* data); -#endif - -typedef struct adm_qos_limit { - ADM_qos_entity_t l_entity; - ADM_qos_class_t l_class; - hg_uint64_t l_value; -} adm_qos_limit; - -extern hg_return_t (*hg_proc_ADM_qos_class_t)(hg_proc_t, void*); - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_qos_limit, // NOLINT - ((ADM_qos_entity_t) (l_entity)) - ((ADM_qos_class_t) (l_class)) - ((hg_uint64_t) (l_value)) -) -// clang-format on - -typedef struct adm_transfer { - uint64_t t_id; -} adm_transfer; - -hg_return_t -hg_proc_ADM_transfer_t(hg_proc_t proc, void* data); - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_transfer, // NOLINT - ((hg_uint64_t) (t_id)) -); -// clang-format on - -typedef struct adm_dataset_info { - // TODO: undefined for now - int32_t placeholder; -} adm_dataset_info; - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_dataset_info, // NOLINT - ((hg_int32_t) (placeholder)) -); -// clang-format on - -typedef struct adm_adhoc_context { - /** The adhoc storage system execution mode */ - ADM_adhoc_mode_t c_mode; - /** The adhoc storage system access type */ - ADM_adhoc_access_t c_access; - /** The resources assigned for the adhoc storage system */ - ADM_adhoc_resources_t c_resources; - /** The adhoc storage system walltime */ - uint32_t c_walltime; - /** Whether the adhoc storage system should flush data in the background */ - bool c_should_bg_flush; -} adm_adhoc_context; - -hg_return_t -hg_proc_ADM_adhoc_resources_t(hg_proc_t proc, void* data); - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_adhoc_context, // NOLINT - ((hg_int32_t) (c_mode)) - ((hg_int32_t) (c_access)) - ((ADM_adhoc_resources_t) (c_resources)) - ((hg_uint32_t) (c_walltime)) - ((hg_bool_t) (c_should_bg_flush)) -) -// clang-format on - -typedef struct adm_pfs_context { - /** The PFS mount point */ - const char* c_mount; -} adm_pfs_context; - - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_pfs_context, // NOLINT - ((hg_const_string_t) (c_mount)) -); -// clang-format on - -extern hg_return_t (*hg_proc_ADM_adhoc_storage_type_t)(hg_proc_t, void*); - -typedef struct adm_adhoc_storage { - const char* s_name; - ADM_adhoc_storage_type_t s_type; - uint64_t s_id; - ADM_adhoc_context_t s_adhoc_ctx; -} adm_adhoc_storage; - -hg_return_t -hg_proc_ADM_adhoc_storage_t(hg_proc_t proc, void* data); - -extern hg_return_t (*hg_proc_ADM_pfs_storage_type_t)(hg_proc_t, void*); - -typedef struct adm_pfs_storage { - const char* s_name; - ADM_pfs_storage_type_t s_type; - uint64_t s_id; - ADM_pfs_context_t s_pfs_ctx; -} adm_pfs_storage; - -hg_return_t -hg_proc_ADM_pfs_storage_t(hg_proc_t proc, void* data); - -struct adm_node_list { - /** An array of nodes */ - adm_node* l_nodes; - /** The length of the array */ - size_t l_length; -}; - -hg_return_t -hg_proc_ADM_node_list_t(hg_proc_t proc, void* data); - -typedef struct adm_adhoc_resources { - ADM_node_list_t r_nodes; -} adm_adhoc_resources; - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_adhoc_resources, // NOLINT - ((ADM_node_list_t) (r_nodes)) -); -// clang-format on - -typedef struct adm_data_operation { - // TODO: undefined for now - int32_t placeholder; -} adm_data_operation; - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_data_operation, // NOLINT - ((hg_int32_t) (placeholder)) -); -// clang-format on - - -struct adm_dataset_list { - /** An array of datasets */ - adm_dataset* l_datasets; - /** The length of the array */ - size_t l_length; -}; - -hg_return_t -hg_proc_ADM_dataset_list_t(hg_proc_t proc, void* data); - -hg_return_t -hg_proc_ADM_adhoc_context_t(hg_proc_t proc, void* data); - -hg_return_t -hg_proc_ADM_pfs_context_t(hg_proc_t proc, void* data); - - -/** The I/O requirements for a job */ -typedef struct adm_job_requirements { - /** An array of input datasets */ - ADM_dataset_list_t r_inputs; - /** An array of output datasets */ - ADM_dataset_list_t r_outputs; - /** An optional definition for a specific storage instance */ - ADM_adhoc_storage_t r_adhoc_storage; -} adm_job_requirements; - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_job_requirements, // NOLINT - ((ADM_dataset_list_t) (r_inputs)) - ((ADM_dataset_list_t) (r_outputs)) - ((ADM_adhoc_storage_t) (r_adhoc_storage)) -); -// clang-format on - -/** The resources assigned to a job */ -typedef struct adm_job_resources { - ADM_node_list_t r_nodes; -} adm_job_resources; - -// clang-format off -MERCURY_GEN_STRUCT_PROC( - adm_job_resources, // NOLINT - ((ADM_node_list_t) (r_nodes)) -); -// clang-format on - -// clang-format off - -MERCURY_GEN_PROC( - ADM_ping_out_t, - ((hg_uint64_t) (op_id)) - ((int32_t) (retval)) -); - -hg_return_t -hg_proc_ADM_job_resources_t(hg_proc_t proc, void* data); - -/// ADM_register_job -MERCURY_GEN_PROC( - ADM_register_job_in_t, - ((ADM_job_resources_t) (job_resources)) - ((adm_job_requirements) (reqs)) - ((hg_uint64_t) (slurm_job_id)) -); - -MERCURY_GEN_PROC( - ADM_register_job_out_t, - ((hg_uint64_t) (op_id)) - ((int32_t) (retval)) - ((ADM_job_t) (job)) -); - -/// ADM_update_job -MERCURY_GEN_PROC( - ADM_update_job_in_t, - ((ADM_job_t) (job)) - ((ADM_job_resources_t) (job_resources)) -); - -MERCURY_GEN_PROC( - ADM_update_job_out_t, - ((hg_uint64_t) (op_id)) - ((int32_t) (retval)) -); - -/// ADM_remove_job -MERCURY_GEN_PROC( - ADM_remove_job_in_t, - ((ADM_job_t) (job)) -); - -MERCURY_GEN_PROC( - ADM_remove_job_out_t, - ((hg_uint64_t) (op_id)) - ((hg_int32_t) (retval)) -); - -/// ADM_register_adhoc_storage -MERCURY_GEN_PROC( - ADM_register_adhoc_storage_in_t, - ((hg_const_string_t) (name)) - ((ADM_adhoc_storage_type_t) (type)) - ((ADM_adhoc_context_t) (ctx)) -); - -MERCURY_GEN_PROC( - ADM_register_adhoc_storage_out_t, - ((hg_uint64_t) (op_id)) - ((hg_int32_t) (retval)) - ((hg_uint64_t) (id)) -); - -/// ADM_update_adhoc_storage -MERCURY_GEN_PROC( - ADM_update_adhoc_storage_in_t, - ((ADM_adhoc_context_t)(adhoc_storage_ctx)) - ((hg_uint64_t)(server_id)) -); - -MERCURY_GEN_PROC( - ADM_update_adhoc_storage_out_t, - ((hg_uint64_t) (op_id)) - ((hg_int32_t) (retval)) -); - -/// ADM_remove_adhoc_storage -MERCURY_GEN_PROC( - ADM_remove_adhoc_storage_in_t, - ((hg_uint64_t) (server_id)) -); - -MERCURY_GEN_PROC( - ADM_remove_adhoc_storage_out_t, - ((hg_uint64_t) (op_id)) - ((hg_int32_t) (retval)) -); - -/// ADM_deploy_adhoc_storage -MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_in_t, ((hg_uint64_t) (id))) - -MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_out_t, - ((hg_uint64_t) (op_id)) - ((hg_int32_t) (retval)) -); - -/// ADM_register_pfs_storage -MERCURY_GEN_PROC( - ADM_register_pfs_storage_in_t, - ((hg_const_string_t) (name)) - ((ADM_pfs_storage_type_t) (type)) - ((ADM_pfs_context_t) (ctx)) -); - -MERCURY_GEN_PROC( - ADM_register_pfs_storage_out_t, - ((hg_uint64_t) (op_id)) - ((hg_int32_t) (retval)) - ((hg_uint64_t) (id)) -); - -/// ADM_update_pfs_storage -MERCURY_GEN_PROC( - ADM_update_pfs_storage_in_t, - ((ADM_pfs_context_t) (pfs_storage_ctx)) - ((hg_uint64_t) (server_id)) -); - -MERCURY_GEN_PROC( - ADM_update_pfs_storage_out_t, - ((hg_uint64_t) (op_id)) - ((hg_int32_t) (retval)) -); - -/// ADM_remove_pfs_storage -MERCURY_GEN_PROC( - ADM_remove_pfs_storage_in_t, - ((hg_uint64_t) (server_id)) -); - -MERCURY_GEN_PROC( - ADM_remove_pfs_storage_out_t, - ((hg_uint64_t) (op_id)) - ((hg_int32_t) (retval)) -); - -/// ADM_input -MERCURY_GEN_PROC(ADM_input_in_t, - ((hg_const_string_t) (origin))((hg_const_string_t) (target))) - -MERCURY_GEN_PROC(ADM_input_out_t, ((int32_t) (ret))) - -/// ADM_output - -MERCURY_GEN_PROC(ADM_output_in_t, - ((hg_const_string_t) (origin))((hg_const_string_t) (target))) - -MERCURY_GEN_PROC(ADM_output_out_t, ((int32_t) (ret))) - -/// ADM_inout - -MERCURY_GEN_PROC(ADM_inout_in_t, - ((hg_const_string_t) (origin))((hg_const_string_t) (target))) - -MERCURY_GEN_PROC(ADM_inout_out_t, ((int32_t) (ret))) - -/// ADM_adhoc_context - -MERCURY_GEN_PROC(ADM_adhoc_context_in_t, ((hg_const_string_t) (context))) - -MERCURY_GEN_PROC(ADM_adhoc_context_out_t, - ((int32_t) (ret))((int32_t) (adhoc_context))) - -/// ADM_adhoc_context_id - -MERCURY_GEN_PROC(ADM_adhoc_context_id_in_t, ((int32_t) (context_id))) - -MERCURY_GEN_PROC(ADM_adhoc_context_id_out_t, ((int32_t) (ret))) - -/// ADM_adhoc_nodes - -MERCURY_GEN_PROC(ADM_adhoc_nodes_in_t, ((int32_t) (nodes))) - -MERCURY_GEN_PROC(ADM_adhoc_nodes_out_t, ((int32_t) (ret))) - -/// ADM_adhoc_walltime - -MERCURY_GEN_PROC(ADM_adhoc_walltime_in_t, ((int32_t) (walltime))) - -MERCURY_GEN_PROC(ADM_adhoc_walltime_out_t, ((int32_t) (ret))) - - -/// ADM_adhoc_access - -MERCURY_GEN_PROC(ADM_adhoc_access_in_t, ((hg_const_string_t) (access))) - -MERCURY_GEN_PROC(ADM_adhoc_access_out_t, ((int32_t) (ret))) - -/// ADM_adhoc_distribution - -MERCURY_GEN_PROC(ADM_adhoc_distribution_in_t, - ((hg_const_string_t) (data_distribution))) - -MERCURY_GEN_PROC(ADM_adhoc_distribution_out_t, ((int32_t) (ret))) - -/// ADM_adhoc_background_flush - -MERCURY_GEN_PROC(ADM_adhoc_background_flush_in_t, ((hg_bool_t) (b_flush))) - -MERCURY_GEN_PROC(ADM_adhoc_background_flush_out_t, ((int32_t) (ret))) - -/// ADM_in_situ_ops - -MERCURY_GEN_PROC(ADM_in_situ_ops_in_t, ((hg_const_string_t) (in_situ))) - -MERCURY_GEN_PROC(ADM_in_situ_ops_out_t, ((int32_t) (ret))) - -/// ADM_in_transit_ops - -MERCURY_GEN_PROC(ADM_in_transit_ops_in_t, ((hg_const_string_t) (in_transit))) - -MERCURY_GEN_PROC(ADM_in_transit_ops_out_t, ((int32_t) (ret))) - -struct adm_qos_limit_list { - /** An array of QoS limits */ - adm_qos_limit* l_limits; - /** The length of the array */ - size_t l_length; -}; - -hg_return_t -hg_proc_ADM_qos_limit_list_t(hg_proc_t proc, void* data); - -/// ADM_transfer_datasets - -MERCURY_GEN_PROC( - ADM_transfer_datasets_in_t, - ((ADM_job_t) (job)) - ((ADM_dataset_list_t) (sources)) - ((ADM_dataset_list_t) (targets)) - ((ADM_qos_limit_list_t) (qos_limits)) - ((hg_int32_t) (mapping)) -) - -MERCURY_GEN_PROC( - ADM_transfer_datasets_out_t, - ((hg_uint64_t) (op_id)) - ((hg_int32_t) (retval)) - ((ADM_transfer_t) (tx))) - - -/// ADM_set_dataset_information - -MERCURY_GEN_PROC(ADM_set_dataset_information_in_t, - ((int32_t) (resource_id))((hg_const_string_t) (info))( - (int32_t) (job_id))) - -MERCURY_GEN_PROC(ADM_set_dataset_information_out_t, - ((int32_t) (ret))((int32_t) (status))) - -/// ADM_set_io_resources - -MERCURY_GEN_PROC(ADM_set_io_resources_in_t, - ((int32_t) (tier_id))((hg_const_string_t) (resources))( - (int32_t) (job_id))) - -MERCURY_GEN_PROC(ADM_set_io_resources_out_t, - ((int32_t) (ret))((int32_t) (status))) - -/// ADM_get_transfer_priority - -MERCURY_GEN_PROC(ADM_get_transfer_priority_in_t, ((int32_t) (transfer_id))) - -MERCURY_GEN_PROC(ADM_get_transfer_priority_out_t, - ((int32_t) (ret))((int32_t) (priority))) - -/// ADM_set_transfer_priority - -MERCURY_GEN_PROC(ADM_set_transfer_priority_in_t, - ((int32_t) (transfer_id))((int32_t) (n_positions))) - -MERCURY_GEN_PROC(ADM_set_transfer_priority_out_t, - ((int32_t) (ret))((int32_t) (status))) - -/// ADM_cancel_transfer - -MERCURY_GEN_PROC(ADM_cancel_transfer_in_t, ((int32_t) (transfer_id))) - -MERCURY_GEN_PROC(ADM_cancel_transfer_out_t, - ((int32_t) (ret))((int32_t) (status))) - -/// ADM_get_pending_transfers - -MERCURY_GEN_PROC(ADM_get_pending_transfers_in_t, ((hg_const_string_t) (value))) - -MERCURY_GEN_PROC(ADM_get_pending_transfers_out_t, - ((int32_t) (ret))((hg_const_string_t) (pending_transfers))) - -/// ADM_set_qos_constraints - -MERCURY_GEN_PROC( - ADM_set_qos_constraints_in_t, - ((hg_const_string_t) (scope))((hg_const_string_t) (qos_class))( - (int32_t) (element_id))((hg_const_string_t) (class_value))) - -MERCURY_GEN_PROC(ADM_set_qos_constraints_out_t, - ((int32_t) (ret))((int32_t) (status))) - -/// ADM_get_qos_constraints - -MERCURY_GEN_PROC(ADM_get_qos_constraints_in_t, - ((hg_const_string_t) (scope))((int32_t) (element_id))) - -MERCURY_GEN_PROC(ADM_get_qos_constraints_out_t, - ((int32_t) (ret))((hg_const_string_t) (list))) - -/// ADM_define_data_operation - -MERCURY_GEN_PROC(ADM_define_data_operation_in_t, - ((hg_const_string_t) (path))((int32_t) (operation_id))( - (hg_const_string_t) (arguments))) - -MERCURY_GEN_PROC(ADM_define_data_operation_out_t, - ((int32_t) (ret))((int32_t) (status))) - -/// ADM_connect_data_operation - -MERCURY_GEN_PROC(ADM_connect_data_operation_in_t, - ((int32_t) (operation_id))((hg_const_string_t) (input))( - (hg_bool_t) (stream))((hg_const_string_t) (arguments))( - (int32_t) (job_id))) - -MERCURY_GEN_PROC(ADM_connect_data_operation_out_t, - ((int32_t) (ret))((hg_const_string_t) (data))( - (hg_const_string_t) (operation_handle))) - -/// ADM_finalize_data_operation - -MERCURY_GEN_PROC(ADM_finalize_data_operation_in_t, ((int32_t) (operation_id))) - -MERCURY_GEN_PROC(ADM_finalize_data_operation_out_t, - ((int32_t) (ret))((int32_t) (status))) - - -/// ADM_link_transfer_to_data_operation - -MERCURY_GEN_PROC(ADM_link_transfer_to_data_operation_in_t, - ((int32_t) (operation_id))((int32_t) (transfer_id))( - (hg_bool_t) (stream))((hg_const_string_t) (arguments))( - (int32_t) (job_id))) - -MERCURY_GEN_PROC(ADM_link_transfer_to_data_operation_out_t, - ((int32_t) (ret))((hg_const_string_t) (operation_handle))) - -/// ADM_get_statistics - -MERCURY_GEN_PROC(ADM_get_statistics_in_t, - ((int32_t) (job_id))((int32_t) (job_step))) - -MERCURY_GEN_PROC(ADM_get_statistics_out_t, - ((int32_t) (ret))((hg_const_string_t) (job_statistics))) - -// clang-format on - -#ifdef __cplusplus -}; // extern "C" -#endif // __cplusplus - -#endif - -#endif // SCORD_PROTO_TYPES_HPP diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index cae7695205b365035be4bd2c9a8129c258b7e0e8..7690d0dc3366a3ec793abbc8562ea46e5a56ec4e 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -44,7 +44,7 @@ target_include_directories( target_link_libraries( libscord - PRIVATE common::network::rpc_client common::network::rpc_types + PRIVATE common::network::rpc_client PUBLIC tl::expected common::api::types ) diff --git a/src/lib/c_wrapper.cpp b/src/lib/c_wrapper.cpp index 20d60ef27fd344d7cb171651529c1f7b4898ea11..8e9cd12ad85538cf4a3b2c228ca346502008031a 100644 --- a/src/lib/c_wrapper.cpp +++ b/src/lib/c_wrapper.cpp @@ -25,7 +25,6 @@ #include <scord/scord.h> #include <scord/scord.hpp> #include <logger/logger.hpp> -#include <net/proto/rpc_types.h> #include <stdarg.h> #include <scord/types.hpp> #include <scord/types.h> diff --git a/src/lib/libscord.cpp b/src/lib/libscord.cpp index b0ef7163fbab015bcdd99ed7c9c954c7ec294512..3d80dd3057e8335014e4bf7614d8900adfc4ea11 100644 --- a/src/lib/libscord.cpp +++ b/src/lib/libscord.cpp @@ -23,7 +23,6 @@ *****************************************************************************/ #include <scord/scord.hpp> -#include <net/proto/rpc_types.h> #include <logger/logger.hpp> #include <utils/ctype_ptr.hpp> #include <env.hpp> diff --git a/src/scord-ctl/CMakeLists.txt b/src/scord-ctl/CMakeLists.txt index b06f68386f4443a69a9555412ac88888cae0677f..082d34efd8c1ee8587cf3925f7209115bc219cba 100644 --- a/src/scord-ctl/CMakeLists.txt +++ b/src/scord-ctl/CMakeLists.txt @@ -35,7 +35,7 @@ target_include_directories( target_link_libraries( scord-ctl PRIVATE common::config common::logger common::network::rpc_server - common::network::rpc_types common::api::types fmt::fmt Boost::program_options + common::api::types fmt::fmt Boost::program_options ) install(TARGETS scord DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/src/scord/CMakeLists.txt b/src/scord/CMakeLists.txt index 8278ec4ce2d455fcd758d37ae7b30575405c34f5..e83c50a6196554af51a5ec8629440fa57385cd6d 100644 --- a/src/scord/CMakeLists.txt +++ b/src/scord/CMakeLists.txt @@ -39,7 +39,6 @@ target_link_libraries( PRIVATE common::config common::logger common::network::rpc_server - common::network::rpc_types common::api::types common::utils common::abt_cxx