ROOT logo
// $Id: TRootXTReq.h 2397 2010-07-03 12:54:10Z 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 GledCore_TRootXTReq_H
#define GledCore_TRootXTReq_H

class GMutex;
class GCondition;
class GThread;

#include <TString.h>

class TTimer;
class TSignalHandler;

#include <list>

class TRootXTReq
{
private:
  GCondition               *m_return_condition;

  static list<TRootXTReq*>  sQueue;
  static GThread           *sRootThread;
  static GMutex            *sQueueMutex;
  static bool               sSheduled;

  virtual void Act() = 0;

protected:
  TString                   mName;

  void post_request();

public:
  TRootXTReq(const char* n="TRootXTReq");
  virtual ~TRootXTReq();

  void ShootRequest();
  void ShootRequestAndWait();

  // --- Static interface ---

  static void Bootstrap(GThread* root_thread);
  static void Shutdown();

  static void ProcessQueue();

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

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