All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
locker.LockFile Class Reference

Lock a file. More...

Inheritance diagram for locker.LockFile:
Collaboration diagram for locker.LockFile:

Public Member Functions

def __init__
 
def __del__
 
def __enter__
 
def __exit__
 

Public Attributes

 name
 
 temporary
 
 file
 
 log
 

Detailed Description

Lock a file.

The file for the lock is created if it doesn't exists and it the "temporary" argument is set to True it will also be deleted when the lock is not needed. The unlocking is done in the destructor (RAII pattern).

Definition at line 63 of file locker.py.

Constructor & Destructor Documentation

def locker.LockFile.__init__ (   self,
  name,
  temporary = False 
)

Definition at line 64 of file locker.py.

64 
65  def __init__(self, name, temporary = False):
66  self.name = name
67  self.temporary = temporary
68  self.file = None
69  self.log = logging.getLogger("LockFile")
70  self.log.info("%s - Locking on %s", time.strftime("%Y-%m-%d_%H:%M:%S"), self.name)
71  if not os.path.exists(name):
72  mode = "w"
73  else:
74  self.temporary = False # I do not want to delete a file I didn't create
75  mode = "r+"
76  try:
77  self.file = open(self.name, mode)
78  lock(self.file)
79  except:
80  self.log.warning("Cannot acquire lock on %s", self.name)
def lock
Definition: locker.py:16
def __init__
Definition: locker.py:64
def locker.LockFile.__del__ (   self)

Definition at line 81 of file locker.py.

81 
82  def __del__(self):
83  if self.file:
84  unlock(self.file)
85  self.file.close()
86  if self.temporary:
87  try:
88  os.remove(self.name)
89  except:
90  pass
91  self.log.info("%s - Lock on %s released", time.strftime("%Y-%m-%d_%H:%M:%S"), self.name)
92  self.file = None # Don't unlock twice!
93 
def unlock
Definition: locker.py:34

Member Function Documentation

def locker.LockFile.__enter__ (   self)

Definition at line 96 of file locker.py.

96 
97  def __enter__(self):
98  return self
def __enter__
Definition: locker.py:96
def locker.LockFile.__exit__ (   self,
  type,
  value,
  traceback 
)

Definition at line 99 of file locker.py.

99 
100  def __exit__(self, type, value, traceback):
101  self.__del__()
102 
def __exit__
Definition: locker.py:99

Member Data Documentation

locker.LockFile.file

Definition at line 67 of file locker.py.

locker.LockFile.log

Definition at line 68 of file locker.py.

locker.LockFile.name

Definition at line 65 of file locker.py.

locker.LockFile.temporary

Definition at line 66 of file locker.py.


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