ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilAssQuestionProcessLockerFile Class Reference
+ Inheritance diagram for ilAssQuestionProcessLockerFile:
+ Collaboration diagram for ilAssQuestionProcessLockerFile:

Public Member Functions

 __construct (ilAssQuestionProcessLockFileStorage $lockFileStorage)
 
- Public Member Functions inherited from ilAssQuestionProcessLocker
 executePersistWorkingStateLockOperation (callable $operation)
 
 executeUserSolutionUpdateLockOperation (callable $operation)
 
 executeUserQuestionResultUpdateOperation (callable $operation)
 
 executeUserPassResultUpdateLockOperation (callable $operation)
 
 executeUserTestResultUpdateLockOperation (callable $operation)
 
 executeUserSolutionAdoptLockOperation (callable $operation)
 

Data Fields

const PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE = 'questionWorkingStateUpdate'
 

Protected Member Functions

 onBeforeExecutingPersistWorkingStateOperation ()
 {} More...
 
 onAfterExecutingPersistWorkingStateOperation ()
 {} More...
 
 onBeforeExecutingUserSolutionAdoptOperation ()
 {} More...
 
 onAfterExecutingUserSolutionAdoptOperation ()
 {} More...
 
- Protected Member Functions inherited from ilAssQuestionProcessLocker
 executeOperation (callable $operation)
 
 onBeforeExecutingPersistWorkingStateOperation ()
 
 onAfterExecutingPersistWorkingStateOperation ()
 
 onBeforeExecutingUserSolutionUpdateOperation ()
 
 onBeforeExecutingUserQuestionResultUpdateOperation ()
 
 onAfterExecutingUserQuestionResultUpdateOperation ()
 
 onBeforeExecutingUserPassResultUpdateOperation ()
 
 onAfterExecutingUserPassResultUpdateOperation ()
 
 onBeforeExecutingUserTestResultUpdateOperation ()
 
 onAfterExecutingUserTestResultUpdateOperation ()
 
 onBeforeExecutingUserSolutionAdoptOperation ()
 
 onAfterExecutingUserSolutionAdoptOperation ()
 

Protected Attributes

ilAssQuestionProcessLockFileStorage $lockFileStorage
 
 $lockFileHandles
 

Private Member Functions

 requestLock ($processName)
 
 getLockFilePath ($processName)
 
 releaseLock ($processName)
 

Detailed Description

Definition at line 25 of file class.ilAssQuestionProcessLockerFile.php.

Constructor & Destructor Documentation

◆ __construct()

ilAssQuestionProcessLockerFile::__construct ( ilAssQuestionProcessLockFileStorage  $lockFileStorage)
Parameters
ilAssQuestionProcessLockFileStorage$lockFileStorage

Definition at line 39 of file class.ilAssQuestionProcessLockerFile.php.

40 {
41 $this->lockFileStorage = $lockFileStorage;
42 $this->lockFileHandles = [];
43 }
ilAssQuestionProcessLockFileStorage $lockFileStorage

References $lockFileStorage.

Member Function Documentation

◆ getLockFilePath()

ilAssQuestionProcessLockerFile::getLockFilePath (   $processName)
private
Parameters
string$processName
Returns
string

Definition at line 91 of file class.ilAssQuestionProcessLockerFile.php.

91 : string
92 {
93 $path = $this->lockFileStorage->getAbsolutePath();
94 return $path . '/' . $processName . '.lock';
95 }
$path
Definition: ltiservices.php:30

References $path.

Referenced by requestLock().

+ Here is the caller graph for this function:

◆ onAfterExecutingPersistWorkingStateOperation()

ilAssQuestionProcessLockerFile::onAfterExecutingPersistWorkingStateOperation ( )
protected

{}

Reimplemented from ilAssQuestionProcessLocker.

Definition at line 56 of file class.ilAssQuestionProcessLockerFile.php.

56 : void
57 {
58 $this->releaseLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
59 }

References releaseLock().

+ Here is the call graph for this function:

◆ onAfterExecutingUserSolutionAdoptOperation()

ilAssQuestionProcessLockerFile::onAfterExecutingUserSolutionAdoptOperation ( )
protected

{}

Reimplemented from ilAssQuestionProcessLocker.

Definition at line 72 of file class.ilAssQuestionProcessLockerFile.php.

72 : void
73 {
74 $this->releaseLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
75 }

References releaseLock().

+ Here is the call graph for this function:

◆ onBeforeExecutingPersistWorkingStateOperation()

ilAssQuestionProcessLockerFile::onBeforeExecutingPersistWorkingStateOperation ( )
protected

{}

Reimplemented from ilAssQuestionProcessLocker.

Definition at line 48 of file class.ilAssQuestionProcessLockerFile.php.

48 : void
49 {
50 $this->requestLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
51 }

References requestLock().

+ Here is the call graph for this function:

◆ onBeforeExecutingUserSolutionAdoptOperation()

ilAssQuestionProcessLockerFile::onBeforeExecutingUserSolutionAdoptOperation ( )
protected

{}

Reimplemented from ilAssQuestionProcessLocker.

Definition at line 64 of file class.ilAssQuestionProcessLockerFile.php.

64 : void
65 {
66 $this->requestLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
67 }

References requestLock().

+ Here is the call graph for this function:

◆ releaseLock()

ilAssQuestionProcessLockerFile::releaseLock (   $processName)
private
Parameters
string$processName

Definition at line 100 of file class.ilAssQuestionProcessLockerFile.php.

100 : void
101 {
102 flock($this->lockFileHandles[$processName], LOCK_UN);
103 fclose($this->lockFileHandles[$processName]);
104 }

Referenced by onAfterExecutingPersistWorkingStateOperation(), and onAfterExecutingUserSolutionAdoptOperation().

+ Here is the caller graph for this function:

◆ requestLock()

ilAssQuestionProcessLockerFile::requestLock (   $processName)
private
Parameters
string$processName

Definition at line 80 of file class.ilAssQuestionProcessLockerFile.php.

80 : void
81 {
82 $lockFilePath = $this->getLockFilePath($processName);
83 $this->lockFileHandles[$processName] = fopen($lockFilePath, 'w');
84 flock($this->lockFileHandles[$processName], LOCK_EX);
85 }

References getLockFilePath().

Referenced by onBeforeExecutingPersistWorkingStateOperation(), and onBeforeExecutingUserSolutionAdoptOperation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $lockFileHandles

ilAssQuestionProcessLockerFile::$lockFileHandles
protected

Definition at line 34 of file class.ilAssQuestionProcessLockerFile.php.

◆ $lockFileStorage

ilAssQuestionProcessLockFileStorage ilAssQuestionProcessLockerFile::$lockFileStorage
protected

Definition at line 29 of file class.ilAssQuestionProcessLockerFile.php.

Referenced by __construct().

◆ PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE

const ilAssQuestionProcessLockerFile::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE = 'questionWorkingStateUpdate'

Definition at line 27 of file class.ilAssQuestionProcessLockerFile.php.


The documentation for this class was generated from the following file: