ATLAS Offline Software
Loading...
Searching...
No Matches
Monitor.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include "CoWTools/Monitor.h"
9#include <sstream>
10#include <fstream>
11
12namespace CoWTools{
13 Monitor::Monitor(std::string &out){
16 }
17
18 Monitor::Monitor(MsgStream &out){
21 }
22
23 Monitor::Monitor(std::vector<long> &out){
26 }
29 m_out->putResults(m_stats);
30 delete m_out;
31 }
32
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 }
61}
static Double_t ss
void parseRecord(std::istream &in)
CoWTools::CoWRecordStats m_stats
Definition Monitor.h:29
const CoWTools::CoWRecordStats parseSmaps() const
Definition Monitor.cxx:33
Monitor(std::string &out)
Definition Monitor.cxx:13
StreamBase * m_out
Definition Monitor.h:28