BigBufferOutputStream.h revision 06460ef0d7072114ea3280e1650f77f55e7223f4
1ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu/* 2ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * Copyright (C) 2017 The Android Open Source Project 3ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * 4ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * Licensed under the Apache License, Version 2.0 (the "License"); 5ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * you may not use this file except in compliance with the License. 6ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * You may obtain a copy of the License at 7ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * 8ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * http://www.apache.org/licenses/LICENSE-2.0 9ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * 10ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * Unless required by applicable law or agreed to in writing, software 11ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * distributed under the License is distributed on an "AS IS" BASIS, 12ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * See the License for the specific language governing permissions and 14ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu * limitations under the License. 15ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu */ 16ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 17ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu#ifndef AAPT_IO_BIGBUFFEROUTPUTSTREAM_H 18ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu#define AAPT_IO_BIGBUFFEROUTPUTSTREAM_H 19ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 20ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu#include "io/Io.h" 21ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu#include "util/BigBuffer.h" 22ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 23ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gunamespace aapt { 24ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gunamespace io { 25ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 26ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Guclass BigBufferOutputStream : public OutputStream { 27ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu public: 28ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu inline explicit BigBufferOutputStream(BigBuffer* buffer) : buffer_(buffer) {} 29ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu virtual ~BigBufferOutputStream() = default; 30ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 31ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu bool Next(void** data, size_t* size) override; 32ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 33ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu void BackUp(size_t count) override; 34ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 35ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu size_t ByteCount() const override; 36ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 37ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu bool HadError() const override; 38ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 39ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu private: 40ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu DISALLOW_COPY_AND_ASSIGN(BigBufferOutputStream); 41ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 42ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu BigBuffer* buffer_; 43ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu}; 44ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 45fa0f278ff6c3ac316e12489a3cf0146766c168ceAlan Viverette} // namespace io 46ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu} // namespace aapt 47ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu 48ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu#endif // AAPT_IO_BIGBUFFEROUTPUTSTREAM_H 49ae6b4cc8fd0872c64c4e1295e54e109222938d86Dake Gu