Index: third_party/protobuf/src/google/protobuf/io/zero_copy_stream.h |
diff --git a/third_party/protobuf/src/google/protobuf/io/zero_copy_stream.h b/third_party/protobuf/src/google/protobuf/io/zero_copy_stream.h |
index db5326f703dbe2239488d8a1495da25971892d8d..52650fc6686d50bbaa70b038b2bef8f04de7c435 100644 |
--- a/third_party/protobuf/src/google/protobuf/io/zero_copy_stream.h |
+++ b/third_party/protobuf/src/google/protobuf/io/zero_copy_stream.h |
@@ -1,6 +1,6 @@ |
// Protocol Buffers - Google's data interchange format |
// Copyright 2008 Google Inc. All rights reserved. |
-// http://code.google.com/p/protobuf/ |
+// https://developers.google.com/protocol-buffers/ |
// |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
@@ -226,6 +226,16 @@ class LIBPROTOBUF_EXPORT ZeroCopyOutputStream { |
// Returns the total number of bytes written since this object was created. |
virtual int64 ByteCount() const = 0; |
+ // Write a given chunk of data to the output. Some output streams may |
+ // implement this in a way that avoids copying. Check AllowsAliasing() before |
+ // calling WriteAliasedRaw(). It will GOOGLE_CHECK fail if WriteAliasedRaw() is |
+ // called on a stream that does not allow aliasing. |
+ // |
+ // NOTE: It is caller's responsibility to ensure that the chunk of memory |
+ // remains live until all of the data has been consumed from the stream. |
+ virtual bool WriteAliasedRaw(const void* data, int size); |
+ virtual bool AllowsAliasing() const { return false; } |
+ |
private: |
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ZeroCopyOutputStream); |