/* * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. * Copyright (c) 2004-2005 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ /** @file */ #ifndef OPAL_UTIL_KEYVAL_PARSE_H #define OPAL_UTIL_KEYVAL_PARSE_H #if defined(c_plusplus) || defined(__cplusplus) extern "C" { #endif /** * Callback triggered for each key = value pair * * Callback triggered from opal_util_keyval_parse for each key = value * pair. Both key and value will be pointers into static buffers. * The buffers must not be free()ed and contents may be overwritten * immediately after the callback returns. */ typedef void (*opal_keyval_parse_fn_t)(const char *key, const char *value); /** * Parse \c filename, made up of key = value pairs. * * Parse \c filename, made up of key = value pairs. For each line * that appears to contain a key = value pair, \c callback will be * called exactly once. In a multithreaded context, calls to * opal_util_keyval_parse() will serialize multiple calls. */ OMPI_DECLSPEC int opal_util_keyval_parse(const char *filename, opal_keyval_parse_fn_t callback); OMPI_DECLSPEC int opal_util_keyval_parse_init(void); OMPI_DECLSPEC int opal_util_keyval_parse_finalize(void); #if defined(c_plusplus) || defined(__cplusplus) } #endif #endif