~didrocks/ubuntuone-client/dont-suffer-zg-crash

« back to all changes in this revision

Viewing changes to ubuntuone/syncdaemon/tritcask.py

  • Committer: Bazaar Package Importer
  • Author(s): Rodney Dawes
  • Date: 2011-01-25 16:42:52 UTC
  • mto: This revision was merged to the branch mainline in revision 64.
  • Revision ID: james.westby@ubuntu.com-20110125164252-rl1pybasx1nsqgoy
Tags: upstream-1.5.3
ImportĀ upstreamĀ versionĀ 1.5.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
81
81
        return cls(entry.tstamp, entry.key_sz, entry.row_type,
82
82
                   entry.value_sz, entry.value_pos, entry.key)
83
83
 
 
84
    @property
 
85
    def header(self):
 
86
        """Return the header tuple for this entry."""
 
87
        return self[:-1]
 
88
 
84
89
 
85
90
_KeydirEntry = namedtuple('_KeydirEntry',
86
91
                          ['file_id', 'tstamp', 'value_sz', 'value_pos'])
406
411
 
407
412
    def write(self, entry):
408
413
        """Write a hint entry to the file."""
409
 
        tstamp, key_sz, row_type, value_sz, value_pos, key = entry
410
 
        self.fd.write(hint_header_struct.pack(
411
 
            tstamp, key_sz, row_type, value_sz, value_pos))
412
 
        self.fd.write(key)
 
414
        self.fd.write(hint_header_struct.pack(*entry.header))
 
415
        self.fd.write(entry.key)
413
416
 
414
417
    def close(self):
415
418
        """Close the fd."""
707
710
                                kd_entry.value_sz)
708
711
        return value
709
712
 
 
713
    def keys(self):
 
714
        """Return the keys in self._keydir."""
 
715
        return self._keydir.keys()
 
716
 
 
717
    def __contains__(self, key):
 
718
        """Return True if key is in self._keydir."""
 
719
        return key in self._keydir
 
720
 
710
721
    def delete(self, row_type, key):
711
722
        """Delete the key/value specified by key."""
712
723
        if not isinstance(key, str):
765
776
 
766
777
    def keys(self):
767
778
        """dict protocol."""
768
 
        for r, k in self._db._keydir.keys():
 
779
        for r, k in self._db.keys():
769
780
            if r == self.row_type:
770
781
                yield k
771
782
 
772
783
    def has_key(self, key):
773
784
        """dict protocol."""
774
 
        return (self.row_type, key) in self._db._keydir
 
785
        return (self.row_type, key) in self._db.keys()
775
786
 
776
787
    def __contains__(self, key):
777
788
        """dict protocol."""
778
 
        return (self.row_type, key) in self._db._keydir
 
789
        return (self.row_type, key) in self._db
779
790
 
780
791
    def __getitem__(self, key):
781
792
        """dict protocol."""