/* ompi/mca/osc/monitoring/osc_monitoring_template_gen.h
 *
 * This file was generated from ompi/mca/osc/monitoring/configure.m4
 *
 * DO NOT EDIT THIS FILE.
 *
 */
/*
 * Copyright (c) 2017-2018 Inria.  All rights reserved.
 * $COPYRIGHT$
 *
 * Additional copyrights may follow
 *
 * $HEADER$
 */

#ifndef MCA_OSC_MONITORING_GEN_TEMPLATE_H
#define MCA_OSC_MONITORING_GEN_TEMPLATE_H

#include "ompi_config.h"
#include "ompi/mca/osc/osc.h"
#include "ompi/mca/osc/monitoring/osc_monitoring_template.h"

/************************************************************/
/* Include template generating macros and inlined functions */

OSC_MONITORING_MODULE_TEMPLATE_GENERATE(portals4)
OSC_MONITORING_MODULE_TEMPLATE_GENERATE(rdma)
OSC_MONITORING_MODULE_TEMPLATE_GENERATE(ucx)
OSC_MONITORING_MODULE_TEMPLATE_GENERATE(sm)

/************************************************************/

typedef struct {
    const char * name;
    ompi_osc_base_module_t * (*fct) (ompi_osc_base_module_t *);
} osc_monitoring_components_list_t;

static const osc_monitoring_components_list_t osc_monitoring_components_list[] = {
    { .name = "portals4", .fct = OSC_MONITORING_SET_TEMPLATE_FCT_NAME(portals4) },
    { .name = "rdma", .fct = OSC_MONITORING_SET_TEMPLATE_FCT_NAME(rdma) },
    { .name = "ucx", .fct = OSC_MONITORING_SET_TEMPLATE_FCT_NAME(ucx) },
    { .name = "sm", .fct = OSC_MONITORING_SET_TEMPLATE_FCT_NAME(sm) },
    { .name = NULL, .fct = NULL }
};

#endif /* MCA_OSC_MONITORING_GEN_TEMPLATE_H */
