// $Header: /cvs/gled-1.2/GledCore/Glasses/PerfMeterOperator.cxx,v 1.5 2005/03/11 17:50:15 matevz Exp $

// Copyright (C) 1999-2005, 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/.

//__________________________________________________________________________
// PerfMeterOperator
//
// If bUseBeams is true, make sure mBeamHost IS set.
// In fact should do this somwhere in routing code ... but anyway ...

#include "PerfMeterOperator.h"
#include "PerfMeterOperator.c7"

ClassImp(PerfMeterOperator)

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

 void PerfMeterOperator::_init()
{
  mTest = TT_Void; bUseBeams = false;
  mVecSize  = 1;
  mTarget   = 0;
  mBeamHost = 0;
}

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

 void PerfMeterOperator::Operate(Operator::Arg* op_arg) throw(Operator::Exception)
{
  Operator::PreOperate(op_arg);

  if(mTarget == 0) goto end_operate;

  switch(mTest) {
  case TT_Void: { break; }
      
  case TT_Null: {
    if(op_arg->fMultix) {
      mTarget->NullMethod();
    } else {
      auto_ptr<ZMIR> mir(mTarget->S_NullMethod());
      send_beam_or_flare(mir);
    }
    break;
  }

  case TT_IncCount: {
    if(op_arg->fMultix) {
      mTarget->IncCount();
    } else {
      auto_ptr<ZMIR> mir(mTarget->S_IncCount());
      send_beam_or_flare(mir);
    }
    break;
  }

  case TT_SetVector: {
    TVector vec(mVecSize);
    if(op_arg->fMultix) {
      mTarget->AssignVector(vec);
    } else {
      auto_ptr<ZMIR> mir(mTarget->S_AssignVector(vec));
      send_beam_or_flare(mir);
    }
    break;
  }
    
  }

 end_operate:
  Operator::PostOperate(op_arg);
}

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

 void PerfMeterOperator::send_beam_or_flare(auto_ptr<ZMIR>& m)
{
  if(bUseBeams) {
    SaturnInfo *rec = mBeamHost ? mBeamHost : mSaturn->GetSaturnInfo();
    m->SetRecipient(rec);
  }
  mSaturn->PostMIR(m);
}


ROOT page - Home page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.