OpenMPI  0.1.1
pubsub.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana
3  * University Research and Technology
4  * Corporation. All rights reserved.
5  * Copyright (c) 2004-2005 The University of Tennessee and The University
6  * of Tennessee Research Foundation. All rights
7  * reserved.
8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9  * University of Stuttgart. All rights reserved.
10  * Copyright (c) 2004-2005 The Regents of the University of California.
11  * All rights reserved.
12  * $COPYRIGHT$
13  *
14  * Additional copyrights may follow
15  *
16  * $HEADER$
17  */
18 /**
19  * @file
20  *
21  * Dynamic Process Management Interface
22  *
23  */
24 
25 #ifndef OMPI_MCA_PUBSUB_H
26 #define OMPI_MCA_PUBSUB_H
27 
28 #include "ompi_config.h"
29 
30 #include "opal/mca/mca.h"
31 #include "opal/mca/base/base.h"
32 
33 
34 #include "ompi/info/info.h"
35 
36 BEGIN_C_DECLS
37 
38 /*
39  * Initialize a module
40  */
41 typedef int (*ompi_pubsub_base_module_init_fn_t)(void);
42 
43 /*
44  * Publish a data item
45  */
46 typedef int (*ompi_pubsub_base_module_publish_fn_t)(char *service, ompi_info_t *info, char *port);
47 
48 /*
49  * Unpublish a data item
50  */
51 typedef int (*ompi_pubsub_base_module_unpublish_fn_t)(char *service, ompi_info_t *info);
52 
53 /*
54  * Lookup a data item
55  */
56 typedef char* (*ompi_pubsub_base_module_lookup_fn_t)(char *service, ompi_info_t *info);
57 
58 /*
59  * Finalize a module
60  */
61 typedef int (*ompi_pubsub_base_module_finalize_fn_t)(void);
62 
63 /**
64 * Structure for PUBSUB modules
65  */
67  /** Initialization Function */
68  ompi_pubsub_base_module_init_fn_t init;
69  /* Publish */
70  ompi_pubsub_base_module_publish_fn_t publish;
71  /* Unpublish */
72  ompi_pubsub_base_module_unpublish_fn_t unpublish;
73  /* Lookup */
74  ompi_pubsub_base_module_lookup_fn_t lookup;
75  /* finalize */
76  ompi_pubsub_base_module_finalize_fn_t finalize;
77 };
80 
81 OMPI_DECLSPEC extern ompi_pubsub_base_module_t ompi_pubsub;
82 
83 
84 /**
85  * Structure for PUBSUB components.
86  */
88  /** MCA base component */
90  /** MCA base data */
92 };
95 
96 /**
97  * Macro for use in components that are of type PUBSUB
98  */
99 #define OMPI_PUBSUB_BASE_VERSION_2_0_0 \
100  MCA_BASE_VERSION_2_0_0, \
101  "pubsub", 2, 0, 0
102 
103 
104 END_C_DECLS
105 
106 #endif /* OMPI_MCA_PUBSUB_H */
Common type for all MCA components.
Definition: mca.h:250
mca_base_component_t base_version
MCA base component.
Definition: pubsub.h:89
Structure for PUBSUB components.
Definition: pubsub.h:87
Top-level interface for all MCA components.
Definition: info.h:38
ompi_pubsub_base_module_init_fn_t init
Initialization Function.
Definition: pubsub.h:68
Structure for PUBSUB modules.
Definition: pubsub.h:66
Meta data for MCA v2.0.0 components.
Definition: mca.h:309
mca_base_component_data_t base_data
MCA base data.
Definition: pubsub.h:91