ewmscp  ..
gpfsCommon.h
Go to the documentation of this file.
1 #ifndef __gpfsCommon_h__
2 #define __gpfsCommon_h__
3 #include "posixFileCommon.h"
4 #include "gpfsFcntlHandler.h"
5 #include <bitset>
6 
7 
8 class gpfsIoCommon: virtual public posixFileIoCommon {
9  protected:
12  std::bitset<64> usedBlockMap;
13  std::bitset<64> nextUsedBlockMap;
15  void releaseUsedBlocks(size_t aBlockSize);
16  void handleParallelUsedBlocks(size_t aBlockSize, off_t offset);
17  public:
19  public:
20  char buffer[0x10000];
21  int size;
22  ~attrDataType() override = default;
23  void set(ioHandle* handle) override;
24  };
25  gpfsIoCommon(const std::string& aPath);
26  ~gpfsIoCommon() override = default;
27  std::unique_ptr<ioHandle::attrDataType> getAttrData(const outputHandler::base* aOutputHandler) override;
28  std::unique_ptr<acl::list> getAclData() override;
29  static std::unique_ptr<acl::list> aclFromGpfs(const gpfs_acl_handler& acl, const std::string& aPath);
30 };
31 
32 
33 
34 #endif
gpfsIoCommon::attrDataType
Definition: gpfsCommon.h:18
gpfsIoCommon::usedBlockMap
std::bitset< 64 > usedBlockMap
Definition: gpfsCommon.h:12
gpfsIoCommon::handleParallelUsedBlocks
void handleParallelUsedBlocks(size_t aBlockSize, off_t offset)
Definition: gpfsCommon.cpp:26
gpfsIoCommon::blockBookkeepingMutex
std::mutex blockBookkeepingMutex
Definition: gpfsCommon.h:14
gpfsIoCommon::attrDataType::size
int size
Definition: gpfsCommon.h:21
gpfsIoCommon::releaseUsedBlocks
void releaseUsedBlocks(size_t aBlockSize)
Definition: gpfsCommon.cpp:14
gpfsIoCommon
Definition: gpfsCommon.h:8
gpfsIoCommon::nextUsedBlockMap
std::bitset< 64 > nextUsedBlockMap
Definition: gpfsCommon.h:13
gpfsIoCommon::attrDataType::~attrDataType
~attrDataType() override=default
gpfs_acl_handler
class for handling non-opaque gpfs acls
Definition: gpfsFcntlHandler.h:33
gpfsIoCommon::aclFromGpfs
static std::unique_ptr< acl::list > aclFromGpfs(const gpfs_acl_handler &acl, const std::string &aPath)
Definition: gpfsCommon.cpp:83
gpfsIoCommon::attrDataType::buffer
char buffer[0x10000]
Definition: gpfsCommon.h:20
gpfsIoCommon::attrDataType::set
void set(ioHandle *handle) override
set this set of attributes on the file described by handle
Definition: gpfsCommon.cpp:45
posixFileIoCommon::gpfsIoCommon
friend class gpfsIoCommon
Definition: posixFileCommon.h:18
gpfsIoCommon::getAclData
std::unique_ptr< acl::list > getAclData() override
get acls
Definition: gpfsCommon.cpp:77
posixFileIoCommon::attrDataType
Definition: posixFileCommon.h:23
outputHandler::base
Definition: outputHandler.h:17
gpfsIoCommon::leastRecentlyReleasedBlock
off_t leastRecentlyReleasedBlock
Definition: gpfsCommon.h:11
gpfsFcntlHandler.h
gpfsIoCommon::~gpfsIoCommon
~gpfsIoCommon() override=default
posixFileCommon.h
gpfsIoCommon::getAttrData
std::unique_ptr< ioHandle::attrDataType > getAttrData(const outputHandler::base *aOutputHandler) override
get attributes in the optimal way for setting with aOutputHandler
Definition: gpfsCommon.cpp:55
posixFileIoCommon
base class for posixFile reader and writer class with the common stuff like fd, path and xattr handli...
Definition: posixFileCommon.h:17
ioHandle
class as base for inputHandler::base::reader and outputHandler::base::writer containing the common pa...
Definition: ioHandle.h:15
gpfsIoCommon::leastRecentlyAccessedBlock
off_t leastRecentlyAccessedBlock
Definition: gpfsCommon.h:10
acl
Definition: acl.cpp:10