#include "xbt/asserts.h"
#include <string>
+#include <string_view>
namespace simgrid::kernel::actor {
std::string fun_call_;
public:
- ActivityTestSimcall(ActorImpl* actor, activity::ActivityImpl* activity, std::string fun_call = "")
+ ActivityTestSimcall(ActorImpl* actor, activity::ActivityImpl* activity, std::string_view fun_call)
: ResultingSimcall(actor, true), activity_(activity), fun_call_(fun_call)
{
}
public:
ActivityTestanySimcall(ActorImpl* actor, const std::vector<activity::ActivityImpl*>& activities,
- std::string fun_call = "none");
+ std::string_view fun_call);
bool is_enabled() override { return true; /* can return -1 if no activity is ready */ }
void serialize(std::stringstream& stream) const override;
std::string to_string() const override;
std::string fun_call_;
public:
- ActivityWaitSimcall(ActorImpl* actor, activity::ActivityImpl* activity, double timeout, std::string fun_call = "none")
+ ActivityWaitSimcall(ActorImpl* actor, activity::ActivityImpl* activity, double timeout, std::string_view fun_call)
: ResultingSimcall(actor, false), activity_(activity), timeout_(timeout), fun_call_(fun_call)
{
}
public:
ActivityWaitanySimcall(ActorImpl* actor, const std::vector<activity::ActivityImpl*>& activities, double timeout,
- std::string fun_call = "none");
+ std::string_view fun_call);
bool is_enabled() override;
void serialize(std::stringstream& stream) const override;
std::string to_string() const override;
bool detached_;
activity::CommImpl* comm_ = {};
int tag_ = {};
- std::string fun_call_;
std::function<bool(void*, void*, activity::CommImpl*)> match_fun_;
std::function<void(void*)> clean_fun_; // used to free the synchro in case of problem after a detached send
std::function<void(activity::CommImpl*, void*, size_t)> copy_data_fun_; // used to copy data if not default one
+ std::string fun_call_;
+
public:
CommIsendSimcall(
ActorImpl* actor, activity::MailboxImpl* mbox, double payload_size, double rate, unsigned char* src_buff,
const std::function<void(void*)>& clean_fun, // used to free the synchro in case of problem after a detached send
const std::function<void(activity::CommImpl*, void*, size_t)>&
copy_data_fun, // used to copy data if not default one
- void* payload, bool detached, std::string fun_call = "none")
+ void* payload, bool detached, std::string_view fun_call)
: SimcallObserver(actor)
, mbox_(mbox)
, payload_size_(payload_size)
double rate_;
activity::CommImpl* comm_ = {};
int tag_ = {};
- std::string fun_call_;
std::function<bool(void*, void*, activity::CommImpl*)> match_fun_;
std::function<void(activity::CommImpl*, void*, size_t)> copy_data_fun_; // used to copy data if not default one
+ std::string fun_call_;
+
public:
CommIrecvSimcall(ActorImpl* actor, activity::MailboxImpl* mbox, unsigned char* dst_buff, size_t* dst_buff_size,
const std::function<bool(void*, void*, activity::CommImpl*)>& match_fun,
const std::function<void(activity::CommImpl*, void*, size_t)>& copy_data_fun, void* payload,
- double rate, std::string fun_call = "none")
+ double rate, std::string_view fun_call)
: SimcallObserver(actor)
, mbox_(mbox)
, dst_buff_(dst_buff)
auto const& get_copy_data_fun() const { return copy_data_fun_; }
};
+class MessIputSimcall final : public SimcallObserver {
+ activity::MessageQueueImpl* queue_;
+ void* payload_;
+ activity::MessImpl* mess_ = {};
+
+public:
+ MessIputSimcall(
+ ActorImpl* actor, activity::MessageQueueImpl* queue, void* payload)
+ : SimcallObserver(actor)
+ , queue_(queue)
+ , payload_(payload)
+ {
+ }
+ void serialize(std::stringstream& stream) const override;
+ std::string to_string() const override;
+ activity::MessageQueueImpl* get_queue() const { return queue_; }
+ void* get_payload() const { return payload_; }
+ void set_message(activity::MessImpl* mess) { mess_ = mess; }
+};
+
+class MessIgetSimcall final : public SimcallObserver {
+ activity::MessageQueueImpl* queue_;
+ unsigned char* dst_buff_;
+ size_t* dst_buff_size_;
+ void* payload_;
+ activity::MessImpl* mess_ = {};
+
+public:
+ MessIgetSimcall(ActorImpl* actor, activity::MessageQueueImpl* queue, unsigned char* dst_buff, size_t* dst_buff_size,
+ void* payload)
+ : SimcallObserver(actor)
+ , queue_(queue)
+ , dst_buff_(dst_buff)
+ , dst_buff_size_(dst_buff_size)
+ , payload_(payload)
+ {
+ }
+ void serialize(std::stringstream& stream) const override;
+ std::string to_string() const override;
+ activity::MessageQueueImpl* get_queue() const { return queue_; }
+ unsigned char* get_dst_buff() const { return dst_buff_; }
+ size_t* get_dst_buff_size() const { return dst_buff_size_; }
+ void* get_payload() const { return payload_; }
+ void set_message(activity::MessImpl* mess) { mess_ = mess; }
+};
+
} // namespace simgrid::kernel::actor
#endif