BackupDataInputStream.java revision 5f15d151b5101fadfe6cba1e8f4aa6367e8c603e
15f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato/*
25f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato * Copyright (C) 2009 The Android Open Source Project
35f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato *
45f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato * Licensed under the Apache License, Version 2.0 (the "License");
55f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato * you may not use this file except in compliance with the License.
65f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato * You may obtain a copy of the License at
75f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato *
85f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato *      http://www.apache.org/licenses/LICENSE-2.0
95f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato *
105f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato * Unless required by applicable law or agreed to in writing, software
115f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato * distributed under the License is distributed on an "AS IS" BASIS,
125f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato * See the License for the specific language governing permissions and
145f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato * limitations under the License.
155f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato */
165f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
175f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onoratopackage android.backup;
185f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
195f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onoratoimport java.io.InputStream;
205f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onoratoimport java.io.IOException;
215f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
225f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato/** @hide */
235f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onoratopublic class BackupDataInputStream extends InputStream {
245f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
255f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    String key;
265f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    int dataSize;
275f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
285f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    BackupDataInput mData;
295f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    byte[] mOneByte;
305f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
315f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    BackupDataInputStream(BackupDataInput data) {
325f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato        mData = data;
335f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    }
345f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
355f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    public int read() throws IOException {
365f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato        byte[] one = mOneByte;
375f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato        if (mOneByte == null) {
385f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato            one = mOneByte = new byte[1];
395f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato        }
405f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato        mData.readEntityData(one, 0, 1);
415f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato        return one[0];
425f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    }
435f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
445f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    public int read(byte[] b, int offset, int size) throws IOException {
455f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato        return mData.readEntityData(b, offset, size);
465f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    }
475f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
485f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    public int read(byte[] b) throws IOException {
495f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato        return mData.readEntityData(b, 0, b.length);
505f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    }
515f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
525f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    public String getKey() {
535f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato        return this.key;
545f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    }
555f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
565f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    public int size() {
575f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato        return this.dataSize;
585f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato    }
595f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato}
605f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
615f15d151b5101fadfe6cba1e8f4aa6367e8c603eJoe Onorato
62