ROOT logo
// $Id: XrdEhs.h 2735 2012-04-24 02:34:46Z 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_XrdEhs_H
#define XrdMon_XrdEhs_H

#include <Glasses/ZNameMap.h>
#include <Gled/GTime.h>

class XrdMonSucker;
class XrdFile;

#include "TPRegexp.h"

class SSocket;


class XrdEhs : public ZNameMap
{
private:
  void _init();

  Bool_t	       b_stop_server; //!

  GMutex               m_re_mutex;    //!
  TPMERegexp           m_req_line_re; //!
  TPMERegexp           m_req_re;      //!

protected:
  ZLink<XrdMonSucker>  mXrdSucker;    // X{GS} L{a}
  Int_t	               mPort;         // X{GS} 7 Value(-range=>[1,65535,1])
  Bool_t	       bServerUp;     // X{GS} 7 BoolOut()

  Bool_t               bParanoia;     // X{GS}  7 Bool()

  list<XrdFile*>       mFileList;     //!
  TimeStamp_t          mFileListTS;   //!
  GMutex               mServeMutex;   //!
  GTime                mServeTime;    //!

  void fill_content(const GTime& req_time, TString& content, lStr_t& path, mStr2Str_t& args);

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

  void StartServer(); // X{Ed} 7 MButt(-join=>1)
  void StopServer();  // X{E}  7 MButt()

  void ServePage(SSocket* sock);

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

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