X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5d565c9f388ee34b957b69a595e98bbfaf06fb10..8c077434920dc49c791c9ed5c3ad7cbbc8faec15:/include/simgrid/forward.h diff --git a/include/simgrid/forward.h b/include/simgrid/forward.h index d4486a29f1..e2a0606227 100644 --- a/include/simgrid/forward.h +++ b/include/simgrid/forward.h @@ -76,6 +76,14 @@ class SplitDuplexLink; class Mailbox; +class Mess; +/** Smart pointer to a simgrid::s4u::Mess */ +using MessPtr = boost::intrusive_ptr; +XBT_PUBLIC void intrusive_ptr_release(Mess* c); +XBT_PUBLIC void intrusive_ptr_add_ref(Mess* c); + +class MessageQueue; + class Mutex; XBT_PUBLIC void intrusive_ptr_release(const Mutex* m); XBT_PUBLIC void intrusive_ptr_add_ref(const Mutex* m); @@ -97,6 +105,19 @@ XBT_PUBLIC void intrusive_ptr_release(const Semaphore* m); XBT_PUBLIC void intrusive_ptr_add_ref(const Semaphore* m); class Disk; + +class Task; +/** Smart pointer to a simgrid::s4u::Task */ +using TaskPtr = boost::intrusive_ptr; +XBT_PUBLIC void intrusive_ptr_release(Task* o); +XBT_PUBLIC void intrusive_ptr_add_ref(Task* o); +class ExecTask; +using ExecTaskPtr = boost::intrusive_ptr; +class CommTask; +using CommTaskPtr = boost::intrusive_ptr; +class IoTask; +using IoTaskPtr = boost::intrusive_ptr; + /** * @brief Callback to dynamically change the resource's capacity * @@ -124,6 +145,7 @@ using ActorCodeFactory = std::function args)> class Simcall; class SimcallObserver; class MutexObserver; +class ConditionVariableObserver; class ObjectAccessSimcallObserver; class ObjectAccessSimcallItem; } // namespace actor @@ -146,6 +168,8 @@ namespace activity { using ConditionVariableImplPtr = boost::intrusive_ptr; XBT_PUBLIC void intrusive_ptr_add_ref(ConditionVariableImpl* cond); XBT_PUBLIC void intrusive_ptr_release(ConditionVariableImpl* cond); + class ConditionVariableAcquisitionImpl; + using ConditionVariableAcquisitionImplPtr = boost::intrusive_ptr; class CommImpl; using CommImplPtr = boost::intrusive_ptr; @@ -153,6 +177,8 @@ namespace activity { using ExecImplPtr = boost::intrusive_ptr; class IoImpl; using IoImplPtr = boost::intrusive_ptr; + class MessImpl; + using MessImplPtr = boost::intrusive_ptr; class MutexImpl; using MutexImplPtr = boost::intrusive_ptr; class MutexAcquisitionImpl; @@ -171,6 +197,7 @@ namespace activity { using SleepImplPtr = boost::intrusive_ptr; class MailboxImpl; + class MessageQueueImpl; } namespace context { class Context; @@ -233,6 +260,7 @@ using s4u_Link = simgrid::s4u::Link; using s4u_File = simgrid::s4u::File; using s4u_ConditionVariable = simgrid::s4u::ConditionVariable; using s4u_Mailbox = simgrid::s4u::Mailbox; +using s4u_MessageQueue = simgrid::s4u::MessageQueue; using s4u_Mutex = simgrid::s4u::Mutex; using s4u_Semaphore = simgrid::s4u::Semaphore; using s4u_Disk = simgrid::s4u::Disk; @@ -253,6 +281,7 @@ typedef struct s4u_Link s4u_Link; typedef struct s4u_File s4u_File; typedef struct s4u_ConditionVariable s4u_ConditionVariable; typedef struct s4u_Mailbox s4u_Mailbox; +typedef struct s4u_MessageQueue s4u_MessageQueue; typedef struct s4u_Mutex s4u_Mutex; typedef struct s4u_Semaphore s4u_Semaphore; typedef struct s4u_Disk s4u_Disk; @@ -272,6 +301,8 @@ typedef s4u_ConditionVariable* sg_cond_t; typedef const s4u_ConditionVariable* const_sg_cond_t; typedef s4u_Mailbox* sg_mailbox_t; typedef const s4u_Mailbox* const_sg_mailbox_t; +typedef s4u_MessageQueue* sg_messagequeue_t; +typedef const s4u_MessageQueue* const_sg_messagequeue_t; typedef s4u_Mutex* sg_mutex_t; typedef const s4u_Mutex* const_sg_mutex_t; typedef s4u_Semaphore* sg_sem_t;