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

//__________________________________________________________________________
// ZFireKing
//
//

#include "ZFireKing.h"
#include <Glasses/ZQueen.h>
#include "ZFireKing.c7"

ClassImp(ZFireKing);

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

void ZFireKing::_init()
{
}

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

void ZFireKing::Enthrone(ZQueen* queen)
{
  PARENT_GLASS::Enthrone(queen);
  queen->SetAuthMode(ZQueen::AM_None);
}

/**************************************************************************/
// Mirroring of Queens
/**************************************************************************/

void ZFireKing::RequestQueenMirroring(ZQueen* queen_to_mirror)
{
  // Entry point for initiation of queen mirroring on user request.
  // Should be directed at FireKing, who performs the task
  // on behalf of Saturn.
  // (would be more proper to have MirrorQueen or MirrorPrincess in fire-space)

  static TString _eh("ZFireKing::RequestQueenMirroring ");

  // Should assert queen exists etc ...

  ZKing* boss = queen_to_mirror->GetKing();
  if(boss->GetMinID() > mSaturn->GetKing()->GetMinID()) {
    throw(_eh + "queen should be in a moon object-space");
  }

  auto_ptr<ZMIR> mir(boss->S_reflect_queen(queen_to_mirror, mSaturn->GetSaturnInfo()));
  mir->SetRecipient(mSaturn->GetSaturnInfo());
  mSaturn->PostMIR(mir);

  // assert queen in `above' space and not yet ruling, neither awaiting sceptre.
  // pass control to reflect_queen, which also checks dependencies and
  // generates appropriate beams for the master Saturn.
}

void ZFireKing::RequestQueenShattering(ZQueen* queen_to_leave)
{
  // Ignore gloriously. Deps first.

  static TString _eh("ZFireKing::RequestQueenShattering ");

  ISerr(_eh + "not implemented.");
}

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