| Index: third_party/crashpad/crashpad/minidump/minidump_user_extension_stream_data_source.h
|
| diff --git a/third_party/crashpad/crashpad/minidump/minidump_user_extension_stream_data_source.h b/third_party/crashpad/crashpad/minidump/minidump_user_extension_stream_data_source.h
|
| index 1afb1661171fecef4f8fb097247ecbd82e830749..3eb0c8743afaf044fce5df471c11572822749fdc 100644
|
| --- a/third_party/crashpad/crashpad/minidump/minidump_user_extension_stream_data_source.h
|
| +++ b/third_party/crashpad/crashpad/minidump/minidump_user_extension_stream_data_source.h
|
| @@ -27,25 +27,54 @@ namespace crashpad {
|
| //! \brief Describes a user extension data stream in a minidump.
|
| class MinidumpUserExtensionStreamDataSource {
|
| public:
|
| + //! \brief An interface implemented by readers of
|
| + //! MinidumpUserExtensionStreamDataSource.
|
| + class Delegate {
|
| + public:
|
| + //! \brief Called by MinidumpUserExtensionStreamDataSource::Read() to
|
| + //! provide data requested by a call to that method.
|
| + //!
|
| + //! \param[in] data A pointer to the data that was read. The callee does not
|
| + //! take ownership of this data. This data is only valid for the
|
| + //! duration of the call to this method. This parameter may be `nullptr`
|
| + //! if \a size is `0`.
|
| + //! \param[in] size The size of the data that was read.
|
| + //!
|
| + //! \return `true` on success, `false` on failure.
|
| + //! MinidumpUserExtensionStreamDataSource::ReadStreamData() will use
|
| + //! this as its own return value.
|
| + virtual bool ExtensionStreamDataSourceRead(const void* data,
|
| + size_t size) = 0;
|
| +
|
| + protected:
|
| + ~Delegate() {}
|
| + };
|
| +
|
| //! \brief Constructs a MinidumpUserExtensionStreamDataSource.
|
| //!
|
| //! \param[in] stream_type The type of the user extension stream.
|
| - //! \param[in] buffer Points to the data for this stream. \a buffer is not
|
| - //! owned, and must outlive the use of this object.
|
| - //! \param[in] buffer_size The length of data in \a buffer.
|
| - MinidumpUserExtensionStreamDataSource(uint32_t stream_type,
|
| - const void* buffer,
|
| - size_t buffer_size);
|
| - ~MinidumpUserExtensionStreamDataSource();
|
| + explicit MinidumpUserExtensionStreamDataSource(uint32_t stream_type);
|
| + virtual ~MinidumpUserExtensionStreamDataSource();
|
|
|
| MinidumpStreamType stream_type() const { return stream_type_; }
|
| - const void* buffer() const { return buffer_; }
|
| - size_t buffer_size() const { return buffer_size_; }
|
| +
|
| + //! \brief The size of this data stream.
|
| + virtual size_t StreamDataSize() = 0;
|
| +
|
| + //! \brief Calls Delegate::UserStreamDataSourceRead(), providing it with
|
| + //! the stream data.
|
| + //!
|
| + //! Implementations do not necessarily compute the stream data prior to
|
| + //! this method being called. The stream data may be computed or loaded
|
| + //! lazily and may be discarded after being passed to the delegate.
|
| + //!
|
| + //! \return `false` on failure, otherwise, the return value of
|
| + //! Delegate::ExtensionStreamDataSourceRead(), which should be `true` on
|
| + //! success and `false` on failure.
|
| + virtual bool ReadStreamData(Delegate* delegate) = 0;
|
|
|
| private:
|
| MinidumpStreamType stream_type_;
|
| - const void* buffer_; // weak
|
| - size_t buffer_size_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MinidumpUserExtensionStreamDataSource);
|
| };
|
|
|