ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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.

References $lockFileStorage.

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

Member Function Documentation

◆ getLockFilePath()

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

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

References $path.

Referenced by requestLock().

91  : string
92  {
93  $path = $this->lockFileStorage->getAbsolutePath();
94  return $path . '/' . $processName . '.lock';
95  }
$path
Definition: ltiservices.php:29
+ Here is the caller graph for this function:

◆ onAfterExecutingPersistWorkingStateOperation()

ilAssQuestionProcessLockerFile::onAfterExecutingPersistWorkingStateOperation ( )
protected

{}

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

References releaseLock().

56  : void
57  {
58  $this->releaseLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
59  }
+ Here is the call graph for this function:

◆ onAfterExecutingUserSolutionAdoptOperation()

ilAssQuestionProcessLockerFile::onAfterExecutingUserSolutionAdoptOperation ( )
protected

{}

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

References releaseLock().

72  : void
73  {
74  $this->releaseLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
75  }
+ Here is the call graph for this function:

◆ onBeforeExecutingPersistWorkingStateOperation()

ilAssQuestionProcessLockerFile::onBeforeExecutingPersistWorkingStateOperation ( )
protected

{}

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

References requestLock().

48  : void
49  {
50  $this->requestLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
51  }
+ Here is the call graph for this function:

◆ onBeforeExecutingUserSolutionAdoptOperation()

ilAssQuestionProcessLockerFile::onBeforeExecutingUserSolutionAdoptOperation ( )
protected

{}

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

References requestLock().

64  : void
65  {
66  $this->requestLock(self::PROCESS_NAME_QUESTION_WORKING_STATE_UPDATE);
67  }
+ 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.

Referenced by onAfterExecutingPersistWorkingStateOperation(), and onAfterExecutingUserSolutionAdoptOperation().

100  : void
101  {
102  flock($this->lockFileHandles[$processName], LOCK_UN);
103  fclose($this->lockFileHandles[$processName]);
104  }
+ 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.

References getLockFilePath().

Referenced by onBeforeExecutingPersistWorkingStateOperation(), and onBeforeExecutingUserSolutionAdoptOperation().

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