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