#ifndef STORAGENODEEX_H_ #define STORAGENODEEX_H_ #include #include #include struct StorageNodeDataContent { bool isResponding; unsigned indirectWorkListSize; unsigned directWorkListSize; int64_t diskSpaceTotal; int64_t diskSpaceFree; int64_t diskRead; int64_t diskWrite; unsigned sessionCount; std::string hostnameid; }; class StorageNodeEx : public Node { public: StorageNodeEx(std::shared_ptr receivedNode); StorageNodeEx(std::shared_ptr receivedNode, std::shared_ptr oldNode); private: mutable RWLock lock; bool isResponding; std::chrono::milliseconds lastStatRequestTime{0}; public: std::chrono::milliseconds getLastStatRequestTime() const { RWLockGuard safeLock(lock, SafeRWLock_READ); return lastStatRequestTime; } void setLastStatRequestTime(const std::chrono::milliseconds& time) { RWLockGuard safeLock(lock, SafeRWLock_READ); lastStatRequestTime = time; } bool getIsResponding() const { RWLockGuard safeLock(lock, SafeRWLock_READ); return isResponding; } void setIsResponding(bool isResponding) { RWLockGuard safeLock(lock, SafeRWLock_READ); this->isResponding = isResponding; } }; #endif /*STORAGENODEEX_H_*/