class TProofServ: public TApplication


TProofServ is the PROOF server. It can act either as the master
server or as a slave server, depending on its startup arguments. It
receives and handles message coming from the client or from the
master server.

Function Members (Methods)

voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual const char*TApplication::ApplicationName() const
static Bool_tTQObject::AreAllSignalsBlocked()
Bool_tTQObject::AreSignalsBlocked() const
Int_tTApplication::Argc() const
char**TApplication::Argv() const
char*TApplication::Argv(Int_t index) const
static Bool_tTQObject::BlockAllSignals(Bool_t b)
Bool_tTQObject::BlockSignals(Bool_t b)
virtual voidTObject::Browse(TBrowser* b)
virtual voidTQObject::ChangedBy(const char* method)SIGNAL
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
voidTQObject::CollectClassSignalLists(TList& list, TClass* cls)
virtual Int_tTObject::Compare(const TObject* obj) const
Bool_tTQObject::Connect(const char* signal, const char* receiver_class, void* receiver, const char* slot)
static Bool_tTQObject::Connect(TQObject* sender, const char* signal, const char* receiver_class, void* receiver, const char* slot)
static Bool_tTQObject::Connect(const char* sender_class, const char* signal, const char* receiver_class, void* receiver, const char* slot)
virtual voidTQObject::Connected(const char*)
virtual voidTObject::Copy(TObject& object) const
Int_tCopyFromCache(const char* name, Bool_t cpbin)
Int_tCopyToCache(const char* name, Int_t opt = 0)
static voidTApplication::CreateApplication()
virtual Int_tCreateServer()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual voidTQObject::Destroyed()SIGNAL
virtual voidDisableTimeout()
Bool_tTQObject::Disconnect(const char* signal = 0, void* receiver = 0, const char* slot = 0)
static Bool_tTQObject::Disconnect(TQObject* sender, const char* signal = 0, void* receiver = 0, const char* slot = 0)
static Bool_tTQObject::Disconnect(const char* class_name, const char* signal, void* receiver = 0, const char* slot = 0)
virtual voidTQObject::Disconnected(const char*)
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
voidTQObject::Emit(const char* signal)
voidTQObject::Emit(const char* signal, Long_t* paramArr)
voidTQObject::Emit(const char* signal, const char* params)
voidTQObject::Emit(const char* signal, Double_t param)
voidTQObject::Emit(const char* signal, Long_t param)
voidTQObject::Emit(const char* signal, Long64_t param)
voidTQObject::Emit(const char* signal, Bool_t param)
voidTQObject::Emit(const char* signal, Char_t param)
voidTQObject::Emit(const char* signal, UChar_t param)
voidTQObject::Emit(const char* signal, Short_t param)
voidTQObject::Emit(const char* signal, UShort_t param)
voidTQObject::Emit(const char* signal, Int_t param)
voidTQObject::Emit(const char* signal, UInt_t param)
voidTQObject::Emit(const char* signal, ULong_t param)
voidTQObject::Emit(const char* signal, ULong64_t param)
voidTQObject::Emit(const char* signal, Float_t param)
voidTQObject::EmitVA(const char* signal, Int_t nargs, va_list va)
voidTQObject::EmitVA<>(const char* signal_name, Int_t)
virtual voidEnableTimeout()
virtual voidTObject::Error(const char* method, const char* msgfmt) const
static voidErrorHandler(Int_t level, Bool_t abort, const char* location, const char* msg)
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)
static Long_tTApplication::ExecuteFile(const char* file, Int_t* error = 0, Bool_t keep = kFALSE)
TApplication::EExitOnExceptionTApplication::ExitOnException(TApplication::EExitOnException opt = kExit)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
static voidFilterLocalroot(TString& path, const char* url = "root://dum/")
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TObject*Get(const char* namecycle)
Int_tGetActSessions() const
virtual TApplicationImp*TApplication::GetApplicationImp()
static TList*TApplication::GetApplications()
TApplication*TApplication::GetAppRemote() const
const char*GetConfDir() const
const char*GetConfFile() const
Float_tGetCpuTime() const
const char*GetDataDir() const
const char*GetDataDirOpts() const
static TMap*GetDataSetNodeMap(TFileCollection* fc, TString& emsg)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Float_tGetEffSessions() const
TList*GetEnabledPackages() const
const char*GetGroup() const
Int_tGetGroupId() const
Int_tGetGroupSize() const
virtual const char*TObject::GetIconName() const
const char*TApplication::GetIdleCommand() const
const char*GetImage() const
TList*TQObject::GetListOfClassSignals() const
TList*TQObject::GetListOfConnections() const
TList*TQObject::GetListOfSignals() const
static voidGetLocalServer(TString& dsrv)
Int_tGetLogLevel() const
static Float_tGetMemHWM()
static Float_tGetMemStop()
Long64_tGetMsgSizeHWM() const
virtual const char*TObject::GetName() const
TDSetElement*GetNextPacket(Long64_t totalEntries = -1)
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual voidGetOptions(Int_t* argc, char** argv)
const char*GetOrdinal() const
const char*GetPackageDir() const
const char*GetPrefix() const
TProof*GetProof() const
Int_tGetProtocol() const
Int_tGetQuerySeqNum() const
Float_tGetRealTime() const
static Long_tGetResMemMax()
const char*GetService() const
const char*GetSessionDir() const
const char*GetSessionTag() const
TSignalHandler*TApplication::GetSignalHandler() const
TSocket*GetSocket() const
virtual const char*TObject::GetTitle() const
const char*GetTopSessionTag() const
Int_tGetTotSessions() const
virtual UInt_tTObject::GetUniqueID() const
const char*GetUser() const
static Long_tGetVirtMemMax()
const char*GetWorkDir() const
virtual TProofServ::EQueryActionGetWorkers(TList* workers, Int_t& prioritychange, Bool_t resume = kFALSE)
virtual voidHandleException(Int_t sig)
virtual voidTApplication::HandleIdleTimer()SIGNAL
virtual voidHandleSigPipe()
virtual voidHandleSocketInput()
virtual Int_tHandleSocketInput(TMessage* mess, Bool_t all)
virtual voidHandleTermination()
virtual Bool_tTApplication::HandleTermInput()
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual voidHandleUrgentData()
virtual Bool_tTQObject::HasConnection(const char* signal_name) const
virtual ULong_tTObject::Hash() const
virtual voidTApplication::Hide()
virtual voidTQObject::HighPriority(const char* signal_name, const char* slot_name = 0)
virtual voidTApplication::Iconify()
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 voidTApplication::Init()
TObjArray*TApplication::InputFiles() const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
static Bool_tIsActive()
virtual Bool_tTApplication::IsCmdThread()
Bool_tIsEndMaster() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tIsMaster() const
Bool_tTObject::IsOnHeap() const
Bool_tIsParallel() const
Bool_tTApplication::IsRunning() const
virtual Bool_tTObject::IsSortable() const
Bool_tIsTopMaster() const
Bool_tTObject::IsZombie() const
virtual voidTApplication::KeyPressed(Int_t key)SIGNAL
virtual voidTApplication::LineProcessed(const char* line)SIGNAL
voidLogToMaster(Bool_t on = kTRUE)
virtual voidTApplication::Lower()
virtual voidTQObject::LowPriority(const char* signal_name, const char* slot_name = 0)
virtual voidTApplication::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual voidTQObject::Message(const char* msg)SIGNAL
static voidTApplication::NeedGraphicsLibs()
Bool_tTApplication::NoLogoOpt() const
Bool_tTApplication::NoLogOpt() const
virtual Bool_tTObject::Notify()
virtual Int_tTQObject::NumberOfConnections() const
virtual Int_tTQObject::NumberOfSignals() const
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
virtual voidTApplication::Open()
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
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)
TProofServ&operator=(const TProofServ&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* option = "") const
virtual Long_tTApplication::ProcessFile(const char* file, Int_t* error = 0, Bool_t keep = kFALSE)
virtual Long_tTApplication::ProcessLine(const char* line, Bool_t sync = kFALSE, Int_t* error = 0)
Bool_tTApplication::QuitOpt() const
virtual voidTApplication::Raise()
virtual Int_tTObject::Read(const char* name)
Int_tReceiveFile(const char* file, Bool_t bin, Long64_t size)
virtual voidTObject::RecursiveRemove(TObject* obj)
static Int_tRegisterDataSets(TList* in, TList* out, TDataSetManager* dsm, TString& e)
virtual voidReleaseWorker(const char*)
virtual voidTApplication::RemoveIdleTimer()
voidReset(const char* dir)
voidTObject::ResetBit(UInt_t f)
static voidResolveKeywords(TString& fname, const char* path = 0)
Bool_tTApplication::ReturnFromRun() const
virtual voidTApplication::ReturnPressed(char* text)SIGNAL
virtual voidRun(Bool_t retrn = kFALSE)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
virtual Int_tSendAsynMessage(const char* msg, Bool_t lf = kTRUE)
virtual voidSendLogFile(Int_t status = 0, Int_t start = -1, Int_t end = -1)
voidSendParallel(Bool_t async = kFALSE)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTApplication::SetEchoMode(Bool_t mode)
static FILE*SetErrorHandlerFile(FILE* ferr)
virtual voidTApplication::SetIdleTimer(UInt_t idleTimeInSec, const char* command)
static voidSetLastEntry(Long64_t lastentry)
static voidSetLastMsg(const char* lastmsg)
static voidTObject::SetObjectStat(Bool_t stat)
voidTApplication::SetReturnFromRun(Bool_t ret)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidTApplication::Show()
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidTApplication::StartIdleing()
virtual voidTApplication::StopIdleing()
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
virtual Int_tTApplication::TabCompletionHook(char* buf, int* pLoc, ostream& out)
virtual voidTerminate(Int_t status)
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
static TProofServ*This()
TProofServ(const TProofServ&)
TProofServ(Int_t* argc, char** argv, FILE* flog = 0)
Int_tUpdateSessionStatus(Int_t xst = -1)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
const char*TApplication::WorkingDirectory() 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
static Int_tTQObject::CheckConnectArgs(TQObject* sender, TClass* sender_class, const char* signal, TClass* receiver_class, const char* slot)
static voidTApplication::Close(TApplication* app)
static TStringTQObject::CompressName(const char* method_name)
static Bool_tTQObject::ConnectToClass(TQObject* sender, const char* signal, TClass* receiver_class, void* receiver, const char* slot)
static Bool_tTQObject::ConnectToClass(const char* sender_class, const char* signal, TClass* receiver_class, void* receiver, const char* slot)
virtual voidDeletePlayer()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
virtual Int_tFork()
virtual void*TQObject::GetSender()
virtual const char*TQObject::GetSenderClassName() const
virtual voidHandleArchive(TMessage* mess, TString* slb = 0)
virtual Int_tHandleCache(TMessage* mess, TString* slb = 0)
virtual voidHandleCheckFile(TMessage* mess, TString* slb = 0)
virtual Int_tHandleDataSets(TMessage* mess, TString* slb = 0)
virtual voidHandleFork(TMessage* mess)
virtual Int_tHandleLibIncPath(TMessage* mess)
virtual voidHandleProcess(TMessage* mess, TString* slb = 0)
virtual voidHandleQueryList(TMessage* mess)
virtual voidHandleRemove(TMessage* mess, TString* slb = 0)
virtual voidHandleRetrieve(TMessage* mess, TString* slb = 0)
virtual voidHandleSubmerger(TMessage* mess)
virtual Int_tHandleWorkerLists(TMessage* mess)
virtual voidTApplication::Help(const char* line)
virtual voidTApplication::LoadGraphicsLibs()
virtual voidTApplication::MakeBatch()
virtual voidMakePlayer()
static TApplication*TApplication::Open(const char* url, Int_t debug, const char* script)
static Int_tTApplication::ParseRemoteLine(const char* ln, TString& hostdir, TString& user, Int_t& dbg, TString& script)
virtual voidProcessNext(TString* slb = 0)
virtual Long_tTApplication::ProcessRemote(const char* line, Int_t* error = 0)
voidTApplication::SetSignalHandler(TSignalHandler* sh)
virtual Int_tSetup()
Bool_tUnlinkDataDir(const char* path)
Bool_tAcceptResults(Int_t connections, TVirtualProofPlayer* mergerPlayer)
Int_tCleanupWaitingQueries(Bool_t del = kTRUE, TList* qls = 0)
Int_tGetCompressionLevel() const
TProofQueryResult*MakeQueryResult(Long64_t nentries, const char* opt, TList* inl, Long64_t first, TDSet* dset, const char* selec, TObject* elist)
Int_tOldAuthSetup(TString& wconf)
Int_tQueueQuery(TProofQueryResult* pq)
voidRedirectOutput(const char* dir = 0, const char* mode = "w")
Int_tSendResults(TSocket* sock, TList* outlist = 0, TQueryResult* pq = 0)
voidSetIdle(Bool_t st = kTRUE)
voidSetQueryRunning(TProofQueryResult* pq)
Int_tUnloadPackage(const char* package)

Data Members

static TApplication::EExitOnExceptionTApplication::kAbort
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TApplication::EStatusBitsTApplication::kDefaultApplication
static TApplication::EExitOnExceptionTApplication::kDontExit
static TApplication::EExitOnExceptionTApplication::kExit
static TApplication::EFileBitsTApplication::kExpression
static TObject::EStatusBitsTObject::kHasUUID
static TProofServ::EStatusBitskHighMemory
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TApplication::EStatusBitsTApplication::kProcessRemotely
static TProofServ::EQueryActionkQueryEnqueued
static TProofServ::EQueryActionkQueryModify
static TProofServ::EQueryActionkQueryOK
static TProofServ::EQueryActionkQueryStop
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
TApplication*TApplication::fAppRemoteCurrent remote application, if defined
TList*TQObject::fListOfConnections! list of connections to this object
TList*TQObject::fListOfSignals! list of signals from this object
Bool_tTQObject::fSignalsBlocked! flag used for suppression of signals
static Bool_tTQObject::fgAllSignalsBlockedflag used for suppression of all signals
static TList*TApplication::fgApplicationsList of available applications
static Long64_tfgLastEntryLast entry before exception
static TStringfgLastMsgMessage about status before exception
Int_tfActSessionsTotal number of active PROOF sessions on the cluster
TStringfAdminPathadmin path for this session
TStringfArchivePathdefault archive path
TStringfCacheDirdirectory containing cache of user files
TProofLockPath*fCacheLockcache dir locker
Int_tfCompressMsgCompression level for messages
TStopwatchfComputemeasures time spent processing a packet
TStringfConfDirdirectory containing cluster config information
TStringfConfFilefile containing config information
Float_tfCpuTimeCPU time spent executing commands
TStringfDataDirdirectory containing data files produced during queries
TStringfDataDirOptsUrl type options for fDataDir
TStringfDataSetDirdirectory containing info about known data sets
TDataSetManager*fDataSetManagerdataset manager
TDataSetManagerFile*fDataSetStgReporepository for staging requests
Float_tfEffSessionsEffective Number of PROOF sessions on the assigned machines
TList*fEnabledPackageslist of enabled packages
Bool_tfEndMastertrue for a master in direct contact only with workers
THashList*fGlobalPackageDirListlist of directories containing global packages libs
TStringfGroupgroup the user belongs to
Int_tfGroupIdslave unique id in the active slave group
Int_tfGroupPrioritypriority of group the user belongs to (0 - 100)
Int_tfGroupSizesize of the active slave group
Long64_tfHWMBoxSizeHigh-Water-Mark on the sandbox size
Bool_tfIdleTRUE if idle
TIdleTOTimer*fIdleTOTimerTimer used to control children state
TStringfImageimage name of the session
TFileHandler*fInputHandlerInput socket handler
Bool_tfInterruptif true macro execution will be stopped
TStopwatchfLatencymeasures latency of packet requests
FILE*fLogFilelog file
Int_tfLogFileDeslog file descriptor
Long64_tfLogFileMaxSizemax size for log files (enabled if > 0)
Int_tfLogLeveldebug logging level
Bool_tfMasterServtrue if we are a master server
Long64_tfMaxBoxSizeMax size of the sandbox
Int_tfMaxQueriesMax number of queries fully kept
Int_tfMergedWorkersNumber of workers merged
TMonitor*fMergingMonitorMonitor for merging sockets
TServerSocket*fMergingSocketSocket used for merging outputs if submerger
Long64_tfMsgSizeHWMHigh-Water-Mark on the size of messages with results
Int_tfNcmdcommand history number
TStringfOrdinalslave ordinal number
TStringfOutputFilepath with the temporary results of the current or last query
TStringfPackageDirdirectory containing packages and user libs
TProofLockPath*fPackageLockpackage dir locker
TVirtualProofPlayer*fPlayeractual player
TStringfPrefixPrefix identifying the node
TProof*fProofPROOF talking to slave servers
Int_tfProtocolprotocol version number
TQueryResultManager*fQMgrQuery-result manager
TMutex*fQMtxTo protect async msg queue
TStringfQueryDirdirectory containing query results and status
TProofLockPath*fQueryLockquery dir locker
Int_tfQuerySeqNumsequential number of the current or last query
TList*fQueuedMsglist of messages waiting to be processed
Float_tfRealTimereal time spent executing commands
Bool_tfRealTimeLogTRUE if log messages should be send back in real-time
TReaperTimer*fReaperTimerTimer used to control children state
TStopwatchfSaveOutputmeasures time spent saving the partial result
Bool_tfSendLogToMasterOn workers, controls logs sending to master
TStringfServiceservice we are running, either "proofserv" or "proofslave"
TStringfSessionDirdirectory containing session dependent files
TStringfSessionTagtag for the server session
TShutdownTimer*fShutdownTimerTimer used to shutdown out-of-control sessions
TSocket*fSocketsocket connection to client
TStringfTopSessionTagtag for the global session
Int_tfTotSessionsTotal number of PROOF sessions on the cluster
TStringfUseruser as which we run
TList*fWaitingQuerieslist of TProofQueryResult waiting to be processed
TStringfWorkDirdirectory containing all proof related info
static FILE*fgErrorHandlerFileFile where to log
static Int_tfgLogToSysLog>0 sent to syslog too
static Float_tfgMemHWMThreshold fraction of max for warning and finer monitoring
static Float_tfgMemStopFraction of max for stop processing
static Int_tfgRecursiveKeep track of recursive inputs during processing
static Long_tfgResMemMaxHard limit on the resident memory checked
static TStringfgSysLogEntitylogging entity (<user>:<group>)
static TStringfgSysLogServicename of the syslog service (eg: proofm-0, proofw-0.67)
static Long_tfgVirtMemMaxHard limit enforced by the system (in kB)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TProofServ(Int_t* argc, char** argv, FILE* flog = 0)
 Main constructor. Create an application environment. The TProofServ
 environment provides an eventloop via inheritance of TApplication.
 Actual server creation work is done in CreateServer() to allow
Int_t CreateServer()
 Finalize the server setup. If master, create the TProof instance to talk
 to the worker or submaster nodes.
 Return 0 on success, -1 on error
 Cleanup. Not really necessary since after this dtor there is no
 live anyway.
Int_t CatMotd()
 Print message of the day (in the file pointed by the env PROOFMOTD
 or from fConfDir/etc/proof/motd). The motd is not shown more than
 once a day. If the file pointed by env PROOFNOPROOF exists (or the
 file fConfDir/etc/proof/noproof exists), show its contents and close
 the connection.
TObject * Get(const char* namecycle)
 Get object with name "name;cycle" (e.g. "aap;2") from master or client.
 This method is called by TDirectory::Get() in case the object can not
 be found locally.
void RestartComputeTime()
 Reset the compute time
TDSetElement * GetNextPacket(Long64_t totalEntries = -1)
 Get next range of entries to be processed on this server.
void GetOptions(Int_t* argc, char** argv)
 Get and handle command line options. Fixed format:
 "proofserv"|"proofslave" <confdir>
void HandleSocketInput()
 Handle input coming from the client or from the master server.
Int_t HandleSocketInput(TMessage* mess, Bool_t all)
 Process input coming from the client or from the master server.
 If 'all' is kFALSE, process only those messages that can be handled
 during query processing.
 Returns -1 if the message could not be processed, <-1 if something went
 wrong. Returns 1 if the action may have changed the parallel state.
 Returns 2 if the message has to be enqueued.
 Returns 0 otherwise
Bool_t AcceptResults(Int_t connections, TVirtualProofPlayer* mergerPlayer)
 Accept and merge results from a set of workers
void HandleUrgentData()
 Handle Out-Of-Band data sent by the master or client.
void HandleSigPipe()
 Called when the client is not alive anymore (i.e. when kKeepAlive
 has failed).
Bool_t IsParallel() const
 True if in parallel mode.
void Print(Option_t* option = "") const
 Print status of slave server.
void RedirectOutput(const char* dir = 0, const char* mode = "w")
 Redirect stdout to a log file. This log file will be flushed to the
 client or master after each command.
void Reset(const char* dir)
 Reset PROOF environment to be ready for execution of next command.
Int_t ReceiveFile(const char* file, Bool_t bin, Long64_t size)
 Receive a file, either sent by a client or a master server.
 If bin is true it is a binary file, other wise it is an ASCII
 file and we need to check for Windows \r tokens. Returns -1 in
 case of error, 0 otherwise.
void Run(Bool_t retrn = kFALSE)
 Main server eventloop.
void SendLogFile(Int_t status = 0, Int_t start = -1, Int_t end = -1)
 Send log file to master.
 If start > -1 send only bytes in the range from start to end,
 if end <= start send everything from start.
void SendStatistics()
 Send statistics of slave server to master or client.
void SendParallel(Bool_t async = kFALSE)
 Send number of parallel nodes to master or client.
Int_t UnloadPackage(const char* package)
 Removes link to package in working directory,
 removes entry from include path,
 removes entry from enabled package list,
 does not currently remove entry from interpreter include path.
 Returns -1 in case of error, 0 otherwise.
Int_t UnloadPackages()
 Unloads all enabled packages. Returns -1 in case of error, 0 otherwise.
Int_t Setup()
 Print the ProofServ logo on standard output.
 Return 0 on success, -1 on failure
Int_t SetupCommon()
 Common part (between TProofServ and TXProofServ) of the setup phase.
 Return 0 on success, -1 on error
void Terminate(Int_t status)
 Terminate the proof server.
Bool_t UnlinkDataDir(const char* path)
 Scan recursively the datadir and unlink it if empty
 Return kTRUE if it can be unlinked, kFALSE otherwise
Bool_t IsActive()
 Static function that returns kTRUE in case we are a PROOF server.
TProofServ * This()
 Static function returning pointer to global object gProofServ.
 Mainly for use via CINT, where the gProofServ symbol might be
 deleted from the symbol table.
Int_t OldAuthSetup(TString& wconf)
 Setup authentication related stuff for old versions.
 Provided for backward compatibility.
TProofQueryResult * MakeQueryResult(Long64_t nentries, const char* opt, TList* inl, Long64_t first, TDSet* dset, const char* selec, TObject* elist)
 Create a TProofQueryResult instance for this query.
void SetQueryRunning(TProofQueryResult* pq)
 Set query in running state.
void HandleArchive(TMessage* mess, TString* slb = 0)
 Handle archive request.
TMap * GetDataSetNodeMap(TFileCollection* fc, TString& emsg)
 Get a map {server-name, list-of-files} for collection 'fc' to be used in
 TPacketizerFile. Returns a pointer to the map (ownership of the caller).
 Or (TMap *)0 and an error message in emsg.
void HandleProcess(TMessage* mess, TString* slb = 0)
 Handle processing request.
Int_t SendResults(TSocket* sock, TList* outlist = 0, TQueryResult* pq = 0)
 Sends all objects from the given list to the specified socket
void ProcessNext(TString* slb = 0)
 process the next query from the queue of submitted jobs.
 to be called on the top master only.
Int_t RegisterDataSets(TList* in, TList* out, TDataSetManager* dsm, TString& e)
 Register TFileCollections in 'out' as datasets according to the rules in 'in'
void HandleQueryList(TMessage* mess)
 Handle request for list of queries.
void HandleRemove(TMessage* mess, TString* slb = 0)
 Handle remove request.
void HandleRetrieve(TMessage* mess, TString* slb = 0)
 Handle retrieve request.
Int_t HandleLibIncPath(TMessage* mess)
 Handle lib, inc search paths modification request
void HandleCheckFile(TMessage* mess, TString* slb = 0)
 Handle file checking request.
Int_t HandleCache(TMessage* mess, TString* slb = 0)
 Handle here all cache and package requests.
Int_t HandleWorkerLists(TMessage* mess)
 Handle here all requests to modify worker lists
FILE * SetErrorHandlerFile(FILE* ferr)
 Set the file stream where to log (default stderr).
 If ferr == 0 the default is restored.
 Returns current setting.
void ErrorHandler(Int_t level, Bool_t abort, const char* location, const char* msg)
 The PROOF error handler function. It prints the message on fgErrorHandlerFile and
 if abort is set it aborts the application.
Int_t CopyFromCache(const char* name, Bool_t cpbin)
 Retrieve any files related to 'macro' from the cache directory.
 If 'cpbin' is true, the associated binaries are retrieved as well.
 Returns 0 on success, -1 otherwise
Int_t CopyToCache(const char* name, Int_t opt = 0)
 Copy files related to 'macro' to the cache directory.
 Action depends on 'opt':

    opt = 0         copy 'macro' to cache and delete from cache any binary
                    related to name; e.g. if macro = bla.C, the binaries are
          , bla_C.rootmap, ...
    opt = 1         copy the binaries related to macro to the cache

 Returns 0 on success, -1 otherwise
void MakePlayer()
 Make player instance.
void DeletePlayer()
 Delete player instance.
Int_t GetPriority()
 Get the processing priority for the group the user belongs too. This
 priority is a number (0 - 100) determined by a scheduler (third
 party process) based on some basic priority the group has, e.g.
 we might want to give users in a specific group (e.g. promptana)
 a higher priority than users in other groups, and on the analysis
 of historical logging data (i.e. usage of CPU by the group in a
 previous time slot, as recorded in TPerfStats::WriteQueryLog()).

 Currently the group priority is obtained by a query in a SQL DB
 table proofpriority, which has the format:
 CREATE TABLE proofpriority (
   group         VARCHAR(32) NOT NULL,
   priority      INT
Int_t SendAsynMessage(const char* msg, Bool_t lf = kTRUE)
 Send an asychronous message to the master / client .
 Masters will forward up the message to the client.
 The client prints 'msg' of stderr and adds a '\n'/'\r' depending on
 'lf' being kTRUE (default) or kFALSE.
 Returns the return value from TSocket::Send(TMessage &) .
void FlushLogFile()
 Reposition the read pointer in the log file to the very end.
 This allows to "hide" useful debug messages during normal operations
 while preserving the possibility to have them in case of problems.
void TruncateLogFile()
 Truncate the log file to the 80% of the required max size if this
 is set.
void HandleException(Int_t sig)
 Exception handler: we do not try to recover here, just exit.
Int_t HandleDataSets(TMessage* mess, TString* slb = 0)
 Handle here requests about datasets.
void HandleSubmerger(TMessage* mess)
 Handle a message of type kPROOF_SUBMERGER
void HandleFork(TMessage* mess)
 Cloning itself via fork. Not implemented
Int_t Fork()
 Fork a child.
 If successful, return 0 in the child process and the child pid in the parent
 process. The child pid is registered for reaping.
 Return <0 in the parent process in case of failure.
void ResolveKeywords(TString& fname, const char* path = 0)
 Replace <ord>, <user>, <u>, <group>, <stag>, <qnum>, <file>, <rver> and
 <build> placeholders in fname.
 Here, <rver> is the root version in integer form, e.g. 53403, and <build> a
 string includign version, architecture and compiler version, e.g.
 '53403_linuxx8664gcc_gcc46' .
Int_t GetSessionStatus()
 Return the status of this session:
     0     idle
     1     running
     2     being terminated  (currently unused)
     3     queued
     4     idle timed-out (not set in here but in TIdleTOTimer::Notify)
 This is typically run in the reader thread, so access needs to be protected
Int_t UpdateSessionStatus(Int_t xst = -1)
 Update the session status in the relevant file. The status is taken from
 GetSessionStatus() unless xst >= 0, in which case xst is used.
 Return 0 on success, -errno if the file could not be opened.
Bool_t IsIdle()
 Return the idle status
void SetIdle(Bool_t st = kTRUE)
 Change the idle status
Bool_t IsWaiting()
 Return kTRUE if the session is waiting for the OK to start processing
Int_t WaitingQueries()
 Return the number of waiting queries
Int_t QueueQuery(TProofQueryResult* pq)
 Add a query to the waiting list
 Returns the number of queries in the list
TProofQueryResult * NextQuery()
 Get the next query from the waiting list.
 The query is removed from the list.
Int_t CleanupWaitingQueries(Bool_t del = kTRUE, TList* qls = 0)
 Cleanup the waiting queries list. The objects are deleted if 'del' is true.
 If 'qls' is non null, only objects in 'qls' are removed.
 Returns the number of cleanup queries
void SetLastMsg(const char* lastmsg)
 Set the message to be sent back in case of exceptions
void SetLastEntry(Long64_t lastentry)
 Set the last entry before exception
Long_t GetVirtMemMax()
 VirtMemMax getter
Long_t GetResMemMax()
 ResMemMax getter
Float_t GetMemHWM()
 MemHWM getter
Float_t GetMemStop()
 MemStop getter
void GetLocalServer(TString& dsrv)
 Extract LOCALDATASERVER info in 'dsrv'
void FilterLocalroot(TString& path, const char* url = "root://dum/")
 If 'path' is local and 'dsrv' is Xrootd, apply 'path.Localroot' settings,
 if any.
 The final path via the server is dsrv+path.
Int_t GetCompressionLevel() const
TProofServ(Int_t* argc, char** argv, FILE* flog = 0)
TProof * GetProof() const
{ return fProof; }
const char * GetService() const
{ return fService; }
const char * GetConfDir() const
{ return fConfDir; }
const char * GetConfFile() const
{ return fConfFile; }
const char * GetUser() const
{ return fUser; }
const char * GetGroup() const
{ return fGroup; }
const char * GetWorkDir() const
{ return fWorkDir; }
const char * GetImage() const
{ return fImage; }
const char * GetSessionTag() const
{ return fSessionTag; }
const char * GetTopSessionTag() const
{ return fTopSessionTag; }
const char * GetSessionDir() const
{ return fSessionDir; }
const char * GetPackageDir() const
{ return fPackageDir; }
const char * GetDataDir() const
{ return fDataDir; }
const char * GetDataDirOpts() const
{ return fDataDirOpts; }
Int_t GetProtocol() const
{ return fProtocol; }
const char * GetOrdinal() const
{ return fOrdinal; }
Int_t GetGroupId() const
{ return fGroupId; }
Int_t GetGroupSize() const
{ return fGroupSize; }
Int_t GetLogLevel() const
{ return fLogLevel; }
TSocket * GetSocket() const
{ return fSocket; }
Float_t GetRealTime() const
{ return fRealTime; }
Float_t GetCpuTime() const
{ return fCpuTime; }
Int_t GetQuerySeqNum() const
{ return fQuerySeqNum; }
Int_t GetTotSessions() const
{ return fTotSessions; }
Int_t GetActSessions() const
{ return fActSessions; }
Float_t GetEffSessions() const
{ return fEffSessions; }
TList * GetEnabledPackages() const
{ return fEnabledPackages; }
Long64_t GetMsgSizeHWM() const
{ return fMsgSizeHWM; }
const char * GetPrefix() const
{ return fPrefix; }
TProofLockPath * GetCacheLock()
{ return fCacheLock; }
EQueryAction GetWorkers(TList* workers, Int_t& prioritychange, Bool_t resume = kFALSE)
void HandleTermination()
{ Terminate(0); }
void Interrupt()
Bool_t IsEndMaster() const
{ return fEndMaster; }
Bool_t IsMaster() const
{ return fMasterServ; }
Bool_t IsTopMaster() const
{ return fOrdinal == "0"; }
void ReleaseWorker(const char* )
{ }
void DisableTimeout()
 Disable / Enable read timeout
{ }
void EnableTimeout()
{ }
void LogToMaster(Bool_t on = kTRUE)
 Log control