Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TPacketizerMulti.h
Go to the documentation of this file.
1// $Id$
2// Author: G. Ganis Jan 2010
3
4/*************************************************************************
5 * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TPacketizerMulti
13#define ROOT_TPacketizerMulti
14
15//////////////////////////////////////////////////////////////////////////
16// //
17// TPacketizerMulti //
18// //
19// This class allows to do multiple runs in the same query; each run //
20// can be a, for example, different dataset or the same dataset with //
21// entry list. //
22// The multiple packetizer conatins a list of packetizers which are //
23// processed in turn. //
24// The bit TSelector::kNewRun is set in the TSelector object when a new //
25// packetizer is used. //
26// //
27//////////////////////////////////////////////////////////////////////////
28
29#include "TVirtualPacketizer.h"
30
31
32class TIter;
33class TList;
34class TMap;
35class TMessage;
37class TSlave;
38
40
41private:
42 TList *fPacketizers; // Packetizers to be processed
43 TIter *fPacketizersIter; // Iterator on fPacketizers
44 TVirtualPacketizer *fCurrent; // Packetizer being currently processed
45 TMap *fAssignedPack; // Map {worker,packetizer} of lat assignement
46
48 TPacketizerMulti(const TPacketizerMulti&); // no implementation, will generate
49 void operator=(const TPacketizerMulti&); // error on accidental usage
50
53
54public:
55 TPacketizerMulti(TDSet *dset, TList *slaves, Long64_t first, Long64_t num,
57 ~TPacketizerMulti() override;
58
59 TDSetElement *GetNextPacket(TSlave *wrk, TMessage *r) override;
60
62 { if (fCurrent) return fCurrent->GetEstEntriesProcessed(f,ent,bytes,calls);
63 return 1; }
64 Float_t GetCurrentRate(Bool_t &all) override { all = kTRUE;
65 return (fCurrent? fCurrent->GetCurrentRate(all) : 0.); }
66 void StopProcess(Bool_t abort, Bool_t stoptimer = kFALSE) override {
67 if (fCurrent) fCurrent->StopProcess(abort, stoptimer);
68 TVirtualPacketizer::StopProcess(abort, stoptimer); }
69 void MarkBad(TSlave *wrk, TProofProgressStatus *st, TList **missing) override
70 { if (fCurrent) fCurrent->MarkBad(wrk, st, missing); return; }
71 Int_t AddProcessed(TSlave *wrk, TProofProgressStatus *st, Double_t lat, TList **missing) override
72 { if (fCurrent) return fCurrent->AddProcessed(wrk, st, lat, missing);
73 return -1; }
74
75 Int_t GetActiveWorkers() override { if (fCurrent) return fCurrent->GetActiveWorkers(); return 0; }
76
77 ClassDefOverride(TPacketizerMulti,0) //Generate work packets for parallel processing
78};
79
80#endif
#define f(i)
Definition RSha256.hxx:104
float Float_t
Definition RtypesCore.h:57
constexpr Bool_t kFALSE
Definition RtypesCore.h:94
long long Long64_t
Definition RtypesCore.h:69
constexpr Bool_t kTRUE
Definition RtypesCore.h:93
#define ClassDefOverride(name, id)
Definition Rtypes.h:346
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void input
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t bytes
Manages an element of a TDSet.
Definition TDSet.h:66
This class implements a data set to be used for PROOF processing.
Definition TDSet.h:153
A doubly linked list.
Definition TList.h:38
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
Definition TMap.h:40
This class allows to do multiple runs in the same query; each run can be a, for example,...
TVirtualPacketizer * CreatePacketizer(TDSet *dset, TList *wrks, Long64_t first, Long64_t num, TList *input, TProofProgressStatus *st)
Create a packetizer for dataset 'dset' Return null on failure.
void operator=(const TPacketizerMulti &)
TVirtualPacketizer * fCurrent
TPacketizerMulti(const TPacketizerMulti &)
Int_t AddProcessed(TSlave *wrk, TProofProgressStatus *st, Double_t lat, TList **missing) override
Int_t GetActiveWorkers() override
~TPacketizerMulti() override
Destructor.
Int_t GetEstEntriesProcessed(Float_t f, Long64_t &ent, Long64_t &bytes, Long64_t &calls) override
void StopProcess(Bool_t abort, Bool_t stoptimer=kFALSE) override
Stop process.
void MarkBad(TSlave *wrk, TProofProgressStatus *st, TList **missing) override
Float_t GetCurrentRate(Bool_t &all) override
TDSetElement * GetNextPacket(TSlave *wrk, TMessage *r) override
Get next packet from the current packetizer.
Container class for processing statistics.
Class describing a PROOF worker server.
Definition TSlave.h:46
The packetizer is a load balancing object created for each query.
virtual Int_t GetEstEntriesProcessed(Float_t, Long64_t &ent, Long64_t &bytes, Long64_t &calls)
virtual Int_t AddProcessed(TSlave *, TProofProgressStatus *, Double_t, TList **)
virtual Float_t GetCurrentRate(Bool_t &all)
virtual void MarkBad(TSlave *, TProofProgressStatus *, TList **)
virtual void StopProcess(Bool_t abort, Bool_t stoptimer=kFALSE)
Stop process.
virtual Int_t GetActiveWorkers()