ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f87
class.ilTestProcessLockerFactory.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 require_once 'Modules/Test/classes/class.ilObjAssessmentFolder.php';
5 require_once 'Modules/Test/classes/class.ilTestProcessLocker.php';
6 require_once 'Modules/Test/classes/class.ilTestProcessLockerNone.php';
7 require_once 'Modules/Test/classes/class.ilTestProcessLockerFile.php';
8 require_once 'Modules/Test/classes/class.ilTestProcessLockerDb.php';
9 
17 {
21  protected $settings;
22 
26  protected $db;
27 
31  protected $activeId;
32 
38  {
39  $this->settings = $settings;
40  $this->db = $db;
41 
42  $this->activeId = null;
43  }
44 
48  public function setActiveId($activeId)
49  {
50  $this->activeId = $activeId;
51  }
52 
56  public function getActiveId()
57  {
58  return $this->activeId;
59  }
60 
61  private function getLockModeSettingValue()
62  {
63  return $this->settings->get('ass_process_lock_mode', ilObjAssessmentFolder::ASS_PROC_LOCK_MODE_NONE);
64  }
65 
69  public function getLocker()
70  {
71  switch( $this->getLockModeSettingValue() )
72  {
74 
75  $locker = new ilTestProcessLockerNone();
76  break;
77 
79 
80  require_once 'Modules/Test/classes/class.ilTestProcessLockFileStorage.php';
81  $storage = new ilTestProcessLockFileStorage($this->getActiveId());
82  $storage->create();
83 
84  $locker = new ilTestProcessLockerFile($storage);
85  break;
86 
88 
89  $locker = new ilTestProcessLockerDb($this->db);
90  break;
91  }
92 
93  return $locker;
94  }
95 }
ILIAS Setting Class.
__construct(ilSetting $settings, ilDB $db)
Database Wrapper.
Definition: class.ilDB.php:28