ATLAS Offline Software
Loading...
Searching...
No Matches
CoWTools::Monitor Class Reference

#include <Monitor.h>

Collaboration diagram for CoWTools::Monitor:

Public Types

enum  VecPos {
  VMem =0 , RSS =1 , PSS =2 , Shared =3 ,
  Private =4 , Anon =5
}

Public Member Functions

 Monitor (std::string &out)
 Monitor (MsgStream &out)
 Monitor (std::vector< long > &out)
 ~Monitor ()
 Monitor (const Monitor &)=delete
Monitoroperator= (const Monitor &)=delete

Private Member Functions

const CoWTools::CoWRecordStats parseSmaps () const

Private Attributes

StreamBasem_out
CoWTools::CoWRecordStats m_stats

Detailed Description

Definition at line 16 of file Monitor.h.

Member Enumeration Documentation

◆ VecPos

Enumerator
VMem 
RSS 
PSS 
Shared 
Private 
Anon 

Definition at line 18 of file Monitor.h.

Constructor & Destructor Documentation

◆ Monitor() [1/4]

CoWTools::Monitor::Monitor ( std::string & out)

Definition at line 13 of file Monitor.cxx.

13 {
14 m_out=new CoWTools::StrStream(out);
16 }
CoWTools::CoWRecordStats m_stats
Definition Monitor.h:29
const CoWTools::CoWRecordStats parseSmaps() const
Definition Monitor.cxx:33
StreamBase * m_out
Definition Monitor.h:28

◆ Monitor() [2/4]

CoWTools::Monitor::Monitor ( MsgStream & out)

Definition at line 18 of file Monitor.cxx.

18 {
19 m_out=new CoWTools::MStrStream(out);
21 }

◆ Monitor() [3/4]

CoWTools::Monitor::Monitor ( std::vector< long > & out)

Definition at line 23 of file Monitor.cxx.

23 {
24 m_out=new CoWTools::VecStream(out);
26 }

◆ ~Monitor()

CoWTools::Monitor::~Monitor ( )

Definition at line 27 of file Monitor.cxx.

27 {
29 m_out->putResults(m_stats);
30 delete m_out;
31 }

◆ Monitor() [4/4]

CoWTools::Monitor::Monitor ( const Monitor & )
delete

Member Function Documentation

◆ operator=()

Monitor & CoWTools::Monitor::operator= ( const Monitor & )
delete

◆ parseSmaps()

const CoWTools::CoWRecordStats CoWTools::Monitor::parseSmaps ( ) const
private

Definition at line 33 of file Monitor.cxx.

33 {
34 std::ifstream pfile("/proc/self/smaps");
35 CoWTools::CoWRecordStats total,curr;
36 if(pfile.is_open()){
37 std::string line;
38 std::stringstream ss;
39 std::string libLine;
40 while(!std::getline(pfile,line).eof()){
41 if(line.empty())continue;
42 if(line.size()>30 && line.at(0)!='V'){
43 ss.seekg(0);
44 curr.parseRecord(ss);
45 total+=curr;
46 ss.str("");
47 ss.clear();
48 continue;
49 }
50 ss<<line<<std::endl;
51 ss.clear();
52 }
53 if(ss.str().size()>200){
54 curr.parseRecord(ss);
55 total+=curr;
56 }
57 pfile.close();
58 }
59 return total;
60 }
static Double_t ss
void parseRecord(std::istream &in)

Member Data Documentation

◆ m_out

StreamBase* CoWTools::Monitor::m_out
private

Definition at line 28 of file Monitor.h.

◆ m_stats

CoWTools::CoWRecordStats CoWTools::Monitor::m_stats
private

Definition at line 29 of file Monitor.h.


The documentation for this class was generated from the following files: