#ifndef PMIX_PREG_H
#define PMIX_PREG_H
#include "src/include/pmix_config.h"
#include "src/mca/base/pmix_mca_base_framework.h"
#include "src/mca/base/pmix_mca_base_var.h"
#include "src/mca/bfrops/bfrops_types.h"
#include "src/mca/mca.h"
#include "src/mca/preg/preg_types.h"
BEGIN_C_DECLS
#define PMIX_MAX_NODE_PREFIX 8192
typedef pmix_status_t (*pmix_preg_base_module_generate_node_regex_fn_t)(const char *input,
char **regex);
typedef pmix_status_t (*pmix_preg_base_module_generate_ppn_fn_t)(const char *input, char **ppn);
typedef pmix_status_t (*pmix_preg_base_module_parse_nodes_fn_t)(const char *regexp, char ***names);
typedef pmix_status_t (*pmix_preg_base_module_parse_procs_fn_t)(const char *regexp, char ***procs);
typedef pmix_status_t (*pmix_preg_base_module_copy_fn_t)(char **dest, size_t *len,
const char *input);
typedef pmix_status_t (*pmix_preg_base_module_pack_fn_t)(pmix_buffer_t *buffer, const char *regex);
typedef pmix_status_t (*pmix_preg_base_module_unpack_fn_t)(pmix_buffer_t *buffer, char **regex);
typedef pmix_status_t (*pmix_preg_base_module_release_fn_t)(char *regexp);
typedef struct {
char *name;
pmix_preg_base_module_generate_node_regex_fn_t generate_node_regex;
pmix_preg_base_module_generate_ppn_fn_t generate_ppn;
pmix_preg_base_module_parse_nodes_fn_t parse_nodes;
pmix_preg_base_module_parse_procs_fn_t parse_procs;
pmix_preg_base_module_copy_fn_t copy;
pmix_preg_base_module_pack_fn_t pack;
pmix_preg_base_module_unpack_fn_t unpack;
pmix_preg_base_module_release_fn_t release;
} pmix_preg_module_t;
PMIX_EXPORT extern pmix_preg_module_t pmix_preg;
#define PMIX_PREG_BASE_VERSION_1_0_0 PMIX_MCA_BASE_VERSION_1_0_0("preg", 1, 0, 0)
END_C_DECLS
#endif