#ifndef INSTR_SMPI_HPP
#define INSTR_SMPI_HPP
-#ifdef __cplusplus
-#include <string>
-#endif
-
#include "smpi/smpi.h"
#include "src/instr/instr_private.hpp"
+#include <string>
-SG_BEGIN_DECL()
+XBT_PRIVATE std::string smpi_container(int rank);
+
+extern "C" {
XBT_PRIVATE void TRACE_internal_smpi_set_category(const char* category);
XBT_PRIVATE const char* TRACE_internal_smpi_get_category();
XBT_PRIVATE void TRACE_smpi_recv(int src, int dst, int tag);
XBT_PRIVATE void TRACE_smpi_init(int rank);
XBT_PRIVATE void TRACE_smpi_finalize(int rank);
-XBT_PRIVATE char* smpi_container(int rank, char* container, int n);
XBT_PRIVATE const char* encode_datatype(MPI_Datatype datatype, int* known);
-typedef struct smpi_trace_call_location {
- const char* filename;
+class smpi_trace_call_location_t {
+public:
+ std::string filename;
int linenumber;
- const char* previous_filename;
+ std::string previous_filename;
int previous_linenumber;
-#ifdef __cplusplus
- std::string get_composed_key() {
- return std::string(previous_filename) + ':' + std::to_string(previous_linenumber) + ':' + filename + ':' + std::to_string(linenumber);
+ std::string get_composed_key()
+ {
+ return previous_filename + ':' + std::to_string(previous_linenumber) + ':' + filename + ':' +
+ std::to_string(linenumber);
}
-#endif
-
-} smpi_trace_call_location_t;
-
-SG_END_DECL()
+};
+}
#endif