ROOT logo
// $Id: EyeInfo.h 2460 2010-12-12 22:06:51Z 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 Gled_EyeInfo_H
#define Gled_EyeInfo_H

// Includes
#include <Glasses/ZMirEmittingEntity.h>
#include <Glasses/SaturnInfo.h>

#include <Eye/Ray.h>

class Saturn;
class Eye;
class EyeInfoVector;
class TSocket;


class EyeInfo : public ZMirEmittingEntity
{
  MAC_RNR_FRIENDS(EyeInfo);
  friend class ZKing; friend class ZQueen; friend class ZSunQueen;
  friend class Saturn;
  friend class Eye;

public:
  typedef Eye*	(*EyeCreator_foo)(TSocket*, EyeInfo*, ZGlass*);

  enum PrivRayQN_e
  {
    PRQN_offset = RayNS::RQN_user_0,
    PRQN_text_message,
  };

private:
  TSocket            *hSocket;   //!
  Eye                *hEye;      //!
  EyeInfoVector      *hSelfEIV;  //!
  GMutex              hEyeMutex; //!

protected:
  ZLink<SaturnInfo>   mMaster; // X{gS} L{}

  void set_eye(Eye* eye);

  void emit_text_message_ray(const TString& s, InfoStream_e type);

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

  virtual SaturnInfo* HostingSaturn() { return mMaster.get(); }

  // Virtuals exported from MEE
  virtual void Message(const TString& s);
  virtual void Warning(const TString& s);
  virtual void Error  (const TString& s);

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

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