CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes
stor::FilesMonitorCollection Class Reference

#include <FilesMonitorCollection.h>

Inheritance diagram for stor::FilesMonitorCollection:
stor::MonitorCollection

Classes

struct  FileRecord
 

Public Types

typedef boost::circular_buffer
< FileRecordPtr
FileRecordList
 
typedef boost::shared_ptr
< FileRecord
FileRecordPtr
 
- Public Types inherited from stor::MonitorCollection
typedef std::vector< std::pair
< std::string,
xdata::Serializable * > > 
InfoSpaceItems
 

Public Member Functions

 FilesMonitorCollection (const utils::Duration_t &updateInterval)
 
void getFileRecords (FileRecordList &) const
 
const FileRecordPtr getNewFileRecord ()
 
- Public Member Functions inherited from stor::MonitorCollection
void appendInfoSpaceItems (InfoSpaceItems &)
 
void calculateStatistics (const utils::TimePoint_t &now)
 
 MonitorCollection (const utils::Duration_t &updateInterval)
 
void reset (const utils::TimePoint_t &now)
 
void updateInfoSpaceItems ()
 
virtual ~MonitorCollection ()
 

Private Member Functions

virtual void do_appendInfoSpaceItems (InfoSpaceItems &)
 
virtual void do_calculateStatistics ()
 
virtual void do_reset ()
 
virtual void do_updateInfoSpaceItems ()
 
 FilesMonitorCollection (FilesMonitorCollection const &)
 
FilesMonitorCollectionoperator= (FilesMonitorCollection const &)
 

Private Attributes

xdata::UnsignedInteger32 closedFiles_
 
uint32_t entryCounter_
 
FileRecordList fileRecords_
 
boost::mutex fileRecordsMutex_
 
const unsigned int maxFileEntries_
 
xdata::UnsignedInteger32 openFiles_
 

Additional Inherited Members

Detailed Description

A collection of monitoring entities for open and closed files

Author:
mommsen
Revision:
1.17
Date:
2011/07/07 09:22:44

Definition at line 31 of file FilesMonitorCollection.h.

Member Typedef Documentation

Definition at line 78 of file FilesMonitorCollection.h.

Definition at line 77 of file FilesMonitorCollection.h.

Constructor & Destructor Documentation

stor::FilesMonitorCollection::FilesMonitorCollection ( const utils::Duration_t updateInterval)
explicit

Definition at line 14 of file FilesMonitorCollection.cc.

References fileRecords_, fileRecordsMutex_, and maxFileEntries_.

14  :
15  MonitorCollection(updateInterval),
16  maxFileEntries_(250),
17  entryCounter_(0)
18  {
19  boost::mutex::scoped_lock sl(fileRecordsMutex_);
20  fileRecords_.set_capacity(maxFileEntries_);
21  }
MonitorCollection(const utils::Duration_t &updateInterval)
stor::FilesMonitorCollection::FilesMonitorCollection ( FilesMonitorCollection const &  )
private

Member Function Documentation

void stor::FilesMonitorCollection::do_appendInfoSpaceItems ( InfoSpaceItems infoSpaceItems)
privatevirtual

Reimplemented from stor::MonitorCollection.

Definition at line 59 of file FilesMonitorCollection.cc.

References closedFiles_, and openFiles_.

60  {
61  infoSpaceItems.push_back(std::make_pair("openFiles", &openFiles_));
62  infoSpaceItems.push_back(std::make_pair("closedFiles", &closedFiles_));
63  }
xdata::UnsignedInteger32 closedFiles_
xdata::UnsignedInteger32 openFiles_
void stor::FilesMonitorCollection::do_calculateStatistics ( )
privatevirtual

Implements stor::MonitorCollection.

Definition at line 45 of file FilesMonitorCollection.cc.

46  {
47  // nothing to do
48  }
void stor::FilesMonitorCollection::do_reset ( )
privatevirtual

Implements stor::MonitorCollection.

Definition at line 51 of file FilesMonitorCollection.cc.

References entryCounter_, fileRecords_, and fileRecordsMutex_.

52  {
53  boost::mutex::scoped_lock sl(fileRecordsMutex_);
54  fileRecords_.clear();
55  entryCounter_ = 0;
56  }
void stor::FilesMonitorCollection::do_updateInfoSpaceItems ( )
privatevirtual

Reimplemented from stor::MonitorCollection.

Definition at line 66 of file FilesMonitorCollection.cc.

References closedFiles_, entryCounter_, fileRecords_, fileRecordsMutex_, and openFiles_.

67  {
68  boost::mutex::scoped_lock sl(fileRecordsMutex_);
69 
70  openFiles_ = 0;
71 
72  for (
73  FileRecordList::const_iterator it = fileRecords_.begin(),
74  itEnd = fileRecords_.end();
75  it != itEnd;
76  ++it
77  )
78  {
79  if ( (*it)->isOpen )
80  ++openFiles_;
81  }
82 
84  }
xdata::UnsignedInteger32 closedFiles_
xdata::UnsignedInteger32 openFiles_
void stor::FilesMonitorCollection::getFileRecords ( FileRecordList fileRecords) const

Definition at line 38 of file FilesMonitorCollection.cc.

References fileRecords_, and fileRecordsMutex_.

Referenced by stor::SMWebPageHelper::addDOMforFiles().

39  {
40  boost::mutex::scoped_lock sl(fileRecordsMutex_);
41  fileRecords = fileRecords_;
42  }
const FilesMonitorCollection::FileRecordPtr stor::FilesMonitorCollection::getNewFileRecord ( )

Definition at line 25 of file FilesMonitorCollection.cc.

References entryCounter_, fileRecords_, and fileRecordsMutex_.

26  {
27  boost::mutex::scoped_lock sl(fileRecordsMutex_);
28 
29  boost::shared_ptr<FileRecord> fileRecord(new FilesMonitorCollection::FileRecord());
30  fileRecord->entryCounter = entryCounter_++;
31  fileRecord->fileSize = 0;
32  fileRecord->eventCount = 0;
33  fileRecord->adler32 = 0;
34  fileRecords_.push_back(fileRecord);
35  return fileRecord;
36  }
FilesMonitorCollection& stor::FilesMonitorCollection::operator= ( FilesMonitorCollection const &  )
private

Member Data Documentation

xdata::UnsignedInteger32 stor::FilesMonitorCollection::closedFiles_
private

Definition at line 105 of file FilesMonitorCollection.h.

Referenced by do_appendInfoSpaceItems(), and do_updateInfoSpaceItems().

uint32_t stor::FilesMonitorCollection::entryCounter_
private

Definition at line 103 of file FilesMonitorCollection.h.

Referenced by do_reset(), do_updateInfoSpaceItems(), and getNewFileRecord().

FileRecordList stor::FilesMonitorCollection::fileRecords_
private
boost::mutex stor::FilesMonitorCollection::fileRecordsMutex_
mutableprivate
const unsigned int stor::FilesMonitorCollection::maxFileEntries_
private

Definition at line 102 of file FilesMonitorCollection.h.

Referenced by FilesMonitorCollection().

xdata::UnsignedInteger32 stor::FilesMonitorCollection::openFiles_
private

Definition at line 106 of file FilesMonitorCollection.h.

Referenced by do_appendInfoSpaceItems(), and do_updateInfoSpaceItems().