Verified Commit f8bdb597 authored by Alberto Miranda's avatar Alberto Miranda ♨️
Browse files

Add ADM_strerror()

parent 754f6f57
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ add_library(adm_iosched SHARED)

target_sources(adm_iosched
  PUBLIC admire.h admire.hpp
  PRIVATE admire.cpp c_wrapper.cpp detail/impl.hpp detail/impl.cpp)
  PRIVATE admire.cpp c_wrapper.cpp detail/impl.hpp detail/impl.cpp errors.c)

target_include_directories(adm_iosched PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

+10 −15
Original line number Diff line number Diff line
@@ -60,16 +60,15 @@ register_job(const server& srv, ADM_job_requirements_t reqs) {
    const auto rv = detail::register_job(srv, reqs);

    if(!rv) {
        /* TODO ADM_strerror(rv.error()) */
        throw std::runtime_error("ADM_register_job() error");
        throw std::runtime_error(fmt::format("ADM_register_job() error: {}",
                                             ADM_strerror(rv.error())));
    }

    return rv.value();
}

ADM_return_t
update_job(const server& srv, ADM_job_t job,
           ADM_job_requirements_t reqs) {
update_job(const server& srv, ADM_job_t job, ADM_job_requirements_t reqs) {
    (void) srv;
    (void) job;
    (void) reqs;
@@ -152,8 +151,7 @@ register_adhoc_storage(const server& srv, ADM_job_t job,
}

ADM_return_t
update_adhoc_storage(const server& srv, ADM_job_t job,
                     ADM_adhoc_context_t ctx,
update_adhoc_storage(const server& srv, ADM_job_t job, ADM_adhoc_context_t ctx,
                     ADM_adhoc_storage_handle_t adhoc_handle) {
    (void) srv;
    (void) job;
@@ -301,8 +299,8 @@ set_dataset_information(const server& srv, ADM_job_t job,
}

ADM_return_t
set_io_resources(const server& srv, ADM_job_t job,
                 ADM_storage_handle_t tier, ADM_storage_resources_t resources) {
set_io_resources(const server& srv, ADM_job_t job, ADM_storage_handle_t tier,
                 ADM_storage_resources_t resources) {
    (void) srv;
    (void) job;
    (void) tier;
@@ -447,8 +445,7 @@ get_pending_transfers(const server& srv, ADM_job_t job,
}

ADM_return_t
set_qos_constraints(const server& srv, ADM_job_t job,
                    ADM_limit_t limit) {
set_qos_constraints(const server& srv, ADM_job_t job, ADM_limit_t limit) {
    (void) srv;
    (void) job;
    (void) limit;
@@ -477,9 +474,8 @@ set_qos_constraints(const server& srv, ADM_job_t job,
}

ADM_return_t
get_qos_constraints(const server& srv, ADM_job_t job,
                    ADM_qos_scope_t scope, ADM_qos_entity_t entity,
                    ADM_limit_t** limits) {
get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_scope_t scope,
                    ADM_qos_entity_t entity, ADM_limit_t** limits) {
    (void) srv;
    (void) job;
    (void) scope;
@@ -641,8 +637,7 @@ link_transfer_to_data_operation(const server& srv, ADM_job_t job,
}

ADM_return_t
get_statistics(const server& srv, ADM_job_t job,
               ADM_job_stats_t** stats) {
get_statistics(const server& srv, ADM_job_t job, ADM_job_stats_t** stats) {
    (void) srv;
    (void) job;
    (void) stats;
+15 −3
Original line number Diff line number Diff line
@@ -46,9 +46,11 @@ extern "C" {
/* Error return codes */
typedef enum {
    ADM_SUCCESS = 0,
    ADM_EINVAL,
    // generic error code
    ADM_OTHER_ERROR
    ADM_ESNAFU,
    ADM_EBADARGS,
    ADM_ENOMEM,
    ADM_EOTHER,
    ADM_ERR_MAX = 512
} ADM_return_t;

/* A server */
@@ -579,6 +581,16 @@ ADM_link_transfer_to_data_operation(ADM_server_t server, ADM_job_t job,
ADM_return_t
ADM_get_statistics(ADM_server_t server, ADM_job_t job, ADM_job_stats_t** stats);

/**
 * Return a string describing the error number
 *
 * @param[in] errnum The error number for which a description should be
 * returned.
 * @return A pointer to a string describing `errnum`.
 */
const char*
ADM_strerror(ADM_return_t errnum);

#ifdef __cplusplus
} // extern "C"
#endif
+4 −4
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ ADM_server_destroy(ADM_server_t server) {

    if(!server) {
        LOGGER_ERROR("Invalid ADM_server_t")
        return ADM_EINVAL;
        return ADM_EBADARGS;
    }

    free(server);
@@ -106,7 +106,7 @@ ADM_dataset_destroy(ADM_dataset_handle_t dataset) {

    if(!dataset) {
        LOGGER_ERROR("Invalid ADM_dataset_t")
        return ADM_EINVAL;
        return ADM_EBADARGS;
    }

    free(dataset);
@@ -142,7 +142,7 @@ ADM_job_requirements_destroy(ADM_job_requirements_t reqs) {

    if(!reqs) {
        LOGGER_ERROR("Invalid ADM_job_requirements_t")
        return ADM_EINVAL;
        return ADM_EBADARGS;
    }

    free(reqs);
@@ -188,7 +188,7 @@ ADM_register_job(ADM_server_t server, ADM_job_requirements_t reqs,
    const auto jh = ADM_job_create(rv->m_id);

    if(!jh) {
        return ADM_OTHER_ERROR;
        return ADM_EOTHER;
    }

    *job = jh;
+1 −2
Original line number Diff line number Diff line
@@ -47,8 +47,7 @@ register_job(const admire::server& srv, ADM_job_requirements_t reqs) {

    if(out.ret < 0) {
        LOGGER_ERROR("ADM_register_job() = {}", out.ret);
        /* TODO ADM_strerror(out.ret) */
        throw std::runtime_error("ADM_register_job() error");
        return tl::make_unexpected(static_cast<admire::error_code>(out.ret));
    }

    LOGGER_INFO("ADM_register_job() = {}", ADM_SUCCESS);
Loading