MCPcopy Index your code
hub / github.com/pyload/pyload / load

Method load

module/lib/beaker/session.py:207–255  ·  view source on GitHub ↗

Loads the data from this session from persistent storage

(self)

Source from the content-addressed store, hash-verified

205 self.load()
206
207 def load(self):
208 "Loads the data from this session from persistent storage"
209 self.namespace = self.namespace_class(self.id,
210 data_dir=self.data_dir, digest_filenames=False,
211 **self.namespace_args)
212 now = time.time()
213 self.request['set_cookie'] = True
214
215 self.namespace.acquire_read_lock()
216 timed_out = False
217 try:
218 self.clear()
219 try:
220 session_data = self.namespace['session']
221
222 # Memcached always returns a key, its None when its not
223 # present
224 if session_data is None:
225 session_data = {
226 '_creation_time':now,
227 '_accessed_time':now
228 }
229 self.is_new = True
230 except (KeyError, TypeError):
231 session_data = {
232 '_creation_time':now,
233 '_accessed_time':now
234 }
235 self.is_new = True
236
237 if self.timeout is not None and \
238 now - session_data['_accessed_time'] > self.timeout:
239 timed_out= True
240 else:
241 # Properly set the last_accessed time, which is different
242 # than the *currently* _accessed_time
243 if self.is_new or '_accessed_time' not in session_data:
244 self.last_accessed = None
245 else:
246 self.last_accessed = session_data['_accessed_time']
247
248 # Update the current _accessed_time
249 session_data['_accessed_time'] = now
250 self.update(session_data)
251 self.accessed_dict = session_data.copy()
252 finally:
253 self.namespace.release_read_lock()
254 if timed_out:
255 self.invalidate()
256
257 def save(self, accessed_only=False):
258 """Saves the data for this session to persistent storage

Callers 5

__init__Method · 0.95
invalidateMethod · 0.95
cache.pyFile · 0.45
do_openMethod · 0.45
mainFunction · 0.45

Calls 6

invalidateMethod · 0.95
acquire_read_lockMethod · 0.45
clearMethod · 0.45
updateMethod · 0.45
copyMethod · 0.45
release_read_lockMethod · 0.45

Tested by

no test coverage detected