OpenDDS  Snapshot(2023/04/28-20:55)
PerConnectionSynch.h
Go to the documentation of this file.
1 /*
2  *
3  *
4  * Distributed under the OpenDDS License.
5  * See: http://www.opendds.org/license.html
6  */
7 
8 #ifndef OPENDDS_DCPS_TRANSPORT_FRAMEWORK_PERCONNECTIONSYNCH_H
9 #define OPENDDS_DCPS_TRANSPORT_FRAMEWORK_PERCONNECTIONSYNCH_H
10 
11 #include "ThreadSynch.h"
12 
14 
15 #include <ace/Synch_Traits.h>
16 #include <ace/Task.h>
17 
19 
20 namespace OpenDDS {
21 namespace DCPS {
22 
24  public ThreadSynch {
25 public:
26 
27  PerConnectionSynch(ThreadSynchResource* synch_resource, long priority, long scheduler);
28  virtual ~PerConnectionSynch();
29 
30  virtual void work_available();
31 
32  virtual int open(void*);
33  virtual int svc();
34  virtual int close(u_long);
35 
37 
38 protected:
39 
40  virtual int register_worker_i();
41  virtual void unregister_worker_i();
42 
43 private:
44 
48 
49  LockType lock_;
50  ConditionVariableType condition_;
52  int shutdown_;
54  long scheduler_;
55 };
56 
57 } // namespace DCPS
58 } // namespace OpenDDS
59 
61 
62 #if defined (__ACE_INLINE__)
63 #include "PerConnectionSynch.inl"
64 #endif /* __ACE_INLINE__ */
65 
66 #endif /* OPENDDS_DCPS_THREADSYNCH_H */
#define ACE_SYNCH_MUTEX
virtual int priority(void) const
PerConnectionSynch(ThreadSynchResource *synch_resource, long priority, long scheduler)
#define OPENDDS_POOL_ALLOCATION_FWD
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
ConditionVariable< LockType > ConditionVariableType
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28