1 #ifndef GAUDIAUD_PROCSTATS_H 2 #define GAUDIAUD_PROCSTATS_H 10 #if defined(__linux__) or defined(__APPLE__) 12 #include <sys/types.h> 15 #endif // __linux__ or __APPLE__ 26 #pragma warning(disable:1572) 70 explicit operator bool()
const {
return m_fd != -1; }
71 template <
typename... Args>
73 #define unique_fd_forward(fun) template <typename...Args> auto fun(Args&&... args) const \ 74 -> decltype(::fun(m_fd,std::forward<Args>(args)...)) \ 75 { return ::fun(m_fd,std::forward<Args>(args)...); } 83 #undef unique_fd_forward 84 int close() {
auto r = ::close(m_fd); m_fd = -1;
return r; }
def read(f, regex='.*', skipevents=0)
bool operator==(const procInfo &p) const
unique_fd & open(Args &&...args)
PropertyMgr & operator=(const PropertyMgr &)=delete
unique_fd_forward(lseek) unique_fd_forward(read) unique_fd_forward(write) unique_fd_forward(fcntl) unique_fd_forward(fsync) unique_fd_forward(fchown) unique_fd_forward(stat) int close()
#define unique_fd_forward(fun)
unique_fd(unique_fd &&other)
procInfo(double sz, double rss_sz)