Gaudi Framework, version v25r2

Home   Generated: Wed Jun 4 2014
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Public Attributes | List of all members
locker.LockFile Class Reference

Lock a file. More...

Inheritance diagram for locker.LockFile:
Inheritance graph
[legend]
Collaboration diagram for locker.LockFile:
Collaboration graph
[legend]

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 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 

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 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 

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:
Generated at Wed Jun 4 2014 14:49:06 for Gaudi Framework, version v25r2 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004