~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/knit.py

  • Committer: John Arbash Meinel
  • Date: 2009-03-26 16:35:00 UTC
  • mfrom: (4208 +trunk)
  • mto: (3735.40.9 vilajam)
  • mto: This revision was merged to the branch mainline in revision 4280.
  • Revision ID: john@arbash-meinel.com-20090326163500-os7lvdpsdxnxstd0
Merge bzr.dev 4208.

This brings in some more smart-server improvements, 
as well as the iter_files_bytes as chunked, and 
multi-file and directory logging.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1614
1614
                # KnitVersionedFiles doesn't permit deltas (_max_delta_chain ==
1615
1615
                # 0) or because it depends on a base only present in the
1616
1616
                # fallback kvfs.
 
1617
                self._access.flush()
1617
1618
                try:
1618
1619
                    # Try getting a fulltext directly from the record.
1619
1620
                    bytes = record.get_bytes_as('fulltext')
3054
3055
            result.append((key, base, size))
3055
3056
        return result
3056
3057
 
 
3058
    def flush(self):
 
3059
        """Flush pending writes on this access object.
 
3060
        
 
3061
        For .knit files this is a no-op.
 
3062
        """
 
3063
        pass
 
3064
 
3057
3065
    def get_raw_records(self, memos_for_retrieval):
3058
3066
        """Get the raw bytes for a records.
3059
3067
 
3084
3092
class _DirectPackAccess(object):
3085
3093
    """Access to data in one or more packs with less translation."""
3086
3094
 
3087
 
    def __init__(self, index_to_packs, reload_func=None):
 
3095
    def __init__(self, index_to_packs, reload_func=None, flush_func=None):
3088
3096
        """Create a _DirectPackAccess object.
3089
3097
 
3090
3098
        :param index_to_packs: A dict mapping index objects to the transport
3097
3105
        self._write_index = None
3098
3106
        self._indices = index_to_packs
3099
3107
        self._reload_func = reload_func
 
3108
        self._flush_func = flush_func
3100
3109
 
3101
3110
    def add_raw_records(self, key_sizes, raw_data):
3102
3111
        """Add raw knit bytes to a storage area.
3124
3133
            result.append((self._write_index, p_offset, p_length))
3125
3134
        return result
3126
3135
 
 
3136
    def flush(self):
 
3137
        """Flush pending writes on this access object.
 
3138
 
 
3139
        This will flush any buffered writes to a NewPack.
 
3140
        """
 
3141
        if self._flush_func is not None:
 
3142
            self._flush_func()
 
3143
            
3127
3144
    def get_raw_records(self, memos_for_retrieval):
3128
3145
        """Get the raw bytes for a records.
3129
3146