summaryrefslogtreecommitdiff
path: root/compiler/buffered_output_stream.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2015-12-01 10:16:19 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2015-12-01 10:16:19 +0000
commitd1744d449cf2b56af7e0896b3729fac2a414e3af (patch)
treecd23e1e0a3cea10cc9a9ae8269a01f75ada8ef0e /compiler/buffered_output_stream.h
parente51e3f988ba91f0469757738fa55f835e16e37d9 (diff)
parent10c13565474de2786aad7c2e79757ea250747a15 (diff)
Merge "Refactor oat file writing to give Dex2Oat more control."
Diffstat (limited to 'compiler/buffered_output_stream.h')
-rw-r--r--compiler/buffered_output_stream.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/compiler/buffered_output_stream.h b/compiler/buffered_output_stream.h
index b447f41e21..1da3a6932f 100644
--- a/compiler/buffered_output_stream.h
+++ b/compiler/buffered_output_stream.h
@@ -17,6 +17,8 @@
#ifndef ART_COMPILER_BUFFERED_OUTPUT_STREAM_H_
#define ART_COMPILER_BUFFERED_OUTPUT_STREAM_H_
+#include <memory>
+
#include "output_stream.h"
#include "globals.h"
@@ -25,26 +27,23 @@ namespace art {
class BufferedOutputStream FINAL : public OutputStream {
public:
- explicit BufferedOutputStream(OutputStream* out);
+ explicit BufferedOutputStream(std::unique_ptr<OutputStream> out);
- virtual ~BufferedOutputStream() {
- Flush();
- delete out_;
- }
+ ~BufferedOutputStream() OVERRIDE;
- virtual bool WriteFully(const void* buffer, size_t byte_count);
+ bool WriteFully(const void* buffer, size_t byte_count) OVERRIDE;
- virtual off_t Seek(off_t offset, Whence whence);
+ off_t Seek(off_t offset, Whence whence) OVERRIDE;
- bool Flush();
+ bool Flush() OVERRIDE;
private:
static const size_t kBufferSize = 8 * KB;
- OutputStream* const out_;
+ bool FlushBuffer();
+ std::unique_ptr<OutputStream> const out_;
uint8_t buffer_[kBufferSize];
-
size_t used_;
DISALLOW_COPY_AND_ASSIGN(BufferedOutputStream);