The C++ framework for developing highly scalable, high performance servers on Windows platforms.

CJob Class Reference
[Win32 Kernel Objects]

Inheritance diagram for CJob:
Collaboration diagram for CJob:

List of all members.


Detailed Description

A class for manipulating operating system job objects.


Public Types

enum  CreationFlags { CreateOrConnect, CreateNew, ConnectToExisting }
 Specify how to create or connect to an existing job object. More...
typedef
Core::TExpandableBuffer
< BYTE
ByteBuffer

Public Member Functions

 CJob (SECURITY_ATTRIBUTES *pSecurityAttributes=nullptr, bool terminateProcessesOnClose=true)
 CJob (const IKernelObjectName &name, SECURITY_ATTRIBUTES *pSecurityAttributes=nullptr, bool terminateProcessesOnClose=true)
 CJob (const IKernelObjectName &name, CreationFlags creationFlags, SECURITY_ATTRIBUTES *pSecurityAttributes=nullptr, bool terminateProcessesOnClose=true)
 CJob (const CJob &rhs)
 ~CJob () override
CJoboperator= (const CJob &rhs)
void QueryInformation (JOBOBJECT_BASIC_ACCOUNTING_INFORMATION &info) const
void QueryInformation (JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION &info) const
void QueryInformation (JOBOBJECT_BASIC_LIMIT_INFORMATION &info) const
void QueryInformation (JOBOBJECT_BASIC_PROCESS_ID_LIST &info) const
JOBOBJECT_BASIC_PROCESS_ID_LIST & QueryInformation (ByteBuffer &buffer) const
void QueryInformation (JOBOBJECT_BASIC_UI_RESTRICTIONS &info) const
void QueryInformation (JOBOBJECT_EXTENDED_LIMIT_INFORMATION &info) const
void SetInformation (JOBOBJECT_EXTENDED_LIMIT_INFORMATION &info)
void SetPerJobUserTimeLimit (ULONG timeLimitIn100nsIntervals)
void SetPerJobUserTimeLimit (const LARGE_INTEGER &timeLimitIn100nsIntervals)
void SetPerProcessUserTimeLimit (ULONG timeLimitIn100nsIntervals)
void SetPerProcessUserTimeLimit (const LARGE_INTEGER &timeLimitIn100nsIntervals)
void SetPerJobMemoryLimit (size_t limit)
void SetPerProcessMemoryLimit (size_t limit)
void SetAllProcessesToTerminateOnJobClose (bool terminateProcessesOnJobClose)
void TerminateAllProcesses (UINT exitCode)
void MonitorEvents (IMonitorJobs &monitor, IManageJobEvents &manager)
HANDLE GetWaitHandle () const override
void Wait () const override
bool Wait (Milliseconds timeout) const override
bool IsProcessInJob (HANDLE hProcess) const override
bool IsProcessInAnyJob (HANDLE hProcess) const override
void AssignProcessToJob (HANDLE hProcess) override


Member Typedef Documentation


Member Enumeration Documentation

Specify how to create or connect to an existing job object.

Enumerator:
CreateOrConnect 
CreateNew 
ConnectToExisting 


Constructor & Destructor Documentation

CJob ( SECURITY_ATTRIBUTES pSecurityAttributes = nullptr,
bool  terminateProcessesOnClose = true 
) [explicit]

CJob ( const IKernelObjectName name,
SECURITY_ATTRIBUTES pSecurityAttributes = nullptr,
bool  terminateProcessesOnClose = true 
) [explicit]

CJob ( const IKernelObjectName name,
CreationFlags  creationFlags,
SECURITY_ATTRIBUTES pSecurityAttributes = nullptr,
bool  terminateProcessesOnClose = true 
) [explicit]

CJob ( const CJob rhs  ) 

~CJob (  )  [override]


Member Function Documentation

CJob& operator= ( const CJob rhs  ) 

void QueryInformation ( JOBOBJECT_BASIC_ACCOUNTING_INFORMATION &  info  )  const

void QueryInformation ( JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION &  info  )  const

void QueryInformation ( JOBOBJECT_BASIC_LIMIT_INFORMATION &  info  )  const

void QueryInformation ( JOBOBJECT_BASIC_PROCESS_ID_LIST &  info  )  const

JOBOBJECT_BASIC_PROCESS_ID_LIST & QueryInformation ( ByteBuffer buffer  )  const

void QueryInformation ( JOBOBJECT_BASIC_UI_RESTRICTIONS &  info  )  const

void QueryInformation ( JOBOBJECT_EXTENDED_LIMIT_INFORMATION &  info  )  const

void SetInformation ( JOBOBJECT_EXTENDED_LIMIT_INFORMATION &  info  ) 

void SetPerJobUserTimeLimit ( ULONG  timeLimitIn100nsIntervals  ) 

void SetPerJobUserTimeLimit ( const LARGE_INTEGER timeLimitIn100nsIntervals  ) 

void SetPerProcessUserTimeLimit ( ULONG  timeLimitIn100nsIntervals  ) 

void SetPerProcessUserTimeLimit ( const LARGE_INTEGER timeLimitIn100nsIntervals  ) 

void SetPerJobMemoryLimit ( size_t  limit  ) 

void SetPerProcessMemoryLimit ( size_t  limit  ) 

void SetAllProcessesToTerminateOnJobClose ( bool  terminateProcessesOnJobClose  ) 

void TerminateAllProcesses ( UINT  exitCode  ) 

void MonitorEvents ( IMonitorJobs monitor,
IManageJobEvents manager 
)

HANDLE GetWaitHandle (  )  const [override]

void Wait (  )  const [override]

bool Wait ( Milliseconds  timeout  )  const [override]

bool IsProcessInJob ( HANDLE  hProcess  )  const [override, virtual]

bool IsProcessInAnyJob ( HANDLE  hProcess  )  const [override, virtual]

void AssignProcessToJob ( HANDLE  hProcess  )  [override, virtual]


Generated on Sun Sep 12 19:11:35 2021 for The Server Framework - v7.4 by doxygen 1.5.3