- // Move:
- args(args&& that) : argc_(that.argc_), argv_(that.argv_)
- {
- that.argc_ = 0;
- that.argv_ = nullptr;
- }
- args& operator=(args&& that)
- {
- this->argc_ = that.argc_;
- this->argv_ = that.argv_;
- that.argc_ = 0;
- that.argv_ = nullptr;
- return *this;
- }
-
- int argc() const { return argc_; }
- char** argv() { return argv_; }
- const char*const* argv() const { return argv_; }
- char* operator[](std::size_t i) { return argv_[i]; }
-};
-
-inline
-std::function<void()> wrap_main(xbt_main_func_t code, int argc, const char*const* argv)
-{
- if (code) {
- auto arg = std::make_shared<simgrid::simix::args>(argc, argv);
- return [=]() {
- code(arg->argc(), arg->argv());
- };
- }
- // TODO, we should free argv
- else return std::function<void()>();
-}
-
-class Context;
-class ContextFactory;
-
-XBT_PUBLIC_CLASS ContextFactory {
-private:
- std::string name_;