19 #ifndef POOLTESTS_FILEACCESSOR_H
20 #define POOLTESTS_FILEACCESSOR_H
22 #include <boost/thread/shared_mutex.hpp>
53 template <
typename TFD>
80 template <
typename TFD>
120 template <typename TFD>
152 #define FILEACCESSOR_IMPL
154 #undef FILEACCESSOR_IMPL
virtual bool isReadOnly() const =0
boost::upgrade_lock< SharedMutex > UpgradeLock
boost::unique_lock< SharedMutex > UniqueLock
boost::shared_mutex SharedMutex
boost::upgrade_to_unique_lock< SharedMutex > UpgradeToUniqueLock
boost::shared_lock< SharedMutex > SharedLock
virtual ~FileAccessorBase()=default
FileAccessor(TFD &&fd, ReleaseDescriptorCallback release_callback)
ReleaseDescriptorCallback m_release_callback
virtual ~FileAccessor()=default
Destructor.
std::function< void(TFD &&)> ReleaseDescriptorCallback
TFD m_fd
The wrapped file descriptor.
FileReadAccessor(TFD &&fd, ReleaseDescriptorCallback release_callback, SharedLock lock)
bool isReadOnly() const final
FileAccessor< TFD > Base_
FileReadAccessor(FileReadAccessor &&)=default
But it can be moved.
virtual ~FileReadAccessor()
Destructor.
FileReadAccessor(const FileReadAccessor &)=delete
It can not be copied.
FileAccessor< TFD > Base_
virtual ~FileWriteAccessor()
Destructor.
FileWriteAccessor(TFD &&fd, ReleaseDescriptorCallback release_callback, UniqueLock lock)
bool isReadOnly() const final