X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ed1e833154dee7dd68eb7bcae79d33592936201a..ca4cb4ea923e4856691f88688189a7e6d0a27c98:/include/simgrid/forward.h diff --git a/include/simgrid/forward.h b/include/simgrid/forward.h index 3477e16146..608bd91ea0 100644 --- a/include/simgrid/forward.h +++ b/include/simgrid/forward.h @@ -11,31 +11,32 @@ #ifdef __cplusplus #include +#include namespace simgrid { namespace s4u { class Activity; /** Smart pointer to a simgrid::s4u::Actor */ -typedef boost::intrusive_ptr ActivityPtr; +using ActivityPtr = boost::intrusive_ptr; XBT_PUBLIC void intrusive_ptr_release(const Activity* actor); XBT_PUBLIC void intrusive_ptr_add_ref(const Activity* actor); class Actor; /** Smart pointer to a simgrid::s4u::Actor */ -typedef boost::intrusive_ptr ActorPtr; +using ActorPtr = boost::intrusive_ptr; XBT_PUBLIC void intrusive_ptr_release(const Actor* actor); XBT_PUBLIC void intrusive_ptr_add_ref(const Actor* actor); class Barrier; /** Smart pointer to a simgrid::s4u::Barrier */ -typedef boost::intrusive_ptr BarrierPtr; +using BarrierPtr = boost::intrusive_ptr; XBT_PUBLIC void intrusive_ptr_release(Barrier* m); XBT_PUBLIC void intrusive_ptr_add_ref(Barrier* m); class Comm; /** Smart pointer to a simgrid::s4u::Comm */ -typedef boost::intrusive_ptr CommPtr; +using CommPtr = boost::intrusive_ptr; XBT_PUBLIC void intrusive_ptr_release(Comm* c); XBT_PUBLIC void intrusive_ptr_add_ref(Comm* c); @@ -44,7 +45,7 @@ class ConditionVariable; * Smart pointer to a :cpp:type:`simgrid::s4u::ConditionVariable` * @endrst */ -typedef boost::intrusive_ptr ConditionVariablePtr; +using ConditionVariablePtr = boost::intrusive_ptr; XBT_PUBLIC void intrusive_ptr_release(const ConditionVariable* c); XBT_PUBLIC void intrusive_ptr_add_ref(const ConditionVariable* c); @@ -52,19 +53,17 @@ class Engine; class Exec; /** Smart pointer to a simgrid::s4u::Exec */ -typedef boost::intrusive_ptr ExecPtr; +using ExecPtr = boost::intrusive_ptr; XBT_PUBLIC void intrusive_ptr_release(Exec* e); XBT_PUBLIC void intrusive_ptr_add_ref(Exec* e); -class ExecSeq; -typedef boost::intrusive_ptr ExecSeqPtr; -class ExecPar; -typedef boost::intrusive_ptr ExecParPtr; +class ExecSeq; // FIXME: hide this class in implementation +class ExecPar; // FIXME: hide this class in implementation class Host; class Io; /** Smart pointer to a simgrid::s4u::Io */ -typedef boost::intrusive_ptr IoPtr; +using IoPtr = boost::intrusive_ptr; XBT_PUBLIC void intrusive_ptr_release(Io* i); XBT_PUBLIC void intrusive_ptr_add_ref(Io* i); @@ -80,7 +79,7 @@ XBT_PUBLIC void intrusive_ptr_add_ref(const Mutex* m); * Smart pointer to a :cpp:type:`simgrid::s4u::Mutex` * @endrst */ -typedef boost::intrusive_ptr MutexPtr; +using MutexPtr = boost::intrusive_ptr; class NetZone; class VirtualMachine; @@ -88,7 +87,7 @@ class File; class Semaphore; /** Smart pointer to a simgrid::s4u::Semaphore */ -typedef boost::intrusive_ptr SemaphorePtr; +using SemaphorePtr = boost::intrusive_ptr; XBT_PUBLIC void intrusive_ptr_release(Semaphore* m); XBT_PUBLIC void intrusive_ptr_add_ref(Semaphore* m); @@ -105,6 +104,11 @@ class EngineImpl; namespace actor { class ActorImpl; typedef boost::intrusive_ptr ActorImplPtr; + +// What's executed as an actor code: +typedef std::function ActorCode; +// Create an ActorCode from the parameters parsed in the XML file (or elsewhere) +typedef std::function args)> ActorCodeFactory; } // namespace actor namespace activity { @@ -204,10 +208,10 @@ typedef simgrid::s4u::Disk s4u_Disk; typedef simgrid::s4u::Storage s4u_Storage; typedef simgrid::s4u::NetZone s4u_NetZone; typedef simgrid::s4u::VirtualMachine s4u_VM; -typedef boost::intrusive_ptr smx_activity_t; typedef simgrid::simix::Timer* smx_timer_t; typedef simgrid::kernel::actor::ActorImpl* smx_actor_t; +typedef simgrid::kernel::activity::ActivityImpl* smx_activity_t; typedef simgrid::kernel::activity::ConditionVariableImpl* smx_cond_t; typedef simgrid::kernel::activity::MailboxImpl* smx_mailbox_t; typedef simgrid::kernel::activity::MutexImpl* smx_mutex_t; @@ -229,11 +233,11 @@ typedef struct s4u_Disk s4u_Disk; typedef struct s4u_Storage s4u_Storage; typedef struct s4u_NetZone s4u_NetZone; typedef struct s4u_VM s4u_VM; -typedef struct kernel_Activity* smx_activity_t; typedef enum kernel_activity_state e_smx_state_t; typedef struct s_smx_timer* smx_timer_t; typedef struct s_smx_actor* smx_actor_t; +typedef struct s_smx_activity* smx_activity_t; typedef struct s_smx_cond_t* smx_cond_t; typedef struct s_smx_mailbox* smx_mailbox_t; typedef struct s_smx_mutex* smx_mutex_t;