ROOT logo
Gled » GLEDCORE » ZQueen

class ZQueen: public ZNameMap, public An_ID_Demangler, public MIR_Priest


 A Queen controls its portion of the ID space.
 Glasses are adopted/instantiated and enlightened by it.
 Queens (like Kings) are exported to all Moons but are not
 necesarily activated immediately (controled by bMandatory).
 Queen's status is given by bRuling.

 Although queens are always at least partially exposed, MIRs with
 alpa=queen are *not* broadcasted to all Moons by the Saturn's mir
 processing code. Exported methods that should be called also at
 inactive queens must be pushed there by hand. This service is
 offered by the BroadcastMIRToNonRulingReflections() method. For
 example see ZQueen::AddDependency.


 Dev notes


 1. QueenState_e mState is not handled at the moons. This was introduced for
 the future handling of queen mirroring using eunuchs w/ clean state
 transitions.
 The two flags bRuling and bAwaitingSceptre play this role for now.

Function Members (Methods)

public:
ZQueen(const ZQueen&)
ZQueen(const Text_t* n = "ZQueen", const Text_t* t = 0)
ZQueen(ID_t span, const Text_t* n = "ZQueen", const Text_t* t = 0)
virtual~ZQueen()
static void_gled_catalog_init()
voidTObject::AbstractMethod(const char* method) const
virtual voidZList::Add(ZGlass* lens)
voidAddDependency(ZQueen* new_dep)
voidAddObserver(EyeInfo* ei)
voidAdoptComet(AList* top_dest, AList* orphan_dest, ZComet* comet)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual AList*AList::AsAList()
ZList*ZList::AssertPath(const Text_t* path, const Text_t* new_el_type = "ZList")
virtual ZGlass*ZList::BackElement()
voidBasicQueenChange(ZMIR& mir)
ZList::iteratorZList::begin()
virtual voidBlessMIR(ZMIR& mir)
voidBroadcastMIRToNonRulingReflections(ZMIR& mir)
virtual voidTObject::Browse(TBrowser* b)
Bool_tZGlass::CheckBit(ZGlass::Bits_e bit) const
ID_tCheckIn(ZGlass* lens)
static TClass*Class()
virtual const char*TObject::ClassName() const
voidCleanOrphanage()
virtual voidTObject::Clear(Option_t* = "")
virtual voidAList::ClearAllReferences()
voidZGlass::ClearLinks()
virtual voidZList::ClearList()
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidCopyLinkRefs(lppZGlass_t& ref_list)
virtual voidCopyLinkReps(ZGlass::lLinkRep_t& link_rep_list)
virtual voidCopyLinks(lpZGlass_t& glass_list)
virtual TimeStamp_tAList::CopyList(lpZGlass_t& dest, bool copy_zeros = false, bool do_eyerefs = false)
virtual TimeStamp_tAList::CopyListElReps(AList::lElRep_t& dest, bool copy_zeros = false)
virtual voidCreateReflection(TBuffer& buf)
Short_tZGlass::DecEyeRefCount()
Short_tZGlass::DecRefCount(ZGlass* from, UShort_t n = 1)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual ZGlass*DemangleID(ID_t id)
virtual voidDepCheckMIR(ZMIR& mir)
Bool_tDependsOn(ZQueen* some_queen)
virtual Int_tZGlass::DetachedThreadNice(const ZMIR* mir) const
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
voidAList::DumpElements(Bool_t dump_zeros = false)
voidZNameMap::DumpNameMap()
virtual AList::ElType_eZList::el_type()
virtual boolAList::elrep_can_edit_label()
virtual boolAList::elrep_can_hold_zero()
virtual boolZList::elrep_has_id()
virtual boolAList::elrep_has_label()
voidEmitRay(auto_ptr<Ray>& ray)
ZList::iteratorZList::end()
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
voidExecuteMir(ZMIR& mir)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
static FID_tFID()
Int_tZList::FindFirst(ZGlass* lens)
virtual ZGlass*ZGlass::FindLensByPath(const TString& url, bool throwp = false)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual ZGlass*ZList::FrontElement()
Bool_tZGlass::GetAcceptRefs() const
UChar_tGetAlignment()
UChar_tGetAuthMode()
UShort_tGetAvgPurgLen()
Bool_tGetAwaitingSceptre()
CID_tAList::GetCid() const
UInt_tGetDeletedMS()
ZHashList*GetDeps()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual ZGlass*ZNameMap::GetElementByName(const TString& name)
virtual Int_tZNameMap::GetElementsByName(const TString& name, lpZGlass_t& dest)
UShort_tZGlass::GetFireRefCount() const
Bool_tGetFollowDeps()
UInt_tZGlass::GetGlassBits()
ZMirFilter*ZGlass::GetGuard()
virtual const char*TObject::GetIconName() const
ID_tGetIDsFree()
ID_tGetIDSpan()
ID_tGetIDsPurged()
ID_tGetIDsUsed()
Bool_tZNameMap::GetKeepSorted() const
ZKing*GetKing()
LID_tAList::GetLid() const
virtual ZGlass*ZGlass::GetLinkByName(const TString& link_name)
TimeStamp_tAList::GetListTimeStamp() const
Bool_tGetMandatory()
UChar_tGetMapNoneTo()
ID_tGetMaxID()
ID_tGetMinID()
Bool_tZGlass::GetMIRActive() const
UShort_tZGlass::GetMoonRefCount() const
virtual const Text_t*ZGlass::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
ZHashList*GetOrphans()
ZMirFilter*GetProtector()
UInt_tGetPurgedMS()
ZQueen*ZGlass::GetQueen()
UShort_tZGlass::GetRefCount() const
Bool_tGetRuling()
Saturn*ZGlass::GetSaturn()
ID_tZGlass::GetSaturnID() const
Float_tGetSgmPurgLen()
Int_tAList::GetSize() const
Bool_tGetStampIdOps() const
Bool_tGetStamping() const
TimeStamp_tZGlass::GetStampReqTring() const
ZQueen::QueenState_eGetState()
UShort_tZGlass::GetSunRefCount() const
TimeStamp_tZGlass::GetTimeStamp() const
virtual const Text_t*ZGlass::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Bool_tZGlass::GetUseDispList() const
Bool_tZGlass::GetUseNameStack() const
Bool_tZNameMap::GetWarnEqualName() const
ZQueen::ZeroRCPolicy_eGetZeroRCPolicy()
static GledNS::ClassInfo*GlassInfo()
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual Bool_tAList::Has(ZGlass* g)
virtual ULong_tTObject::Hash() const
TStringZGlass::Identify() const
ID_tIncarnateWAttach()
Short_tZGlass::IncEyeRefCount()
Short_tZGlass::IncRefCount(ZGlass* from)
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidZNameMap::InsertById(ZGlass* lens, Int_t before_id)
virtual voidTObject::Inspect() constMENU
ID_tInstantiateWAttach(LID_t new_lid, CID_t new_cid, const Text_t* name = 0, const Text_t* title = 0)
voidTObject::InvertBit(UInt_t f)
virtual voidInvokeReflection(TBuffer& buf)
virtual TClass*IsA() const
Bool_tAList::IsEmpty()
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
boolZGlass::IsSunOrFireSpace()
boolZGlass::IsSunSpace()
Bool_tTObject::IsZombie() const
virtual boolZList::list_deque_ops()
virtual boolZList::list_insert_id_ops()
virtual boolAList::list_insert_label_ops()
virtual boolAList::list_insert_lens_ops()
virtual boolAList::list_set_id_ops()
virtual boolAList::list_set_label_ops()
voidListAll()
virtual voidTObject::ls(Option_t* option = "") const
ZComet*MakeComet()
virtual voidZGlass::MarkStampReqTring()
voidTObject::MayNotUse(const char* method) const
static MID_tAList::Mid_Add()
static MID_tMid_AddDependency()
static MID_tMid_AdoptComet()
static MID_tZList::Mid_AssertPath()
static MID_tZList::Mid_BackElement()
static MID_tMid_CleanOrphanage()
static MID_tAList::Mid_ClearList()
static MID_tAList::Mid_DumpElements()
static MID_tZNameMap::Mid_DumpNameMap()
static MID_tZList::Mid_FrontElement()
static MID_tMid_IncarnateWAttach()
static MID_tZList::Mid_InsertById()
static MID_tMid_instantiate()
static MID_tMid_InstantiateWAttach()
static MID_tMid_ListAll()
static MID_tMid_MIRActivateLens()
static MID_tMid_MIRDeactivateLens()
static MID_tZList::Mid_PopBack()
static MID_tZList::Mid_PopFront()
static MID_tMid_PrintEyeConnections()
static MID_tMid_PrintObservedLenses()
static MID_tZList::Mid_PushBack()
static MID_tZList::Mid_PushFront()
static MID_tMid_PutLensToPurgatory()
static MID_tMid_PutLensToVoid()
static MID_tMid_PutListElementsToPurgatory()
static MID_tZGlass::Mid_RebuildRnrScheme()
static MID_tMid_release_moon_purgatory()
static MID_tAList::Mid_RemoveAll()
static MID_tZList::Mid_RemoveById()
static MID_tMid_RemoveLens()
static MID_tMid_RemoveLenses()
static MID_tAList::Mid_RemoveLensesViaQueen()
static MID_tZGlass::Mid_ReTriangulate()
static MID_tZGlass::Mid_SetAcceptRefs()
static MID_tMid_SetAlignment()
static MID_tMid_SetAuthMode()
static MID_tMid_SetAvgPurgLen()
static MID_tMid_SetAwaitingSceptre()
static MID_tAList::Mid_SetCid()
static MID_tMid_SetDeletedMS()
static MID_tMid_SetDeps()
static MID_tAList::Mid_SetElementFID()
static MID_tMid_SetFollowDeps()
static MID_tZGlass::Mid_SetGuard()
static MID_tZNameMap::Mid_SetKeepSorted()
static MID_tAList::Mid_SetLid()
static MID_tAList::Mid_SetListTimeStamp()
static MID_tMid_SetMandatory()
static MID_tMid_SetMapNoneTo()
static MID_tZGlass::Mid_SetMIRActive()
static MID_tZGlass::Mid_SetName()
static MID_tMid_SetOrphans()
static MID_tMid_SetProtector()
static MID_tMid_SetPurgedMS()
static MID_tMid_SetRuling()
static MID_tMid_SetSgmPurgLen()
static MID_tMid_SetStampIdOps()
static MID_tMid_SetStamping()
static MID_tZGlass::Mid_SetStampReqTring()
static MID_tMid_SetState()
static MID_tZGlass::Mid_SetTimeStamp()
static MID_tZGlass::Mid_SetTitle()
static MID_tZGlass::Mid_SetUseDispList()
static MID_tZGlass::Mid_SetUseDLRec()
static MID_tZGlass::Mid_SetUseNameStack()
static MID_tZNameMap::Mid_SetWarnEqualName()
static MID_tMid_SetZeroRCPolicy()
static MID_tZList::Mid_SortByName()
static MID_tZGlass::Mid_UpdateAllViews()
static MID_tZGlass::Mid_UpdateGlassView()
voidMIRActivateLens(ZGlass* lens)
voidMIRDeactivateLens(ZGlass* lens)
ZMIR*AList::MkMir_Add(ZGlass* lens)
ZMIR*AList::MkMir_AddLabel(const TString& label)
ZMIR*AList::MkMir_ChangeLabel(const TString& label, TString new_label)
ZMIR*AList::MkMir_Insert(ZGlass* lens, AList::ElRep& elrep)
ZMIR*AList::MkMir_InsertByLabel(ZGlass* lens, const TString& label, const TString& before)
ZMIR*AList::MkMir_InsertLabel(const TString& label, const TString& before)
ZMIR*AList::MkMir_PopBack()
ZMIR*AList::MkMir_PopFront()
ZMIR*AList::MkMir_PushBack(ZGlass* lens)
ZMIR*AList::MkMir_PushFront(ZGlass* lens)
ZMIR*AList::MkMir_Remove(AList::ElRep& elrep)
ZMIR*AList::MkMir_RemoveAll(ZGlass* lens)
ZMIR*AList::MkMir_RemoveLabel(const TString& label)
ZMIR*AList::MkMir_SetElement(ZGlass* lens, AList::ElRep& elrep)
virtual voidZNameMap::name_change_cb(ZGlass* lens, const TString& new_name)
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
ZQueen&operator=(const ZQueen&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual ZGlass*ZList::PopBack()
virtual ZGlass*ZList::PopFront()
virtual voidTObject::Print(Option_t* option = "") const
voidPrintEyeConnections()
voidPrintObservedLenses(Bool_t dump_views = false)
virtual voidZNameMap::PushBack(ZGlass* lens)
virtual voidZNameMap::PushFront(ZGlass* lens)
virtual Int_tTObject::Read(const char* name)
voidZGlass::ReadLock() const
voidZGlass::ReadUnlock() const
virtual Int_tAList::RebuildAllRefs(An_ID_Demangler* idd)
virtual Int_tRebuildLinkRefs(An_ID_Demangler* c)
virtual Int_tZList::RebuildListRefs(An_ID_Demangler* idd)
voidZGlass::RebuildRnrScheme()
virtual voidTObject::RecursiveRemove(TObject* obj)
GMutex&AList::RefListMutex()
const TString&ZGlass::RefName() const
const TString&ZGlass::RefTitle() const
voidZGlass::register_name_change_cb(ZGlass::NameChangeCB* nccb)
voidZGlass::register_ray_absorber(ZGlass::RayAbsorber* ra)
virtual voidAList::ReleaseListCopyEyeRefs(lpZGlass_t& dest)
virtual Int_tZList::RemoveAll(ZGlass* lens)
virtual voidZList::RemoveById(Int_t id_to_remove)
voidRemoveLens(ZGlass* lens)
voidRemoveLenses(AList* list, Bool_t recurse = false)
voidAList::RemoveLensesViaQueen(Bool_t recurse = false)
voidRemoveObserver(EyeInfo* ei)
Int_tZGlass::RemoveReferencesTo(ZGlass* lens)
voidTObject::ResetBit(UInt_t f)
voidZGlass::ReTriangulate()
virtual voidRevokeReflection()
virtual ZMIR*AList::S_Add(ZGlass* lens)
ZMIR*S_AddDependency(ZQueen* new_dep)
ZMIR*S_AdoptComet(AList* top_dest, AList* orphan_dest, ZComet* comet)
ZMIR*ZList::S_AssertPath(const Text_t* path, const Text_t* new_el_type = "ZList")
virtual ZMIR*ZList::S_BackElement()
ZMIR*S_CleanOrphanage()
virtual ZMIR*AList::S_ClearList()
ZMIR*AList::S_DumpElements(Bool_t dump_zeros = false)
ZMIR*ZNameMap::S_DumpNameMap()
virtual ZMIR*ZList::S_FrontElement()
ZMIR*S_IncarnateWAttach()
virtual ZMIR*ZList::S_InsertById(ZGlass* lens, Int_t before_id)
virtual ZMIR*S_instantiate(FID_t fid, const Text_t* name = 0, const Text_t* title = 0)
ZMIR*S_InstantiateWAttach(LID_t new_lid, CID_t new_cid, const Text_t* name = 0, const Text_t* title = 0)
ZMIR*S_ListAll()
ZMIR*S_MIRActivateLens(ZGlass* lens)
ZMIR*S_MIRDeactivateLens(ZGlass* lens)
virtual ZMIR*ZList::S_PopBack()
virtual ZMIR*ZList::S_PopFront()
ZMIR*S_PrintEyeConnections()
ZMIR*S_PrintObservedLenses(Bool_t dump_views = false)
virtual ZMIR*ZList::S_PushBack(ZGlass* lens)
virtual ZMIR*ZList::S_PushFront(ZGlass* lens)
ZMIR*S_PutLensToPurgatory(ZGlass* lens)
ZMIR*S_PutLensToVoid(ID_t lens_id)
ZMIR*S_PutListElementsToPurgatory(AList* list)
ZMIR*ZGlass::S_RebuildRnrScheme()
ZMIR*S_release_moon_purgatory(ID_t n_to_release)
virtual ZMIR*AList::S_RemoveAll(ZGlass* lens)
virtual ZMIR*ZList::S_RemoveById(Int_t id_to_remove)
ZMIR*S_RemoveLens(ZGlass* lens)
ZMIR*S_RemoveLenses(AList* list, Bool_t recurse = false)
ZMIR*AList::S_RemoveLensesViaQueen(Bool_t recurse = false)
ZMIR*ZGlass::S_ReTriangulate()
ZMIR*ZGlass::S_SetAcceptRefs(Bool_t acceptrefs)
ZMIR*S_SetAlignment(UChar_t alignment)
ZMIR*S_SetAuthMode(UChar_t authmode)
ZMIR*S_SetAvgPurgLen(UShort_t avgpurglen)
ZMIR*S_SetAwaitingSceptre(Bool_t awaitingsceptre)
ZMIR*AList::S_SetCid(CID_t cid)
ZMIR*S_SetDeletedMS(UInt_t deletedms)
ZMIR*S_SetDeps(ZHashList* deps)
ZMIR*AList::S_SetElementFID(FID_t fid)
ZMIR*S_SetFollowDeps(Bool_t followdeps)
ZMIR*ZGlass::S_SetGuard(ZMirFilter* guard)
ZMIR*ZNameMap::S_SetKeepSorted(Bool_t keepsorted)
ZMIR*AList::S_SetLid(LID_t lid)
ZMIR*AList::S_SetListTimeStamp(TimeStamp_t listtimestamp)
ZMIR*S_SetMandatory(Bool_t mandatory)
ZMIR*S_SetMapNoneTo(UChar_t mapnoneto)
ZMIR*ZGlass::S_SetMIRActive(Bool_t miractive)
ZMIR*ZGlass::S_SetName(const Text_t* s)
ZMIR*S_SetOrphans(ZHashList* orphans)
ZMIR*S_SetProtector(ZMirFilter* protector)
ZMIR*S_SetPurgedMS(UInt_t purgedms)
ZMIR*S_SetRuling(Bool_t ruling)
ZMIR*S_SetSgmPurgLen(Float_t sgmpurglen)
ZMIR*S_SetStampIdOps(Bool_t stampidops)
ZMIR*S_SetStamping(Bool_t stamping)
ZMIR*ZGlass::S_SetStampReqTring(TimeStamp_t stampreqtring)
ZMIR*S_SetState(ZQueen::QueenState_e state)
ZMIR*ZGlass::S_SetTimeStamp(TimeStamp_t timestamp)
ZMIR*ZGlass::S_SetTitle(const Text_t* s)
ZMIR*ZGlass::S_SetUseDispList(Bool_t usedisplist)
ZMIR*ZGlass::S_SetUseDLRec(Bool_t state)
ZMIR*ZGlass::S_SetUseNameStack(Bool_t usenamestack)
ZMIR*ZNameMap::S_SetWarnEqualName(Bool_t warnequalname)
ZMIR*S_SetZeroRCPolicy(ZQueen::ZeroRCPolicy_e zerorcpolicy)
virtual ZMIR*ZList::S_SortByName()
ZMIR*ZGlass::S_UpdateAllViews()
ZMIR*ZGlass::S_UpdateGlassView()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidZGlass::SetAcceptRefs(Bool_t acceptrefs)
voidSetAlignment(UChar_t alignment)
voidSetAuthMode(UChar_t authmode)
voidSetAvgPurgLen(UShort_t avgpurglen)
voidSetAwaitingSceptre(Bool_t awaitingsceptre)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidAList::SetCid(CID_t cid)
voidSetDeletedMS(UInt_t deletedms)
voidSetDeps(ZHashList* deps)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidAList::SetElementFID(FID_t fid)
voidSetFollowDeps(Bool_t followdeps)
voidZGlass::SetGuard(ZMirFilter* guard)
voidZNameMap::SetKeepSorted(Bool_t keep_sorted)
voidAList::SetLid(LID_t lid)
voidAList::SetListTimeStamp(TimeStamp_t listtimestamp)
voidSetMandatory(Bool_t mandatory)
voidSetMapNoneTo(UChar_t mapnoneto)
voidZGlass::SetMIRActive(Bool_t miractive)
voidZGlass::SetName(const Text_t* n)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetOrphans(ZHashList* orphans)
voidSetProtector(ZMirFilter* protector)
voidSetPurgedMS(UInt_t purgedms)
voidSetRuling(Bool_t ruling)
voidSetSgmPurgLen(Float_t sgmpurglen)
voidSetStampIdOps(Bool_t stampidops)
voidSetStamping(Bool_t stamping)
voidZGlass::SetStampReqTring(TimeStamp_t stampreqtring)
virtual voidAList::SetStamps(TimeStamp_t s)
voidSetState(ZQueen::QueenState_e state)
voidZGlass::SetTimeStamp(TimeStamp_t timestamp)
voidZGlass::SetTitle(const Text_t* t)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidZGlass::SetUseDispList(Bool_t usedisplist)
voidZGlass::SetUseDLRec(Bool_t state)
voidZGlass::SetUseNameStack(Bool_t usenamestack)
voidZNameMap::SetWarnEqualName(Bool_t warnequalname)
voidSetZeroRCPolicy(ZQueen::ZeroRCPolicy_e zerorcpolicy)
virtual voidShowMembers(TMemberInspector& insp)
Int_tAList::Size()
virtual voidZNameMap::SortByName()
TimeStamp_tZGlass::Stamp()
virtual TimeStamp_tZGlass::Stamp(FID_t fid, UChar_t eye_bits = 0)
TimeStamp_tZGlass::StampLink()
virtual TimeStamp_tZGlass::StampLink(FID_t fid)
TimeStamp_tZGlass::StampLinkVFID()
virtual TimeStamp_tAList::StampListClear()
virtual TimeStamp_tAList::StampListElementSet(ZGlass* lens, Int_t id)
virtual TimeStamp_tAList::StampListElementSet(ZGlass* lens, const TString& label)
virtual TimeStamp_tAList::StampListInsert(ZGlass* lens, Int_t id, ZGlass* before)
virtual TimeStamp_tAList::StampListInsert(ZGlass* lens, Int_t id, Int_t before_id)
virtual TimeStamp_tAList::StampListInsertLabel(ZGlass* lens, const TString& label, const TString& before)
virtual TimeStamp_tAList::StampListPopBack()
virtual TimeStamp_tAList::StampListPopFront()
virtual TimeStamp_tAList::StampListPushBack(ZGlass* lens, Int_t id = -1)
virtual TimeStamp_tAList::StampListPushFront(ZGlass* lens, Int_t id = -1)
virtual TimeStamp_tAList::StampListRebuild()
virtual TimeStamp_tAList::StampListRemove(ZGlass* lens)
virtual TimeStamp_tAList::StampListRemove(ZGlass* lens, Int_t id)
virtual TimeStamp_tAList::StampListRemoveLabel(ZGlass* lens, const TString& label)
virtual voidZGlass::StampReqTring(FID_t fid = FID_t(0,0))
TimeStamp_tZGlass::StampVFID()
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
TStringZGlass::StrName() const
TStringZGlass::StrTitle() const
voidSubjectRefCntLock()
voidSubjectRefCntUnlock()
voidSubjectWriteLock()
voidSubjectWriteUnlock()
voidZList::Swallow(const Text_t* path, ZGlass* entry)
voidZList::Swallow(ZGlass* entry, Bool_t replace_p = true, const Text_t* path = "", const Text_t* new_el_type = "ZList")
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidUnfoldFrom(ZComet& comet)
voidZGlass::unregister_name_change_cb(ZGlass::NameChangeCB* nccb)
voidZGlass::unregister_ray_absorber(ZGlass::RayAbsorber* ra)
voidZGlass::UpdateAllViews()
voidZGlass::UpdateGlassView()
virtual voidTObject::UseCurrentStyle()
virtual FID_tVFID() const
virtual GledNS::ClassInfo*VGlassInfo() const
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
voidZGlass::WriteLock()
voidZGlass::WriteUnlock()
voidZeroRefCount(ZGlass* lens)
protected:
voidadd_reflector(SaturnInfo* moon)
virtual voidZGlass::AdEndarkenment()
virtual voidZGlass::AdEnlightenment()
virtual voidZGlass::AdUnfoldment()
ZMIR*ZGlass::assert_MIR_presence(const Exc_t& header, int what = 0)
ID_tassign_id(ZGlass* lens)
virtual voidbootstrap()
virtual voidZNameMap::clear_list()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
virtual voidembrace_of_life(ZComet& comet)
ZMIR*ZGlass::get_MIR()
boolhas_free_ids(ID_t n_needed)
virtual voidZNameMap::insert_with_placement(ZGlass* lens)
virtual ZGlass*instantiate(FID_t fid, const Text_t* name = 0, const Text_t* title = 0)
voidTObject::MakeZombie()
virtual voidZNameMap::new_element_check(ZGlass* lens)
ID_tnext_free_id(ZQueen::QueenIDMap_i i)
virtual voidZNameMap::on_insert(ZList::iterator it)
virtual voidZNameMap::on_rebuild()
virtual voidZNameMap::on_remove(ZList::iterator it)
virtual ZQueen::LensDetails*produce_lens_details(ID_t id, ZGlass* lens)
voidput_lens_to_purgatory(ZGlass* lens)
voidPutLensToPurgatory(ZGlass* lens)
voidPutLensToVoid(ID_t lens_id)
voidPutListElementsToPurgatory(AList* list)
voidZGlass::queen_check_in(ZGlass* l)
virtual voidAList::reference_all()
virtual voidZGlass::reference_links()
virtual voidAList::reference_list_elms()
voidrelease_moon_purgatory(ID_t n_to_release)
voidrelease_purgatory(ID_t n_needed)
intrelease_zombies()
voidremove_lens(ZGlass* lens)
voidremove_lenses(AList* list, Bool_t recurse, Bool_t syncmode)
virtual Int_tZList::remove_references_to(ZGlass* lens)
voidremove_reflector(SaturnInfo* moon)
voidZGlass::set_link_or_die(ZGlass*& link, ZGlass* new_val, FID_t fid)
voidZNameMap::shoot_sort_mir()
ZMIR*ZGlass::suggest_MIR_presence(const Exc_t& header, int what = 0)
virtual voidAList::unreference_all()
virtual voidZGlass::unreference_links()
virtual voidAList::unreference_list_elms()
voidZGlass::warn_caller(const TString& warning)
private:
void_init()

Data Members

public:
enum AuthMode_e { AM_None
AM_Queen
AM_Lens
AM_QueenThenLens
AM_LensThenQueen
};
enum Align_e { A_Good
A_Evil
};
enum QueenState_e { QS_Sleeping
QS_Awakening
QS_Dreaming
QS_Nightmare
QS_AwaitingSceptre
QS_Ruling
QS_RelinquishingSceptre
};
enum ZeroRCPolicy_e { ZRCP_Delete
ZRCP_ToOrphanage
ZRCP_Ignore
};
enum LensState_e { LS_Undef
LS_Alive
LS_Purged
LS_Dead
};
enum AList::ElType_e { ET_Nil
ET_Lens
ET_Id
ET_Label
};
enum ZGlass::Bits_e { kFixedNameBit
kDyingBit
};
enum ZGlass::MirComponents_e { MC_Any
MC_IsFlare
MC_IsBeam
MC_HasResultReq
MC_IsDetached
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Bool_tZGlass::bAcceptRefsX{GS} 7 BoolOut()
Bool_tbAwaitingSceptre! X{gS} 7 BoolOut()
Bool_tbFollowDepsX{gS} 7 Bool() Used by fire-space queens
Bool_tZNameMap::bKeepSortedX{GE} 7 Bool(-join=>1)
Bool_tZGlass::bMIRActiveX{GS} 7 BoolOut(-join=>1)
Bool_tbMandatoryX{gS} 7 Bool(-join=>1)
Bool_tbRuling! X{gS} 7 BoolOut(-join=>1)
Bool_tbStampIdOpsX{GS} 7 Bool()
Bool_tbStampingX{GS} 7 Bool(-join=>1)
Bool_tZGlass::bUseDispListX{GST} 7 Bool(-join=>1)
Bool_tZGlass::bUseNameStackX{GS} 7 Bool()
Bool_tZNameMap::bWarnEqualNameX{GS} 7 Bool()
UChar_tmAlignmentX{gS} 7 PhonyEnum(-type=>Align_e)
UChar_tmAuthModeX{gS} 7 PhonyEnum(-type=>AuthMode_e, -width=>12)
UShort_tmAvgPurgLenX{gS} 7 Value(-range=>[1,65000,1], -width=>5, -join=>1)
CID_tAList::mCidX{GS} 7 Value(-width=>4, -join=>1)
ID_tmCreationIDCreation point ID
UInt_tmDeletedMSX{gS} 7 Value(-range=>[100,1e6,10], -width=>7)
ZLink<ZHashList>mDepsX{gS} L{}
list<ZList::element,allocator<ZList::element> >ZList::mElements! Problem during TStreamerElement creation (it's getting created despite manual streamer).
UShort_tZGlass::mEyeRefCount!
UShort_tZGlass::mFireRefCount! X{G} 7 ValOut(-width=>4)
UInt_tZGlass::mGlassBitsX{g}
ZLink<ZMirFilter>ZGlass::mGuardX{E} L{}
map<unsigned int,ZQueen::LensDetails*,less<unsigned int>,allocator<pair<const unsigned int,ZQueen::LensDetails*> > >mIDMap!
ID_tmIDSpanX{g} 7 ValOut(-join=>1)
ID_tmIDsFreeX{g} 7 ValOut()
ID_tmIDsPurgedX{g} 7 ValOut(-join=>1)
ID_tmIDsUsedX{g} 7 ValOut()
ZKing*mKing! X{g}
LID_tAList::mLidX{GS} 7 Value(-width=>4, -join=>1)
GMutexAList::mListMutex! X{r}
TimeStamp_tAList::mListTimeStamp! X{GS}
UChar_tmMapNoneToX{gS} 7 PhonyEnum(-type=>ZMirFilter::Result_e,
ID_tmMaxIDX{g} 7 ValOut(-range=>[0,MAX_ID], -width=>8)
ID_tmMinIDX{g} 7 ValOut(-range=>[0,MAX_ID], -width=>8, -join=>1)
UShort_tZGlass::mMoonRefCount! X{G} 7 ValOut(-width=>4)
TStringZGlass::mNameX{RGE} 7 Textor()
Int_tZList::mNextId
EyeInfoVector*mObservers!
ZLink<ZHashList>mOrphansX{gS} L{}
ZLink<ZMirFilter>mProtectorX{gS} L{}
list<unsigned int>mPurgatoryList of released but still reserved ids
UInt_tmPurgedMSX{gS} 7 Value(-range=>[100,1e6,10], -width=>7, -join=>1)
ZQueen*ZGlass::mQueen! X{g}
GMutexmRayMutex!
GMutexZGlass::mReadMutex!
UShort_tZGlass::mRefCount! X{G} 7 ValOut(-width=>4, -join=>1)
list<SaturnInfo*>mReflectors!
Saturn*ZGlass::mSaturn! X{g}
ID_tZGlass::mSaturnIDX{G} 7 ValOut(-range=>[0,MAX_ID,1], -width=>10)
Float_tmSgmPurgLenX{gS} 7 Value(-range=>[0,1,1,100], -width=>5)
Int_tAList::mSizeX{G} 7 ValOut(-width=>5)
TimeStamp_tZGlass::mStampReqTring! X{GS} TimeStamp of last change that requires retriangulation
ZQueen::QueenState_emState! X{gS} 7 PhonyEnum(-const=>1, -width=>12)
GMutexmSubjectRefCntMutex!
GMutexmSubjectWriteMutex!
UShort_tZGlass::mSunRefCount! X{G} 7 ValOut(-width=>4, -join=>1)
TimeStamp_tZGlass::mTimeStamp! X{GS} TimeStamp of last change
TStringZGlass::mTitleX{RGE} 7 Textor()
ZQueen::ZeroRCPolicy_emZeroRCPolicyX{gS} 7 PhonyEnum()
lpZGlass_tmZombies! Lenses that are dead but still need to be deleted.
set<NameChangeCB*>*ZGlass::pspNameChangeCB!
set<RayAbsorber*>*ZGlass::pspRayAbsorber!
static GledNS::ClassInfo*AList::sap_AList_ci
static GledNS::LinkMemberInfo*sap_Deps_lmi
static GledNS::LinkMemberInfo*ZGlass::sap_Guard_lmi
static GledNS::LinkMemberInfo*sap_Orphans_lmi
static GledNS::LinkMemberInfo*sap_Protector_lmi
static GledNS::ClassInfo*ZGlass::sap_ZGlass_ci
static GledNS::ClassInfo*ZList::sap_ZList_ci
static GledNS::ClassInfo*ZNameMap::sap_ZNameMap_ci
static GledNS::ClassInfo*sap_ZQueen_ci

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void _init()
ZQueen(const Text_t* n = "ZQueen", const Text_t* t = 0)
~ZQueen()
void bootstrap()
 Initializes a new queen and creates mandatory lists.
 Called from ZKing.
 Not applicable for activation or instantiation of not Ruling Queens.
void embrace_of_life(ZComet& comet)
 Initializes *this* queen with unstreamed queen.
 Copies Links and List contents, no ref-counting is performed.
bool has_free_ids(ID_t n_needed)
ID_t next_free_id(ZQueen::QueenIDMap_i i)
ID_t assign_id(ZGlass* lens)
 Assigns an ID to lens.
void release_purgatory(ID_t n_needed)
 Releases ID-space occupied by recently dead lenses.
 Also performs deletion of lenses that were still referenced
 by viewers at their death-time.
void release_moon_purgatory(ID_t n_to_release)
 Mirrors purgatory release at moons.
 Also performs deletion of lenses that were still referenced
 by viewers at their death-time.
int release_zombies()
ZGlass* DemangleID(ID_t id)
 This should serve to properly demangle external references for comets.
 And check that the id is within the queen's dependencies.
ID_t CheckIn(ZGlass* lens)
void DepCheckMIR(ZMIR& mir)
 Allow beta/gamma from queens that *this* depends on + queen
 arguments if alpha is *this*.
void BlessMIR(ZMIR& mir)
 should check that the mir is valid and within deps.
 If whorequeen should accept new ones and append them.
 If light-queen with FollowDeps should append with broadcast
 PRIOR to returning from this method.
 Called from Saturn::Unfold() prior to locking and execution.
 Errors/non-conformance should be reported by throwing an exception.

 Oh yess ... btw ... queens can as well block all execs to their
 subjects. Eg, when bMIRActive of alpha is false.
 Per queen access control can be implemented here.
void AddDependency(ZQueen* new_dep)
Bool_t DependsOn(ZQueen* some_queen)
 Returns true if *this* depends on some_queen, i.e. if my lenses
 can reference lenses ruled by some_queen.
ZGlass* instantiate(FID_t fid, const Text_t* name = 0, const Text_t* title = 0)
ID_t InstantiateWAttach(LID_t new_lid, CID_t new_cid, const Text_t* name = 0, const Text_t* title = 0)
 PostMIR version.
 Instantiates a glass of FID(lid, cid) and attaches it to attach_to
 by using last part of the message, which should be a properly
 formulated Ctx call.
 Ctx for this call is:
 alpha ~ attach_to, beta ~ new glass, gamma ~ attach_gamma
 Returns ID to the caller (also via MirResult if set in MIR).
ID_t IncarnateWAttach()
 Incarnates a new glass from the buffer and then attaches it in the
 same manner as the above method.
 Links and list contents are rebuilt in accordance with queen's dependency
 state.
void MIRActivateLens(ZGlass* lens)
void MIRDeactivateLens(ZGlass* lens)
void put_lens_to_purgatory(ZGlass* lens)
void PutLensToPurgatory(ZGlass* lens)
 First step in the process of a lens removal.
 Stops all detached threads via Saturn::Freeze().
 Removes all references to a lens and sends Rays with RQN_death.
 Then emits MIR to PutLensToVoid(lens).
void PutListElementsToPurgatory(AList* list)
 Puts all elements of list having mQueen==this to purgatory.
 Copies list contents, clears the list and then purges
 individual elements. This optimizes removal procedure for
 large lists.
void PutLensToVoid(ID_t lens_id)
 Final step in lens removal.
 Endarks the lens.
 Clears up internal structures.
 Deletes the lens (or makes it a zombie).
void RemoveLens(ZGlass* lens)
 Initiates removal of lens. This is the method that should be called
 by user.
 If called as Flare broadcasting is suppressed.
 Does not have to be called under any lock as it shoots a MIR to
 itself to initiate the lens destruction.
void RemoveLenses(AList* list, Bool_t recurse = false)
 Remove elements of list. Does NOT cross queen boundaries.
 Spawned in a dedicated thread.
void remove_lens(ZGlass* lens)
 Low-level lens remove initiator. Called on queen's Sun.
 Only checks if lens is already dying.
void remove_lenses(AList* list, Bool_t recurse, Bool_t syncmode)
 Low-level massive lens remove initiator. Called on queen's Sun.
void ZeroRefCount(ZGlass* lens)
 Called by ZGlass upon hitting refcount of 0.
 mSubjectRefCntMutex is (and should be) locked prior to call.
void CleanOrphanage()
void CreateReflection(TBuffer& buf)
 Virtual. Creates reflection that can be invoked to produce a copy
 of queen-space on other Saturn.
 ZQueen itself just creates and streams a ZComet.
void InvokeReflection(TBuffer& buf)
 Virtual. Invokes reflection created by a higher Saturn and thus
 begins mirroring the object-space.
 For ZQueen this involves unstreaming of ZComet and calling UnfoldFrom().
void RevokeReflection()
 Virtual. Cleans up queen-space, putting it back into non-ruling state.
ZComet* MakeComet()
 Produces Comet of type ST_Queen.
 Contains all glasses ruled by the queen.
 External references are streamed as IDs and can be reconstructed
 at lower Moons.
 Used for producing a snapshot of Queen-space to be sent to a Moon.
void AdoptComet(AList* top_dest, AList* orphan_dest, ZComet* comet)
 Adopts a Comet of type ST_CometBag.
 External references of a Comet are ignored.
void UnfoldFrom(ZComet& comet)
 Unfolds a dormant (not bRuling) queen from a comet of type ST_Queen
 and makes it a ruling queen.
 The incoming queen and its Deps are replaced with already present ones.
 Does NOT call CheckIn ... does it directly with simultaneous building of
 free block list.
 At the end calls AdUnfoldment on all lenses.
void add_reflector(SaturnInfo* moon)
void remove_reflector(SaturnInfo* moon)
void BroadcastMIRToNonRulingReflections(ZMIR& mir)
void BasicQueenChange(ZMIR& mir)
void AddObserver(EyeInfo* ei)
void RemoveObserver(EyeInfo* ei)
void EmitRay(auto_ptr<Ray>& ray)
 eventually lock mRayMutex and do direct ray delivery
void PrintEyeConnections()
void PrintObservedLenses(Bool_t dump_views = false)
void ListAll()
 attempt at looking at all subjects based on ids
 else might be forced into having local hash.
LensDetails* produce_lens_details(ID_t id, ZGlass* lens)
ZQueen(const Text_t* n = "ZQueen", const Text_t* t = 0)
ZQueen(ID_t span, const Text_t* n = "ZQueen", const Text_t* t = 0)
void SubjectWriteLock()
 Subject Write/RefCnt locks.
void SubjectWriteUnlock()
void SubjectRefCntLock()
void SubjectRefCntUnlock()