libsaria: Actually add libsaria.sources.attrs
I forgot to add this file a few commits ago... oops...
This commit is contained in:
parent
0a644752a4
commit
c9dee00727
|
@ -0,0 +1,47 @@
|
|||
# Bryan Schumaker (5 / 28 / 2011)
|
||||
|
||||
import threading
|
||||
from libsaria import storage
|
||||
dattrs_lock = threading.Lock()
|
||||
lock_dattrs = dattrs_lock.acquire
|
||||
unlock_dattrs = dattrs_lock.release
|
||||
|
||||
# dynamic attributes
|
||||
dattrs = dict()
|
||||
|
||||
def load_dattrs():
|
||||
global dattrs
|
||||
dattrs_dict = storage.load_obj("dattrs", dict)
|
||||
lock_dattrs()
|
||||
dattrs = dattrs_dict
|
||||
unlock_dattrs()
|
||||
|
||||
def save_dattrs():
|
||||
storage.save_obj("dattrs", dattrs)
|
||||
|
||||
def get_dattr(id, attribute):
|
||||
lock_dattrs()
|
||||
attrs = dattrs.get(id, None)
|
||||
if attrs == None:
|
||||
unlock_dattrs()
|
||||
return None
|
||||
attr = attrs.get(attribute, None)
|
||||
unlock_dattrs()
|
||||
return attr
|
||||
|
||||
def set_dattr(id, attribute, value):
|
||||
lock_dattrs()
|
||||
attrs = dattrs.setdefault(id, dict())
|
||||
attrs[attribute] = value
|
||||
save_dattrs()
|
||||
unlock_dattrs()
|
||||
|
||||
def get_count(id):
|
||||
count = get_dattr(id, "count")
|
||||
if count != None:
|
||||
return count
|
||||
return 0
|
||||
|
||||
def inc_count(id):
|
||||
count = get_count(id)
|
||||
set_dattr(id, "count", count + 1)
|
Loading…
Reference in New Issue