+namespace kernel {
+namespace context {
+class Context;
+class ContextFactory;
+}
+namespace activity {
+ class ActivityImpl;
+ using ActivityImplPtr = boost::intrusive_ptr<ActivityImpl>;
+ XBT_PUBLIC(void) intrusive_ptr_add_ref(ActivityImpl* activity);
+ XBT_PUBLIC(void) intrusive_ptr_release(ActivityImpl* activity);
+
+ class CommImpl;
+ using CommImplPtr = boost::intrusive_ptr<CommImpl>;
+ class ExecImpl;
+ using ExecImplPtr = boost::intrusive_ptr<ExecImpl>;
+ class IoImpl;
+ using IoImplPtr = boost::intrusive_ptr<IoImpl>;
+ class RawImpl;
+ using RawImplPtr = boost::intrusive_ptr<RawImpl>;
+ class SleepImpl;
+ using SleepImplPtr = boost::intrusive_ptr<SleepImpl>;
+
+ class MailboxImpl;
+}
+
+namespace routing {
+ class NetPoint;
+}
+}
+namespace simix {
+ class ActorImpl;
+ using ActorImplPtr = boost::intrusive_ptr<ActorImpl>;
+ class Host;
+
+ class MutexImpl;
+}
+namespace surf {
+ class Resource;
+ class Cpu;
+ class LinkImpl;
+ class HostImpl;
+ class StorageImpl;
+ class FileImpl;
+}
+namespace trace_mgr {
+ class trace;
+ class future_evt_set;
+}