ILIAS  release_5-2 Revision v5.2.25-18-g3f80b82851
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 ()
 
 onAfterExecutingUserSolutionUpdateOperation ()
 
 onBeforeExecutingUserQuestionResultUpdateOperation ()
 
 onAfterExecutingUserQuestionResultUpdateOperation ()
 
 onBeforeExecutingUserPassResultUpdateOperation ()
 
 onAfterExecutingUserPassResultUpdateOperation ()
 
 onBeforeExecutingUserTestResultUpdateOperation ()
 
 onAfterExecutingUserTestResultUpdateOperation ()
 
 onBeforeExecutingUserSolutionAdoptOperation ()
 
 onAfterExecutingUserSolutionAdoptOperation ()
 

Protected Attributes

 $lockFileStorage
 
 $lockFileHandles
 

Private Member Functions

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

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

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

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

References $lockFileStorage, and array.

30  {
31  $this->lockFileStorage = $lockFileStorage;
32  $this->lockFileHandles = array();
33  }
Create styles array
The data for the language used.

Member Function Documentation

◆ getLockFilePath()

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

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

References $path.

Referenced by requestLock().

82  {
83  $path = $this->lockFileStorage->getPath();
84  return $path.'/'.$processName.'.lock';
85  }
$path
Definition: aliased.php:25
+ Here is the caller graph for this function:

◆ onAfterExecutingPersistWorkingStateOperation()

ilAssQuestionProcessLockerFile::onAfterExecutingPersistWorkingStateOperation ( )
protected

{}

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

References releaseLock().

47  {
48  $this->releaseLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
49  }
+ Here is the call graph for this function:

◆ onAfterExecutingUserSolutionAdoptOperation()

ilAssQuestionProcessLockerFile::onAfterExecutingUserSolutionAdoptOperation ( )
protected

{}

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

References releaseLock().

63  {
64  $this->releaseLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
65  }
+ Here is the call graph for this function:

◆ onBeforeExecutingPersistWorkingStateOperation()

ilAssQuestionProcessLockerFile::onBeforeExecutingPersistWorkingStateOperation ( )
protected

{}

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

References requestLock().

39  {
40  $this->requestLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
41  }
+ Here is the call graph for this function:

◆ onBeforeExecutingUserSolutionAdoptOperation()

ilAssQuestionProcessLockerFile::onBeforeExecutingUserSolutionAdoptOperation ( )
protected

{}

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

References requestLock().

55  {
56  $this->requestLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
57  }
+ Here is the call graph for this function:

◆ releaseLock()

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

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

Referenced by onAfterExecutingPersistWorkingStateOperation(), and onAfterExecutingUserSolutionAdoptOperation().

91  {
92  flock($this->lockFileHandles[$processName], LOCK_UN);
93  fclose($this->lockFileHandles[$processName]);
94  }
+ Here is the caller graph for this function:

◆ requestLock()

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

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

References getLockFilePath().

Referenced by onBeforeExecutingPersistWorkingStateOperation(), and onBeforeExecutingUserSolutionAdoptOperation().

71  {
72  $lockFilePath = $this->getLockFilePath($processName);
73  $this->lockFileHandles[$processName] = fopen($lockFilePath, 'w');
74  flock($this->lockFileHandles[$processName], LOCK_EX);
75  }
+ 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 24 of file class.ilAssQuestionProcessLockerFile.php.

◆ $lockFileStorage

ilAssQuestionProcessLockerFile::$lockFileStorage
protected

Definition at line 19 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 14 of file class.ilAssQuestionProcessLockerFile.php.


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