~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/serializer.py

  • Committer: John Arbash Meinel
  • Date: 2009-12-03 04:55:02 UTC
  • mto: This revision was merged to the branch mainline in revision 4887.
  • Revision ID: john@arbash-meinel.com-20091203045502-uvhmg6b1yjbzzt8q
Change from being a per-serializer attribute to being a per-repo attribute.
This means we have some churn on *all* of the serializer apis, but it means
we *don't* have churn on all of the repository apis.

It makes it more thread-safe, since serializers are global instances.
Repositories aren't currently thread-safe anyway. (get_record_stream() specifically
is known not to be thread-safe on 2a format repos.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
    squashes_xml_invalid_characters = False
28
28
 
29
 
    # Setting this true will return InventoryEntry items directly from the
30
 
    # cache, rather than copying them. It can be much faster for some
31
 
    # operations, but the callers must not mutate the returned objects
32
 
    safe_to_use_cache_items = False
33
 
 
34
29
    def write_inventory(self, inv, f):
35
30
        """Write inventory to a file.
36
31
 
55
50
        raise NotImplementedError(self.write_inventory_to_string)
56
51
 
57
52
    def read_inventory_from_string(self, string, revision_id=None,
58
 
                                   entry_cache=None):
 
53
                                   entry_cache=None, return_from_cache=False):
59
54
        """Read string into an inventory object.
60
55
 
61
56
        :param string: The serialized inventory to read.
69
64
        :param entry_cache: An optional cache of InventoryEntry objects. If
70
65
            supplied we will look up entries via (file_id, revision_id) which
71
66
            should map to a valid InventoryEntry (File/Directory/etc) object.
 
67
        :param return_from_cache: Return entries directly from the cache,
 
68
            rather than copying them first. This is only safe if the caller
 
69
            promises not to mutate the returned inventory entries, but it can
 
70
            make some operations significantly faster.
72
71
        """
73
72
        raise NotImplementedError(self.read_inventory_from_string)
74
73