00001 // only compile if USE_SHMEMDEV is defined 00002 #ifdef USE_SHMEMDEV 00003 00004 // this code only works on linux 00005 #ifdef linux 00006 00007 #ifndef __CLUSTERBARRIERRENDERINGSIDE_H__ 00008 #define __CLUSTERBARRIERRENDERINGSIDE_H__ 00009 00020 #include "ClusterBarrier.H" 00021 00022 namespace IS3D { 00023 00024 class SpinLockBarrierRenderingSide : public SpinLockBarrier 00025 { 00026 00027 // All instantiable subclasses of ClusterBarrier should be friends with ClusterBarrierCreator 00028 friend class ClusterCreator; 00029 00030 public: 00031 virtual bool init(); 00032 virtual void stop(); 00033 00034 private: 00035 SpinLockBarrierRenderingSide(); 00036 }; 00037 00038 class SemaphoreBarrierRenderingSide : public SemaphoreBarrier 00039 { 00040 00041 // All instantiable subclasses of ClusterBarrier should be friends with ClusterBarrierCreator 00042 friend class ClusterCreator; 00043 00044 public: 00045 virtual bool init(); 00046 virtual void stop(); 00047 00048 private: 00049 SemaphoreBarrierRenderingSide(); 00050 }; 00051 00052 } 00053 00054 #endif 00055 00056 #endif 00057 00058 #endif