#include <mutex>
#include <utility>
-#include <boost/intrusive_ptr.hpp>
#include <xbt/base.h>
#include "simgrid/simix.h"
#define SIMGRID_XBT_SIGNAL_HPP
#include <functional>
+#include <utility>
#include <vector>
namespace simgrid {
typedef std::function<R(P...)> callback_type;
std::vector<callback_type> handlers_;
public:
- template<class U> XBT_ALWAYS_INLINE
+ template<class U>
void connect(U slot)
{
handlers_.push_back(std::move(slot));
}
- XBT_ALWAYS_INLINE
R operator()(P... args) const
{
for (auto& handler : handlers_)
/* 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 <boost/intrusive/list.hpp>
+
#include <xbt/base.h>
#include "src/surf/cpu_interface.hpp"
#ifndef SURF_MODEL_H_
#define SURF_MODEL_H_
+#include <cstddef>
+
#include <xbt.h>
#include <memory>
#include <utility>
/* 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 <xbt/signal.hpp>
+
#include "cpu_cas01.hpp"
#include "virtual_machine.hpp"
/* 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 <boost/intrusive/list.hpp>
+
#include <xbt/base.h>
#include "src/surf/HostImpl.hpp"