00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00036 #ifndef SC_CLUSTER_COM_H
00037 #define SC_CLUSTER_COM_H
00038
00039 #ifdef __cplusplus
00040 extern "C" {
00041 #endif
00042
00043
00044 struct ScClusterCommunicator;
00045 typedef struct ScClusterCommunicator ScClusterCom;
00046
00047 #if defined(_WIN32)
00048 # ifdef ClusterCom_EXPORTS
00049 # define CLUSTERCOM_API __declspec(dllexport)
00050 # else
00051 # define CLUSTERCOM_API __declspec(dllimport)
00052 # endif
00053 #else
00054 # define CLUSTERCOM_API
00055 #endif
00056
00061 CLUSTERCOM_API ScClusterCom* ScClusterCom_Init( int* argc, char*** argv, void* unused, int size );
00062
00066 CLUSTERCOM_API void ScClusterCom_Finish( ScClusterCom* );
00067
00073 CLUSTERCOM_API int ScClusterCom_getNodeID( ScClusterCom* );
00074
00079 CLUSTERCOM_API int ScClusterCom_getNbNode( ScClusterCom* );
00080
00084 CLUSTERCOM_API void ScClusterCom_Barrier( ScClusterCom* );
00085
00090 CLUSTERCOM_API int ScClusterCom_Broadcast( ScClusterCom*, int rootID, void *buffer, int size );
00091
00095 CLUSTERCOM_API int ScClusterCom_Exchange (
00096 ScClusterCom*,
00097 void *snd_buffer, int snd_size, int sndID,
00098 void *rcv_buffer, int rcv_size, int rcvID);
00099
00100
00104 CLUSTERCOM_API const char* ScClusterCom_ErrString( const int error );
00105
00106 #ifdef __cplusplus
00107 }
00108 #endif
00109
00110 #endif
00111
00112
00113
00114