Blame view

sources/lib/private/session/memory.php 1.54 KB
31b7f2792   Kload   Upgrade to ownclo...
1
2
3
4
5
6
7
8
9
10
11
12
13
  <?php
  /**
   * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
   * This file is licensed under the Affero General Public License version 3 or
   * later.
   * See the COPYING-README file.
   */
  
  namespace OC\Session;
  
  /**
   * Class Internal
   *
a293d369c   Kload   Update sources to...
14
   * store session data in an in-memory array, not persistent
31b7f2792   Kload   Upgrade to ownclo...
15
16
17
18
19
20
21
22
23
24
25
26
27
   *
   * @package OC\Session
   */
  class Memory extends Session {
  	protected $data;
  
  	public function __construct($name) {
  		//no need to use $name since all data is already scoped to this instance
  		$this->data = array();
  	}
  
  	/**
  	 * @param string $key
6d9380f96   Cédric Dupont   Update sources OC...
28
  	 * @param integer $value
31b7f2792   Kload   Upgrade to ownclo...
29
30
  	 */
  	public function set($key, $value) {
6d9380f96   Cédric Dupont   Update sources OC...
31
  		$this->validateSession();
31b7f2792   Kload   Upgrade to ownclo...
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
  		$this->data[$key] = $value;
  	}
  
  	/**
  	 * @param string $key
  	 * @return mixed
  	 */
  	public function get($key) {
  		if (!$this->exists($key)) {
  			return null;
  		}
  		return $this->data[$key];
  	}
  
  	/**
  	 * @param string $key
  	 * @return bool
  	 */
  	public function exists($key) {
  		return isset($this->data[$key]);
  	}
  
  	/**
  	 * @param string $key
  	 */
  	public function remove($key) {
6d9380f96   Cédric Dupont   Update sources OC...
58
  		$this->validateSession();
31b7f2792   Kload   Upgrade to ownclo...
59
60
61
62
63
64
  		unset($this->data[$key]);
  	}
  
  	public function clear() {
  		$this->data = array();
  	}
6d9380f96   Cédric Dupont   Update sources OC...
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
  
  	/**
  	 * Helper function for PHPUnit execution - don't use in non-test code
  	 */
  	public function reopen() {
  		$this->sessionClosed = false;
  	}
  
  	/**
  	 * In case the session has already been locked an exception will be thrown
  	 *
  	 * @throws \Exception
  	 */
  	private function validateSession() {
  		if ($this->sessionClosed) {
  			throw new \Exception('Session has been closed - no further changes to the session as allowed');
  		}
  	}
31b7f2792   Kload   Upgrade to ownclo...
83
  }