00001
00002
00003
00004
00005
00006
00007
00008 #ifndef OPENDDS_DCPS_THREADSYNCHSTRATEGY_H
00009 #define OPENDDS_DCPS_THREADSYNCHSTRATEGY_H
00010
00011 #include "dds/DCPS/dcps_export.h"
00012 #include "dds/DCPS/RcObject_T.h"
00013 #include "ace/Synch_Traits.h"
00014 #include "ace/Synch.h"
00015
00016 namespace OpenDDS {
00017 namespace DCPS {
00018
00019 class ThreadSynch;
00020 class ThreadSynchResource;
00021
00022
00023 class OpenDDS_Dcps_Export ThreadSynchStrategy
00024 : public RcObject<ACE_SYNCH_MUTEX>
00025 {
00026 public:
00027
00028 virtual ~ThreadSynchStrategy();
00029
00030 virtual ThreadSynch* create_synch_object(
00031 ThreadSynchResource* synch_resource,
00032 long priority,
00033 int scheduler) = 0;
00034
00035 protected:
00036
00037 ThreadSynchStrategy();
00038 };
00039
00040 }
00041 }
00042
00043 #if defined (__ACE_INLINE__)
00044 #include "ThreadSynchStrategy.inl"
00045 #endif
00046
00047 #endif