📄 mpd_nameserv.c
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* $Id: mpd_nameserv.c,v 1.5 2006/08/08 14:16:07 gropp Exp $ * * (C) 2001 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. *//* * This file contains a simple mpd-based implementation of the name server * routines, using the mpd daemons to hold the data, but accessing it through * the PMI interface. * Publishing will go to the local mpd; lookup will search the ring, looking * for the data. */#include "mpiimpl.h"#include "namepub.h"#include "pmi.h"/* Define the name service handle. Note that the interface requires that we return a non-null handle to an object of this type, even though we don't use it. We use a single, statically allocated instance for simplicity. */#define MPID_MAX_NAMEPUB 64struct MPID_NS_Handle { int foo; /* unused for now; some compilers object to empty structs */}; /* Create a structure that we will use to remember files created for publishing. */#undef FUNCNAME#define FUNCNAME MPID_NS_Createint MPID_NS_Create( const MPID_Info *info_ptr, MPID_NS_Handle *handle_ptr ){ static struct MPID_NS_Handle myNShandle; *handle_ptr = &myNShandle; /* The mpd name service needs no local data */ /* All will be handled at the mpd through the PMI interface */ return 0;}#undef FUNCNAME#define FUNCNAME MPID_NS_Publishint MPID_NS_Publish( MPID_NS_Handle handle, const MPID_Info *info_ptr, const char service_name[], const char port[] ){ int rc; static const char FCNAME[] = "MPID_NS_Publish"; rc = PMI_Publish_name( service_name, port ); if (rc != PMI_SUCCESS) { /* --BEGIN ERROR HANDLING-- */ /* printf( "PMI_Publish_name failed for %s\n", service_name ); */ return MPIR_Err_create_code( MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_NAME, "**namepubnotpub", "**namepubnotpub %s", service_name ); /* --END ERROR HANDLING-- */ } return 0;}#undef FUNCNAME#define FUNCNAME MPID_NS_Lookupint MPID_NS_Lookup( MPID_NS_Handle handle, const MPID_Info *info_ptr, const char service_name[], char port[] ){ int rc; static const char FCNAME[] = "MPID_NS_Lookup"; rc = PMI_Lookup_name( service_name, port ); if (rc != PMI_SUCCESS) { /* --BEGIN ERROR HANDLING-- */ /* printf( "PMI_Lookup_name failed for %s\n", service_name ); */ return MPIR_Err_create_code( MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_NAME, "**namepubnotfound", "**namepubnotfound %s", service_name ); /* --END ERROR HANDLING-- */ } return 0;}#undef FUNCNAME#define FUNCNAME MPID_NS_Unpublishint MPID_NS_Unpublish( MPID_NS_Handle handle, const MPID_Info *info_ptr, const char service_name[] ){ int rc; static const char FCNAME[] = "MPID_NS_Unpublish"; rc = PMI_Unpublish_name( service_name ); if (rc != PMI_SUCCESS) { /* --BEGIN ERROR HANDLING-- */ /* printf( "PMI_Unpublish_name failed for %s\n", service_name ); */ return MPIR_Err_create_code( MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_NAME, "**namepubnotunpub", "**namepubnotunpub %s", service_name ); /* --END ERROR HANDLING-- */ } return 0;}#undef FUNCNAME#define FUNCNAME MPID_NS_Freeint MPID_NS_Free( MPID_NS_Handle *handle_ptr ){ /* MPID_NS_Handle is points to statically allocated storage (see MPID_NS_Create) */ return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -