Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge pull request #303 from mpoquet/s4u-semaphore
[simgrid.git] / include / simgrid / forward.h
index 3661be2..fd0ab86 100644 (file)
@@ -24,6 +24,10 @@ XBT_PUBLIC void intrusive_ptr_release(Actor* actor);
 XBT_PUBLIC void intrusive_ptr_add_ref(Actor* actor);
 
 class Barrier;
+/** Smart pointer to a simgrid::s4u::Barrier */
+typedef boost::intrusive_ptr<Barrier> BarrierPtr;
+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 */
@@ -70,6 +74,13 @@ typedef boost::intrusive_ptr<Mutex> MutexPtr;
 class NetZone;
 class VirtualMachine;
 class File;
+
+class Semaphore;
+/** Smart pointer to a simgrid::s4u::Semaphore */
+typedef boost::intrusive_ptr<Semaphore> SemaphorePtr;
+XBT_PUBLIC void intrusive_ptr_release(Semaphore* m);
+XBT_PUBLIC void intrusive_ptr_add_ref(Semaphore* m);
+
 class Storage;
 } // namespace s4u
 
@@ -81,29 +92,29 @@ namespace kernel {
 class EngineImpl;
 namespace actor {
 class ActorImpl;
-using ActorImplPtr = boost::intrusive_ptr<ActorImpl>;
+typedef boost::intrusive_ptr<ActorImpl> ActorImplPtr;
 } // namespace actor
 
 namespace activity {
   class ActivityImpl;
-  using ActivityImplPtr = boost::intrusive_ptr<ActivityImpl>;
+  typedef boost::intrusive_ptr<ActivityImpl> ActivityImplPtr;
   XBT_PUBLIC void intrusive_ptr_add_ref(ActivityImpl* activity);
   XBT_PUBLIC void intrusive_ptr_release(ActivityImpl* activity);
 
   class ConditionVariableImpl;
 
   class CommImpl;
-  using CommImplPtr = boost::intrusive_ptr<CommImpl>;
+  typedef boost::intrusive_ptr<CommImpl> CommImplPtr;
   class ExecImpl;
-  using ExecImplPtr = boost::intrusive_ptr<ExecImpl>;
+  typedef boost::intrusive_ptr<ExecImpl> ExecImplPtr;
   class IoImpl;
-  using IoImplPtr = boost::intrusive_ptr<IoImpl>;
+  typedef boost::intrusive_ptr<IoImpl> IoImplPtr;
   class MutexImpl;
-  using MutexImplPtr = boost::intrusive_ptr<MutexImpl>;
+  typedef boost::intrusive_ptr<MutexImpl> MutexImplPtr;
   class RawImpl;
-  using RawImplPtr = boost::intrusive_ptr<RawImpl>;
+  typedef boost::intrusive_ptr<RawImpl> RawImplPtr;
   class SleepImpl;
-  using SleepImplPtr = boost::intrusive_ptr<SleepImpl>;
+  typedef boost::intrusive_ptr<SleepImpl> SleepImplPtr;
 
   class MailboxImpl;
 }
@@ -176,7 +187,6 @@ typedef simgrid::kernel::actor::ActorImpl* smx_actor_t;
 typedef simgrid::kernel::activity::ConditionVariableImpl* smx_cond_t;
 typedef simgrid::kernel::activity::MutexImpl* smx_mutex_t;
 typedef simgrid::kernel::activity::MailboxImpl* smx_mailbox_t;
-typedef simgrid::surf::StorageImpl* surf_storage_t;
 
 #else
 
@@ -195,7 +205,6 @@ typedef struct s_smx_actor* smx_actor_t;
 typedef struct s_smx_cond_t* smx_cond_t;
 typedef struct s_smx_mutex* smx_mutex_t;
 typedef struct s_smx_mailbox* smx_mailbox_t;
-typedef struct s_surf_storage* surf_storage_t;
 
 #endif