// MemoryUsage.h #ifndef MemoryUsage_H #define MemoryUsage_H // Returns the memory usage in bytes. // Uses /proc. #include #ifndef __CINT__ #include "sys/types.h" #else typedef int pid_t; #endif class MemoryUsage { public: private: pid_t m_pid; int m_err; size_t m_total; size_t m_resident; public: // Constructor for the current process. MemoryUsage(); // Constructor for a given process. explicit MemoryUsage(pid_t); // Update. // Returns zero for success. int update(); // Validity. bool is_valid() const; // Error code. int error() const; // Process ID. pid_t pid() const; // Total process size. size_t total() const; // Resident in memory. size_t resident() const; }; std::ostream& operator<<(std::ostream& ostream, const MemoryUsage& rhs); #endif