summaryrefslogtreecommitdiffstats
path: root/devtools/shared/heapsnapshot/ZeroCopyNSIOutputStream.h
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/heapsnapshot/ZeroCopyNSIOutputStream.h')
-rw-r--r--devtools/shared/heapsnapshot/ZeroCopyNSIOutputStream.h70
1 files changed, 0 insertions, 70 deletions
diff --git a/devtools/shared/heapsnapshot/ZeroCopyNSIOutputStream.h b/devtools/shared/heapsnapshot/ZeroCopyNSIOutputStream.h
deleted file mode 100644
index 117fc0f87..000000000
--- a/devtools/shared/heapsnapshot/ZeroCopyNSIOutputStream.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef mozilla_devtools_ZeroCopyNSIOutputStream__
-#define mozilla_devtools_ZeroCopyNSIOutputStream__
-
-#include <google/protobuf/io/zero_copy_stream.h>
-#include <google/protobuf/stubs/common.h>
-
-#include "nsCOMPtr.h"
-#include "nsIOutputStream.h"
-
-namespace mozilla {
-namespace devtools {
-
-// A `google::protobuf::io::ZeroCopyOutputStream` implementation that uses an
-// `nsIOutputStream` under the covers.
-//
-// This class will automatically write and flush its data to the
-// `nsIOutputStream` in its destructor, but if you care whether that call
-// succeeds or fails, then you should call the `flush` method yourself. Errors
-// will be logged, however.
-class MOZ_STACK_CLASS ZeroCopyNSIOutputStream
- : public ::google::protobuf::io::ZeroCopyOutputStream
-{
- static const int BUFFER_SIZE = 8192;
-
- // The nsIOutputStream we are streaming to.
- nsCOMPtr<nsIOutputStream>& out;
-
- // The buffer we write data to before passing it to the output stream.
- char buffer[BUFFER_SIZE];
-
- // The status of writing to the underlying output stream.
- nsresult result_;
-
- // The number of bytes in the buffer that have been used thus far.
- int amountUsed;
-
- // Excluding the amount of the buffer currently used (which hasn't been
- // written and flushed yet), this is the number of bytes written to the output
- // stream.
- int64_t writtenCount;
-
- // Write the internal buffer to the output stream and flush it.
- nsresult writeBuffer();
-
-public:
- explicit ZeroCopyNSIOutputStream(nsCOMPtr<nsIOutputStream>& out);
-
- nsresult flush() { return writeBuffer(); }
-
- // Return true if writing to the underlying output stream ever failed.
- bool failed() const { return NS_FAILED(result_); }
-
- nsresult result() const { return result_; }
-
- // ZeroCopyOutputStream Interface
- virtual ~ZeroCopyNSIOutputStream() override;
- virtual bool Next(void** data, int* size) override;
- virtual void BackUp(int count) override;
- virtual ::google::protobuf::int64 ByteCount() const override;
-};
-
-} // namespace devtools
-} // namespace mozilla
-
-#endif // mozilla_devtools_ZeroCopyNSIOutputStream__