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 ()
 
XrdProofdPipePipe ()
 
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

XrdProofdManagerfMgr
 
XrdSysRecMutex fMutex
 
XrdProofdPipe fPipe
 
XrdOucHash< XrdProofdPriorityfPriorities
 
int fPriorityMax
 
int fPriorityMin
 
int fSchedOpt
 
XrdOucHash< XrdProofdSessionEntryfSessions
 

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