00001 
00002 
00003 
00004 
00005 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00006 
00007 ACE_INLINE int
00008 ACE_File_Lock::acquire_read (short whence, ACE_OFF_T start, ACE_OFF_T len)
00009 {
00010 
00011   return ACE_OS::flock_rdlock (&this->lock_, whence, start, len);
00012 }
00013 
00014 ACE_INLINE int
00015 ACE_File_Lock::tryacquire_read (short whence, ACE_OFF_T start, ACE_OFF_T len)
00016 {
00017 
00018   return ACE_OS::flock_tryrdlock (&this->lock_, whence, start, len);
00019 }
00020 
00021 ACE_INLINE int
00022 ACE_File_Lock::tryacquire_write (short whence, ACE_OFF_T start, ACE_OFF_T len)
00023 {
00024 
00025   return ACE_OS::flock_trywrlock (&this->lock_, whence, start, len);
00026 }
00027 
00028 ACE_INLINE int
00029 ACE_File_Lock::tryacquire_write_upgrade (short whence,
00030                                          ACE_OFF_T start,
00031                                          ACE_OFF_T len)
00032 {
00033 
00034   return ACE_OS::flock_trywrlock (&this->lock_, whence, start, len);
00035 }
00036 
00037 ACE_INLINE int
00038 ACE_File_Lock::tryacquire (short whence, ACE_OFF_T start, ACE_OFF_T len)
00039 {
00040 
00041   return this->tryacquire_write (whence, start, len);
00042 }
00043 
00044 ACE_INLINE int
00045 ACE_File_Lock::acquire_write (short whence, ACE_OFF_T start, ACE_OFF_T len)
00046 {
00047 
00048   return ACE_OS::flock_wrlock (&this->lock_, whence, start, len);
00049 }
00050 
00051 ACE_INLINE int
00052 ACE_File_Lock::acquire (short whence, ACE_OFF_T start, ACE_OFF_T len)
00053 {
00054 
00055   return this->acquire_write (whence, start, len);
00056 }
00057 
00058 ACE_INLINE int
00059 ACE_File_Lock::release (short whence, ACE_OFF_T start, ACE_OFF_T len)
00060 {
00061 
00062   return ACE_OS::flock_unlock (&this->lock_, whence, start, len);
00063 }
00064 
00065 ACE_INLINE int
00066 ACE_File_Lock::remove (int unlink_file)
00067 {
00068 
00069 
00070   int result = 0;
00071 
00072   if (this->removed_ == 0)
00073     {
00074       this->removed_ = 1;
00075       result = ACE_OS::flock_destroy (&this->lock_,
00076                                       unlink_file);
00077     }
00078   return result;
00079 }
00080 
00081 ACE_INLINE ACE_HANDLE
00082 ACE_File_Lock::get_handle (void) const
00083 {
00084 
00085   return this->lock_.handle_;
00086 }
00087 
00088 ACE_INLINE void
00089 ACE_File_Lock::set_handle (ACE_HANDLE h)
00090 {
00091 
00092   this->lock_.handle_ = h;
00093   this->removed_ = 0;
00094 }
00095 
00096 ACE_END_VERSIONED_NAMESPACE_DECL