ROOT logo
// $Id: EyeInfo.cxx 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/.

#include "EyeInfo.h"
#include "EyeInfo.c7"

#include <Ephra/EyeInfoVector.h>
#include <Stones/ZMIR.h>
#include <Ephra/Saturn.h>

ClassImp(EyeInfo);

EyeInfo::EyeInfo(const Text_t* n, const Text_t* t) :
  ZMirEmittingEntity(n,t),
  hSocket(0), hEye(0), hSelfEIV(0),
  hEyeMutex(GMutex::recursive)
{
  hSelfEIV = new EyeInfoVector(0);
  hSelfEIV->IncRefCnt();
  hSelfEIV->push_back(this);
}

EyeInfo::~EyeInfo()
{
  hSelfEIV->DecRefCnt();
}

void EyeInfo::set_eye(Eye* eye)
{
  // Called from Eye on instantiation / destruction

  static const Exc_t _eh("EyeInfo::set_eye ");

  GMutexHolder _el(hEyeMutex);

  if (hEye == 0)
  {
    if (eye == 0)
      throw _eh + "Eye not set, called with zero again.";

    hEye = eye;
  }
  else
  {
    if (eye != 0)
      throw _eh + "Eye already set.";

    hEye = 0;
  }
}

/**************************************************************************/

void  EyeInfo::emit_text_message_ray(const TString& s, InfoStream_e type)
{
  ZMIR* mir = get_MIR();
  if (mir == 0) return;

  GMutexHolder _el(hEyeMutex);

  if (mSaturn->AcceptsRays() && hEye != 0)
  {
    auto_ptr<Ray> ray(Ray::PtrCtor(this, PRQN_text_message, mTimeStamp, FID()));
    ray->CustomBuffer() << mir->fCaller->GetSaturnID() << s << type;
    mSaturn->Shine(ray, hSelfEIV);
  }
}

void EyeInfo::Message(const TString& s)
{
  emit_text_message_ray(s, ISmessage);
}

void EyeInfo::Warning(const TString& s)
{
  emit_text_message_ray(s, ISwarning);
}

void EyeInfo::Error(const TString& s)
{
  emit_text_message_ray(s, ISerror);
}
 EyeInfo.cxx:1
 EyeInfo.cxx:2
 EyeInfo.cxx:3
 EyeInfo.cxx:4
 EyeInfo.cxx:5
 EyeInfo.cxx:6
 EyeInfo.cxx:7
 EyeInfo.cxx:8
 EyeInfo.cxx:9
 EyeInfo.cxx:10
 EyeInfo.cxx:11
 EyeInfo.cxx:12
 EyeInfo.cxx:13
 EyeInfo.cxx:14
 EyeInfo.cxx:15
 EyeInfo.cxx:16
 EyeInfo.cxx:17
 EyeInfo.cxx:18
 EyeInfo.cxx:19
 EyeInfo.cxx:20
 EyeInfo.cxx:21
 EyeInfo.cxx:22
 EyeInfo.cxx:23
 EyeInfo.cxx:24
 EyeInfo.cxx:25
 EyeInfo.cxx:26
 EyeInfo.cxx:27
 EyeInfo.cxx:28
 EyeInfo.cxx:29
 EyeInfo.cxx:30
 EyeInfo.cxx:31
 EyeInfo.cxx:32
 EyeInfo.cxx:33
 EyeInfo.cxx:34
 EyeInfo.cxx:35
 EyeInfo.cxx:36
 EyeInfo.cxx:37
 EyeInfo.cxx:38
 EyeInfo.cxx:39
 EyeInfo.cxx:40
 EyeInfo.cxx:41
 EyeInfo.cxx:42
 EyeInfo.cxx:43
 EyeInfo.cxx:44
 EyeInfo.cxx:45
 EyeInfo.cxx:46
 EyeInfo.cxx:47
 EyeInfo.cxx:48
 EyeInfo.cxx:49
 EyeInfo.cxx:50
 EyeInfo.cxx:51
 EyeInfo.cxx:52
 EyeInfo.cxx:53
 EyeInfo.cxx:54
 EyeInfo.cxx:55
 EyeInfo.cxx:56
 EyeInfo.cxx:57
 EyeInfo.cxx:58
 EyeInfo.cxx:59
 EyeInfo.cxx:60
 EyeInfo.cxx:61
 EyeInfo.cxx:62
 EyeInfo.cxx:63
 EyeInfo.cxx:64
 EyeInfo.cxx:65
 EyeInfo.cxx:66
 EyeInfo.cxx:67
 EyeInfo.cxx:68
 EyeInfo.cxx:69
 EyeInfo.cxx:70
 EyeInfo.cxx:71
 EyeInfo.cxx:72
 EyeInfo.cxx:73
 EyeInfo.cxx:74
 EyeInfo.cxx:75
 EyeInfo.cxx:76
 EyeInfo.cxx:77
 EyeInfo.cxx:78
 EyeInfo.cxx:79
 EyeInfo.cxx:80
 EyeInfo.cxx:81
 EyeInfo.cxx:82
 EyeInfo.cxx:83
 EyeInfo.cxx:84
 EyeInfo.cxx:85