ROOT logo
// $Id: XrdFile.h 2782 2012-06-19 06:46:45Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#ifndef XrdMon_XrdFile_H
#define XrdMon_XrdFile_H

#include <Glasses/ZGlass.h>
#include <Stones/SRange.h>
#include <Gled/GTime.h>

class XrdUser;

class XrdFile : public ZGlass
{
  MAC_RNR_FRIENDS(XrdFile);
  friend class XrdServer;

private:
  Int_t           m_dict_id;    //!

  void _init();

protected:
  ZLink<XrdUser>  mUser;            // X{GS} L{}

  GTime           mOpenTime;        // X{GRSQ} 7 TimeOut()
  GTime           mCloseTime;       // X{GRSQ} 7 TimeOut()
  GTime           mLastMsgTime;     // X{GRSQ} 7 TimeOut()

  SRange          mReadStats;       // X{GR}   7 StoneOutput(-width=>32, Fmt=>"%.3fMB - N=%llu, A=%.3f, S=%.3f", Args=>[SumX, N, Average, Sigma])
  SRange          mSingleReadStats; // X{GR}   7 StoneOutput(-width=>32, Fmt=>"%.3fMB - N=%llu, A=%.3f, S=%.3f", Args=>[SumX, N, Average, Sigma])
  SRange          mVecReadStats;    // X{GR}   7 StoneOutput(-width=>32, Fmt=>"%.3fMB - N=%llu, A=%.3f, S=%.3f", Args=>[SumX, N, Average, Sigma])
  SRange          mVecReadCntStats; // X{GR}   7 StoneOutput(-width=>32, Fmt=>"A=%.3f, S=%.3f",                  Args=>[Average, Sigma])
  SRange          mWriteStats;      // X{GR}   7 StoneOutput(-width=>32, Fmt=>"%.3fMB - N=%llu, A=%.3f, S=%.3f", Args=>[SumX, N, Average, Sigma])

  Double_t        mRTotalMB;        // X{GSD}  7 ValOut(-join=>1)
  Double_t        mWTotalMB;        // X{GSD}  7 ValOut()
  Double_t        mSizeMB;          // X{GS}   7 ValOut()

public:
  XrdFile(const Text_t* n="XrdFile", const Text_t* t=0);
  virtual ~XrdFile();

  Bool_t IsOpen() const { return mCloseTime.IsNever() && ! mOpenTime.IsNever(); }

  void AddReadSample(Double_t x);
  void AddVecReadSample(Double_t x, Int_t n);
  void AddWriteSample(Double_t x);

#include "XrdFile.h7"
  ClassDef(XrdFile, 1);
}; // endclass XrdFile

#endif
 XrdFile.h:1
 XrdFile.h:2
 XrdFile.h:3
 XrdFile.h:4
 XrdFile.h:5
 XrdFile.h:6
 XrdFile.h:7
 XrdFile.h:8
 XrdFile.h:9
 XrdFile.h:10
 XrdFile.h:11
 XrdFile.h:12
 XrdFile.h:13
 XrdFile.h:14
 XrdFile.h:15
 XrdFile.h:16
 XrdFile.h:17
 XrdFile.h:18
 XrdFile.h:19
 XrdFile.h:20
 XrdFile.h:21
 XrdFile.h:22
 XrdFile.h:23
 XrdFile.h:24
 XrdFile.h:25
 XrdFile.h:26
 XrdFile.h:27
 XrdFile.h:28
 XrdFile.h:29
 XrdFile.h:30
 XrdFile.h:31
 XrdFile.h:32
 XrdFile.h:33
 XrdFile.h:34
 XrdFile.h:35
 XrdFile.h:36
 XrdFile.h:37
 XrdFile.h:38
 XrdFile.h:39
 XrdFile.h:40
 XrdFile.h:41
 XrdFile.h:42
 XrdFile.h:43
 XrdFile.h:44
 XrdFile.h:45
 XrdFile.h:46
 XrdFile.h:47
 XrdFile.h:48
 XrdFile.h:49
 XrdFile.h:50
 XrdFile.h:51
 XrdFile.h:52
 XrdFile.h:53
 XrdFile.h:54
 XrdFile.h:55
 XrdFile.h:56
 XrdFile.h:57