ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilAssQuestionProcessLockerDb Class Reference
+ Inheritance diagram for ilAssQuestionProcessLockerDb:
+ Collaboration diagram for ilAssQuestionProcessLockerDb:

Public Member Functions

 __construct (ilDBInterface $db)
 
 isAssessmentLogEnabled ()
 
 setAssessmentLogEnabled ($assessmentLogEnabled)
 
- Public Member Functions inherited from ilAssQuestionProcessLocker
 executePersistWorkingStateLockOperation (callable $operation)
 
 executeUserSolutionUpdateLockOperation (callable $operation)
 
 executeUserQuestionResultUpdateOperation (callable $operation)
 
 executeUserPassResultUpdateLockOperation (callable $operation)
 
 executeUserTestResultUpdateLockOperation (callable $operation)
 
 executeUserSolutionAdoptLockOperation (callable $operation)
 

Protected Member Functions

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

Protected Attributes

 $db
 
 $atom_query
 

Private Member Functions

 getTablesUsedDuringAssessmentLog ()
 
 getTablesUsedDuringSolutionUpdate ()
 
 getTablesUsedDuringResultUpdate ()
 

Private Attributes

 $assessmentLogEnabled = false
 

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

ilAssQuestionProcessLockerDb::__construct ( ilDBInterface  $db)
Parameters
ilDBInterface$db

Definition at line 45 of file class.ilAssQuestionProcessLockerDb.php.

References $db.

Member Function Documentation

◆ executeOperation()

ilAssQuestionProcessLockerDb::executeOperation ( callable  $operation)
protected

{}

Definition at line 147 of file class.ilAssQuestionProcessLockerDb.php.

References $ilDB.

147  : void
148  {
149  if ($this->atom_query) {
150  $this->atom_query->addQueryCallable(function (ilDBInterface $ilDB) use ($operation) {
151  $operation();
152  });
153  $this->atom_query->run();
154  } else {
155  $operation();
156  }
157 
158  $this->atom_query = null;
159  }

◆ getTablesUsedDuringAssessmentLog()

ilAssQuestionProcessLockerDb::getTablesUsedDuringAssessmentLog ( )
private
Returns
array

Definition at line 63 of file class.ilAssQuestionProcessLockerDb.php.

Referenced by onBeforeExecutingUserSolutionUpdateOperation().

63  : array
64  {
65  return array(
66  array('name' => 'qpl_questions', 'sequence' => false),
67  array('name' => 'tst_tests', 'sequence' => false),
68  array('name' => 'tst_active', 'sequence' => false),
69  array('name' => 'ass_log', 'sequence' => true)
70  );
71  }
+ Here is the caller graph for this function:

◆ getTablesUsedDuringResultUpdate()

ilAssQuestionProcessLockerDb::getTablesUsedDuringResultUpdate ( )
private
Returns
array

Definition at line 84 of file class.ilAssQuestionProcessLockerDb.php.

Referenced by onBeforeExecutingUserQuestionResultUpdateOperation(), and onBeforeExecutingUserSolutionAdoptOperation().

84  : array
85  {
86  return array(
87  array('name' => 'tst_test_result', 'sequence' => true)
88  );
89  }
+ Here is the caller graph for this function:

◆ getTablesUsedDuringSolutionUpdate()

ilAssQuestionProcessLockerDb::getTablesUsedDuringSolutionUpdate ( )
private

Definition at line 73 of file class.ilAssQuestionProcessLockerDb.php.

References PassPresentedVariablesRepo\TABLE_NAME.

Referenced by onBeforeExecutingUserSolutionAdoptOperation(), and onBeforeExecutingUserSolutionUpdateOperation().

73  : array
74  {
75  return [
76  ['name' => 'tst_solutions', 'sequence' => true],
77  ['name' => PassPresentedVariablesRepo::TABLE_NAME, 'sequence' => false]
78  ];
79  }
+ Here is the caller graph for this function:

◆ isAssessmentLogEnabled()

ilAssQuestionProcessLockerDb::isAssessmentLogEnabled ( )

Definition at line 50 of file class.ilAssQuestionProcessLockerDb.php.

References $assessmentLogEnabled.

Referenced by onBeforeExecutingUserSolutionUpdateOperation().

+ Here is the caller graph for this function:

◆ onBeforeExecutingUserQuestionResultUpdateOperation()

ilAssQuestionProcessLockerDb::onBeforeExecutingUserQuestionResultUpdateOperation ( )
protected

{}

Definition at line 111 of file class.ilAssQuestionProcessLockerDb.php.

References getTablesUsedDuringResultUpdate().

111  : void
112  {
113  $this->atom_query = $this->db->buildAtomQuery();
114  foreach ($this->getTablesUsedDuringResultUpdate() as $table) {
115  $this->atom_query->addTableLock($table['name'])->lockSequence((bool) $table['sequence']);
116  }
117  }
+ Here is the call graph for this function:

◆ onBeforeExecutingUserSolutionAdoptOperation()

ilAssQuestionProcessLockerDb::onBeforeExecutingUserSolutionAdoptOperation ( )
protected

{}

Definition at line 122 of file class.ilAssQuestionProcessLockerDb.php.

References getTablesUsedDuringResultUpdate(), and getTablesUsedDuringSolutionUpdate().

122  : void
123  {
124  $this->atom_query = $this->db->buildAtomQuery();
125  foreach (array_merge(
128  ) as $table) {
129  $this->atom_query->addTableLock($table['name'])->lockSequence((bool) $table['sequence']);
130  }
131  }
+ Here is the call graph for this function:

◆ onBeforeExecutingUserSolutionUpdateOperation()

ilAssQuestionProcessLockerDb::onBeforeExecutingUserSolutionUpdateOperation ( )
protected

{}

Definition at line 94 of file class.ilAssQuestionProcessLockerDb.php.

References getTablesUsedDuringAssessmentLog(), getTablesUsedDuringSolutionUpdate(), and isAssessmentLogEnabled().

94  : void
95  {
96  $tables = $this->getTablesUsedDuringSolutionUpdate();
97 
98  if ($this->isAssessmentLogEnabled()) {
99  $tables = array_merge($tables, $this->getTablesUsedDuringAssessmentLog());
100  }
101 
102  $this->atom_query = $this->db->buildAtomQuery();
103  foreach ($tables as $table) {
104  $this->atom_query->addTableLock($table['name'])->lockSequence((bool) $table['sequence']);
105  }
106  }
+ Here is the call graph for this function:

◆ onBeforeExecutingUserTestResultUpdateOperation()

ilAssQuestionProcessLockerDb::onBeforeExecutingUserTestResultUpdateOperation ( )
protected

{}

Definition at line 136 of file class.ilAssQuestionProcessLockerDb.php.

136  : void
137  {
138  $this->atom_query = $this->db->buildAtomQuery();
139  $this->atom_query->addTableLock('tst_result_cache');
140  $this->atom_query->addTableLock('tst_test_result')->lockSequence(true);
141  $this->atom_query->addTableLock('tst_solutions')->lockSequence(true);
142  }

◆ setAssessmentLogEnabled()

ilAssQuestionProcessLockerDb::setAssessmentLogEnabled (   $assessmentLogEnabled)

Definition at line 55 of file class.ilAssQuestionProcessLockerDb.php.

References $assessmentLogEnabled.

55  : void
56  {
57  $this->assessmentLogEnabled = $assessmentLogEnabled;
58  }

Field Documentation

◆ $assessmentLogEnabled

ilAssQuestionProcessLockerDb::$assessmentLogEnabled = false
private

◆ $atom_query

ilAssQuestionProcessLockerDb::$atom_query
protected

Definition at line 35 of file class.ilAssQuestionProcessLockerDb.php.

◆ $db

ilAssQuestionProcessLockerDb::$db
protected

Definition at line 30 of file class.ilAssQuestionProcessLockerDb.php.

Referenced by __construct().


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