ROOT logo
// $Id: ZComet.h 2088 2008-11-23 20:26: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 GledCore_ZComet_H
#define GledCore_ZComet_H

#include <Gled/GledTypes.h>
#include <TNamed.h>

#include <Glasses/ZGlass.h>

class Saturn;
class ZKing; class ZQueen;
class ZList;
class TBuffer;

class ZComet : public TNamed, public An_ID_Demangler
{
  // **** Custom Streamer ****
public:
  enum CometType_e { CT_CometBag=0, CT_Queen, CT_King };

private:
  bool		bFail;
  bool		bGraphRebuilt;

  void		_init();

public:
#ifndef __CINT__
  mID2pZGlass_t mIDMap;
#endif

  CometType_e	mType;		// X{g}

  An_ID_Demangler* mExtDemangler; // X{gS}

  bool		bWarnOn;	// X{gS}
  bool		bVerbose;	// X{gS}

  set<LID_t>	mLibSets;	// X{R}
  lpZGlass_t	mTopLevels;
  ZQueen*	mQueen;		// X{g}
  ZKing*	mKing;		// X{g}
  lpZGlass_t	mOrphans;

  sStr_t	mIgnoredLinks;

public:
  ZComet(const Text_t* n="Comet", const Text_t* t=0) : TNamed(n,t) { _init(); }
  virtual ~ZComet() {}

  Int_t AddTopLevel(ZGlass* g, Bool_t do_links, Bool_t do_lists, Int_t depth);
  Int_t AddGlass(ZGlass* g, Bool_t do_links=false, Bool_t do_lists=false,
		 Int_t depth=0);

  // An_ID_Demangler; also affected by mExtDemangler
  virtual ZGlass* DemangleID(ID_t id);

  // void ReplaceIDEntry(ID_t id, ZGlass* lens);

  void  AssignQueen(ZQueen* queen);
  Int_t	RebuildGraph();

  void StreamHeader(TBuffer& b);
  void StreamContents(TBuffer& b);

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

#endif
 ZComet.h:1
 ZComet.h:2
 ZComet.h:3
 ZComet.h:4
 ZComet.h:5
 ZComet.h:6
 ZComet.h:7
 ZComet.h:8
 ZComet.h:9
 ZComet.h:10
 ZComet.h:11
 ZComet.h:12
 ZComet.h:13
 ZComet.h:14
 ZComet.h:15
 ZComet.h:16
 ZComet.h:17
 ZComet.h:18
 ZComet.h:19
 ZComet.h:20
 ZComet.h:21
 ZComet.h:22
 ZComet.h:23
 ZComet.h:24
 ZComet.h:25
 ZComet.h:26
 ZComet.h:27
 ZComet.h:28
 ZComet.h:29
 ZComet.h:30
 ZComet.h:31
 ZComet.h:32
 ZComet.h:33
 ZComet.h:34
 ZComet.h:35
 ZComet.h:36
 ZComet.h:37
 ZComet.h:38
 ZComet.h:39
 ZComet.h:40
 ZComet.h:41
 ZComet.h:42
 ZComet.h:43
 ZComet.h:44
 ZComet.h:45
 ZComet.h:46
 ZComet.h:47
 ZComet.h:48
 ZComet.h:49
 ZComet.h:50
 ZComet.h:51
 ZComet.h:52
 ZComet.h:53
 ZComet.h:54
 ZComet.h:55
 ZComet.h:56
 ZComet.h:57
 ZComet.h:58
 ZComet.h:59
 ZComet.h:60
 ZComet.h:61
 ZComet.h:62
 ZComet.h:63
 ZComet.h:64
 ZComet.h:65
 ZComet.h:66
 ZComet.h:67
 ZComet.h:68
 ZComet.h:69
 ZComet.h:70
 ZComet.h:71
 ZComet.h:72
 ZComet.h:73
 ZComet.h:74
 ZComet.h:75