10b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin/*
20b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin * Copyright 2014 The Android Open Source Project
30b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin *
40b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin * Licensed under the Apache License, Version 2.0 (the "License");
50b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin * you may not use this file except in compliance with the License.
60b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin * You may obtain a copy of the License at
70b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin *
80b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin *      http://www.apache.org/licenses/LICENSE-2.0
90b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin *
100b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin * Unless required by applicable law or agreed to in writing, software
110b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin * distributed under the License is distributed on an "AS IS" BASIS,
120b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin * See the License for the specific language governing permissions and
140b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin * limitations under the License.
150b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin */
160b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
170b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin#include <img_utils/ByteArrayOutput.h>
180b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
190b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin#include <utils/Log.h>
200b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
210b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkinnamespace android {
220b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkinnamespace img_utils {
230b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
240b88a62d4d5ac1e515721e587cdf9bcec191812bIgor MurashkinByteArrayOutput::ByteArrayOutput() {}
250b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
260b88a62d4d5ac1e515721e587cdf9bcec191812bIgor MurashkinByteArrayOutput::~ByteArrayOutput() {}
270b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
280b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkinstatus_t ByteArrayOutput::open() {
290b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin    return OK;
300b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin}
310b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
320b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkinstatus_t ByteArrayOutput::write(const uint8_t* buf, size_t offset, size_t count) {
330b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin    if (mByteArray.appendArray(buf + offset, count) < 0) {
340b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin        ALOGE("%s: Failed to write to ByteArrayOutput.", __FUNCTION__);
350b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin        return BAD_VALUE;
360b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin    }
370b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin    return OK;
380b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin}
390b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
400b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkinstatus_t ByteArrayOutput::close() {
410b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin    mByteArray.clear();
420b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin    return OK;
430b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin}
440b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
450b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkinsize_t ByteArrayOutput::getSize() const {
460b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin    return mByteArray.size();
470b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin}
480b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
490b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkinconst uint8_t* ByteArrayOutput::getArray() const {
500b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin    return mByteArray.array();
510b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin}
520b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin
530b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin} /*namespace img_utils*/
540b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin} /*namespace android*/
550b88a62d4d5ac1e515721e587cdf9bcec191812bIgor Murashkin