This source file includes following definitions.
- pmix_psec_base_get_available_modules
- pmix_psec_base_assign_module
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 #include <src/include/pmix_config.h>
  15 
  16 #include <pmix_common.h>
  17 #include "src/include/pmix_globals.h"
  18 
  19 #include "src/class/pmix_list.h"
  20 #include "src/util/argv.h"
  21 #include "src/util/error.h"
  22 #include "src/util/output.h"
  23 #include "src/mca/ptl/base/base.h"
  24 
  25 #include "src/mca/psec/base/base.h"
  26 
  27 
  28 char* pmix_psec_base_get_available_modules(void)
  29 {
  30     pmix_psec_base_active_module_t *active;
  31     char **tmp=NULL, *reply=NULL;
  32 
  33     if (!pmix_psec_globals.initialized) {
  34         return NULL;
  35     }
  36 
  37     PMIX_LIST_FOREACH(active, &pmix_psec_globals.actives, pmix_psec_base_active_module_t) {
  38         pmix_argv_append_nosize(&tmp, active->component->base.pmix_mca_component_name);
  39     }
  40     if (NULL != tmp) {
  41         reply = pmix_argv_join(tmp, ',');
  42         pmix_argv_free(tmp);
  43     }
  44     return reply;
  45 }
  46 
  47 pmix_psec_module_t* pmix_psec_base_assign_module(const char *options)
  48 {
  49     pmix_psec_base_active_module_t *active;
  50     pmix_psec_module_t *mod;
  51     char **tmp=NULL;
  52     int i;
  53 
  54     if (!pmix_psec_globals.initialized) {
  55         return NULL;
  56     }
  57 
  58     if (NULL != options) {
  59         tmp = pmix_argv_split(options, ',');
  60     }
  61 
  62     PMIX_LIST_FOREACH(active, &pmix_psec_globals.actives, pmix_psec_base_active_module_t) {
  63         if (NULL == tmp) {
  64             if (NULL != (mod = active->component->assign_module())) {
  65                 return mod;
  66             }
  67         } else {
  68             for (i=0; NULL != tmp[i]; i++) {
  69                 if (0 == strcmp(tmp[i], active->component->base.pmix_mca_component_name)) {
  70                     if (NULL != (mod = active->component->assign_module())) {
  71                         pmix_argv_free(tmp);
  72                         return mod;
  73                     }
  74                 }
  75             }
  76         }
  77     }
  78 
  79     
  80     if (NULL != tmp) {
  81         pmix_argv_free(tmp);
  82     }
  83     return NULL;
  84 }