Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
XrdProofdPriorityMgr Class Reference

Definition at line 55 of file XrdProofdPriorityMgr.h.

Public Types

enum  PMProtocol { kChangeStatus = 0 , kSetGroupPriority = 1 }
 

Public Member Functions

 XrdProofdPriorityMgr (XrdProofdManager *mgr, XrdProtocol_Config *pi, XrdSysError *e)
 Constructor.
 
virtual ~XrdProofdPriorityMgr ()
 
int AddSession (const char *u, const char *g, int pid)
 Add to the active list a session with ID pid.
 
int Config (bool rcf=0)
 Run configuration and parse the entered config directives.
 
int DoDirective (XrdProofdDirective *d, char *val, XrdOucStream *cfg, bool rcf)
 Update the priorities of the active sessions.
 
bool IsSchedOn ()
 
XrdProofdPipe * Pipe ()
 
int RemoveSession (int pid)
 Remove from the active list the session with ID pid.
 
void SetGroupPriority (const char *grp, int priority)
 Change group priority. Used when a master pushes a priority to a worker.
 
int SetNiceValues (int opt=0)
 Recalculate nice values taking into account all active users and their priorities.
 
int SetProcessPriority (int pid, const char *usr, int &dp)
 Change priority of process pid belonging to user, if needed.
 
void SetSchedOpt (int opt)
 
- Public Member Functions inherited from XrdProofdConfig
 XrdProofdConfig (const char *cfg=0, XrdSysError *edest=0)
 Main constructor.
 
virtual ~XrdProofdConfig ()
 
const char * CfgFile () const
 
void SetCfgEDest (const char *cfg, XrdSysError *edest)
 Set config file and error handler.
 

Private Member Functions

int DoDirectivePriority (char *, XrdOucStream *, bool)
 Process 'priority' directive.
 
int DoDirectiveSchedOpt (char *, XrdOucStream *, bool)
 Process 'schedopt' directive.
 
void RegisterDirectives ()
 Register directives for configuration.
 

Private Attributes

XrdProofdManager * fMgr
 
XrdSysRecMutex fMutex
 
XrdProofdPipe fPipe
 
XrdOucHash< XrdProofdPriority > fPriorities
 
int fPriorityMax
 
int fPriorityMin
 
int fSchedOpt
 
XrdOucHash< XrdProofdSessionEntry > fSessions
 

Additional Inherited Members

- Protected Member Functions inherited from XrdProofdConfig
int ParseFile (bool rcf=false)
 Parse config file for the registered directives.
 
bool ReadFile (bool update=true)
 Return true if the file has never been read or did change since last reading, false otherwise.
 
void Register (const char *dname, XrdProofdDirective *d)
 
- Protected Attributes inherited from XrdProofdConfig
XrdSysError * fEDest
 

#include <XrdProofdPriorityMgr.h>

Inheritance diagram for XrdProofdPriorityMgr:
[legend]

Member Enumeration Documentation

◆ PMProtocol

Enumerator
kChangeStatus 
kSetGroupPriority 

Definition at line 77 of file XrdProofdPriorityMgr.h.

Constructor & Destructor Documentation

◆ XrdProofdPriorityMgr()

XrdProofdPriorityMgr::XrdProofdPriorityMgr ( XrdProofdManager *  mgr,
XrdProtocol_Config *  pi,
XrdSysError *  e 
)

Constructor.

Definition at line 120 of file XrdProofdPriorityMgr.cxx.

◆ ~XrdProofdPriorityMgr()

virtual XrdProofdPriorityMgr::~XrdProofdPriorityMgr ( )
inlinevirtual

Definition at line 75 of file XrdProofdPriorityMgr.h.

Member Function Documentation

◆ AddSession()

int XrdProofdPriorityMgr::AddSession ( const char *  u,
const char *  g,
int  pid 
)

Add to the active list a session with ID pid.

Check for duplications. Returns 1 if the entry existed already and it has been replaced; or 0.

Definition at line 514 of file XrdProofdPriorityMgr.cxx.

◆ Config()

int XrdProofdPriorityMgr::Config ( bool  rcf = 0)
virtual

Run configuration and parse the entered config directives.

Return 0 on success, -1 on error

Reimplemented from XrdProofdConfig.

Definition at line 167 of file XrdProofdPriorityMgr.cxx.

◆ DoDirective()

int XrdProofdPriorityMgr::DoDirective ( XrdProofdDirective *  d,
char *  val,
XrdOucStream *  cfg,
bool  rcf 
)
virtual

Update the priorities of the active sessions.

Reimplemented from XrdProofdConfig.

Definition at line 222 of file XrdProofdPriorityMgr.cxx.

◆ DoDirectivePriority()

int XrdProofdPriorityMgr::DoDirectivePriority ( char *  val,
XrdOucStream *  cfg,
bool   
)
private

Process 'priority' directive.

Definition at line 422 of file XrdProofdPriorityMgr.cxx.

◆ DoDirectiveSchedOpt()

int XrdProofdPriorityMgr::DoDirectiveSchedOpt ( char *  val,
XrdOucStream *  cfg,
bool   
)
private

Process 'schedopt' directive.

Definition at line 445 of file XrdProofdPriorityMgr.cxx.

◆ IsSchedOn()

bool XrdProofdPriorityMgr::IsSchedOn ( )
inline

Definition at line 90 of file XrdProofdPriorityMgr.h.

◆ Pipe()

XrdProofdPipe * XrdProofdPriorityMgr::Pipe ( )
inline

Definition at line 83 of file XrdProofdPriorityMgr.h.

◆ RegisterDirectives()

void XrdProofdPriorityMgr::RegisterDirectives ( )
privatevirtual

Register directives for configuration.

Reimplemented from XrdProofdConfig.

Definition at line 213 of file XrdProofdPriorityMgr.cxx.

◆ RemoveSession()

int XrdProofdPriorityMgr::RemoveSession ( int  pid)

Remove from the active list the session with ID pid.

Return -ENOENT if not found, or 0.

Definition at line 504 of file XrdProofdPriorityMgr.cxx.

◆ SetGroupPriority()

void XrdProofdPriorityMgr::SetGroupPriority ( const char *  grp,
int  priority 
)

Change group priority. Used when a master pushes a priority to a worker.

Definition at line 243 of file XrdProofdPriorityMgr.cxx.

◆ SetNiceValues()

int XrdProofdPriorityMgr::SetNiceValues ( int  opt = 0)

Recalculate nice values taking into account all active users and their priorities.

The type of sessions considered depend on 'opt': 0 all active sessions 1 master sessions 2 worker sessionsg21 Return 0 on success, -1 otherwise.

Definition at line 334 of file XrdProofdPriorityMgr.cxx.

◆ SetProcessPriority()

int XrdProofdPriorityMgr::SetProcessPriority ( int  pid,
const char *  user,
int &  dp 
)

Change priority of process pid belonging to user, if needed.

Return 0 on success, -errno in case of error

Definition at line 534 of file XrdProofdPriorityMgr.cxx.

◆ SetSchedOpt()

void XrdProofdPriorityMgr::SetSchedOpt ( int  opt)
inline

Definition at line 92 of file XrdProofdPriorityMgr.h.

Member Data Documentation

◆ fMgr

XrdProofdManager* XrdProofdPriorityMgr::fMgr
private

Definition at line 59 of file XrdProofdPriorityMgr.h.

◆ fMutex

XrdSysRecMutex XrdProofdPriorityMgr::fMutex
private

Definition at line 57 of file XrdProofdPriorityMgr.h.

◆ fPipe

XrdProofdPipe XrdProofdPriorityMgr::fPipe
private

Definition at line 63 of file XrdProofdPriorityMgr.h.

◆ fPriorities

XrdOucHash<XrdProofdPriority> XrdProofdPriorityMgr::fPriorities
private

Definition at line 61 of file XrdProofdPriorityMgr.h.

◆ fPriorityMax

int XrdProofdPriorityMgr::fPriorityMax
private

Definition at line 66 of file XrdProofdPriorityMgr.h.

◆ fPriorityMin

int XrdProofdPriorityMgr::fPriorityMin
private

Definition at line 67 of file XrdProofdPriorityMgr.h.

◆ fSchedOpt

int XrdProofdPriorityMgr::fSchedOpt
private

Definition at line 65 of file XrdProofdPriorityMgr.h.

◆ fSessions

XrdOucHash<XrdProofdSessionEntry> XrdProofdPriorityMgr::fSessions
private

Definition at line 60 of file XrdProofdPriorityMgr.h.

  • proof/proofd/inc/XrdProofdPriorityMgr.h
  • proof/proofd/src/XrdProofdPriorityMgr.cxx