~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/lockable_files.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-05-04 08:12:15 UTC
  • mfrom: (1692.7.5 bzr.mbp.integration)
  • Revision ID: pqm@pqm.ubuntu.com-20060504081215-e807a459c8bcb379
(mbp,olaf) lock info, metaweave format name, docs

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import bzrlib
22
22
from bzrlib.decorators import *
23
23
import bzrlib.errors as errors
24
 
from bzrlib.errors import LockError, ReadOnlyError
 
24
from bzrlib.errors import BzrError
25
25
from bzrlib.osutils import file_iterator, safe_unicode
26
26
from bzrlib.symbol_versioning import *
27
27
from bzrlib.trace import mutter, note
208
208
        # and potentially a remote locking protocol
209
209
        if self._lock_mode:
210
210
            if self._lock_mode != 'w' or not self.get_transaction().writeable():
211
 
                raise ReadOnlyError(self)
 
211
                raise errors.ReadOnlyError(self)
212
212
            self._lock_count += 1
213
213
        else:
214
214
            self._lock.lock_write()
251
251
        """Return true if this LockableFiles group is locked"""
252
252
        return self._lock_count >= 1
253
253
 
 
254
    def get_physical_lock_status(self):
 
255
        """Return physical lock status.
 
256
        
 
257
        Returns true if a lock is held on the transport. If no lock is held, or
 
258
        the underlying locking mechanism does not support querying lock
 
259
        status, false is returned.
 
260
        """
 
261
        try:
 
262
            return self._lock.peek() is not None
 
263
        except NotImplementedError:
 
264
            return False
 
265
 
254
266
    def get_transaction(self):
255
267
        """Return the current active transaction.
256
268
 
306
318
        self._lock.unlock()
307
319
        self._lock = None
308
320
 
 
321
    def peek(self):
 
322
        raise NotImplementedError()
 
323
 
309
324
    def create(self, mode=None):
310
325
        """Create lock mechanism"""
311
326
        # for old-style locks, create the file now