19#ifndef POOLTESTS_FILEACCESSOR_H
20#define POOLTESTS_FILEACCESSOR_H
22#include <boost/thread/shared_mutex.hpp>
53template <
typename TFD>
80template <
typename TFD>
120template <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.
typename Base_::SharedLock SharedLock
typename Base_::ReleaseDescriptorCallback ReleaseDescriptorCallback
FileAccessor< TFD > Base_
typename Base_::ReleaseDescriptorCallback ReleaseDescriptorCallback
typename Base_::SharedLock SharedLock
virtual ~FileWriteAccessor()
Destructor.
FileWriteAccessor(TFD &&fd, ReleaseDescriptorCallback release_callback, UniqueLock lock)
bool isReadOnly() const final
typename Base_::UniqueLock UniqueLock