-/* Copyright (c) 2009-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2009-2021. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "private.hpp"
#include "simgrid/s4u/Mailbox.hpp"
#include "src/instr/instr_smpi.hpp"
-#include "xbt/synchro.h"
namespace simgrid {
namespace smpi {
std::string instance_id_;
bool replaying_ = false; /* is the process replaying a trace */
smpi_trace_call_location_t trace_call_loc_;
- s4u::ActorPtr actor_ = nullptr;
+ s4u::Actor* actor_ = nullptr;
smpi_privatization_region_t privatized_region_ = nullptr;
#ifdef __linux__
int optind_ = 0; /*for getopt replacement */
#endif
std::string tracing_category_ = "";
MPI_Info info_env_;
-
+ void* bsend_buffer_ = nullptr;
+ int bsend_buffer_size_ = 0;
+
#if HAVE_PAPI
/** Contains hardware data as read by PAPI **/
int papi_event_set_;
papi_counter_t papi_counter_data_;
#endif
+
public:
static simgrid::xbt::Extension<simgrid::s4u::Actor, ActorExt> EXTENSION_ID;
- explicit ActorExt(s4u::ActorPtr actor);
+ explicit ActorExt(s4u::Actor* actor);
ActorExt(const ActorExt&) = delete;
ActorExt& operator=(const ActorExt&) = delete;
~ActorExt();
void finalize();
- int finalized();
- int initializing();
- int initialized();
+ int finalized() const;
+ int initializing() const;
+ int initialized() const;
void mark_as_initialized();
void set_replaying(bool value);
- bool replaying();
+ bool replaying() const;
void set_tracing_category(const std::string& category) { tracing_category_ = category; }
- const std::string& get_tracing_category() { return tracing_category_; }
+ const std::string& get_tracing_category() const { return tracing_category_; }
smpi_trace_call_location_t* call_location();
void set_privatized_region(smpi_privatization_region_t region);
- smpi_privatization_region_t privatized_region();
- s4u::Mailbox* mailbox() { return mailbox_; }
- s4u::Mailbox* mailbox_small() { return mailbox_small_; }
- s4u::MutexPtr mailboxes_mutex();
+ smpi_privatization_region_t privatized_region() const;
+ s4u::Mailbox* mailbox() const { return mailbox_; }
+ s4u::Mailbox* mailbox_small() const { return mailbox_small_; }
+ s4u::MutexPtr mailboxes_mutex() const;
#if HAVE_PAPI
- int papi_event_set();
+ int papi_event_set() const;
papi_counter_t& papi_counters();
#endif
xbt_os_timer_t timer();
void simulated_start();
- double simulated_elapsed();
- MPI_Comm comm_world();
+ double simulated_elapsed() const;
+ MPI_Comm comm_world() const;
MPI_Comm comm_self();
MPI_Comm comm_intra();
void set_comm_intra(MPI_Comm comm);
void set_sampling(int s);
- int sampling();
+ int sampling() const;
static void init();
s4u::ActorPtr get_actor();
- int get_optind();
+ int get_optind() const;
void set_optind(int optind);
MPI_Info info_env();
+ void bsend_buffer(void** buf, int* size);
+ int set_bsend_buffer(void* buf, int size);
};
} // namespace smpi