BackupHelper.java revision 4e14a829129feee14ebe453f61a124784c870610
1c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar/* 2c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * Copyright (C) 2009 The Android Open Source Project 3c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * 4c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * Licensed under the Apache License, Version 2.0 (the "License"); 5c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * you may not use this file except in compliance with the License. 6c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * You may obtain a copy of the License at 7c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * 8c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * http://www.apache.org/licenses/LICENSE-2.0 9c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * 10c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * Unless required by applicable law or agreed to in writing, software 11c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * distributed under the License is distributed on an "AS IS" BASIS, 12c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * See the License for the specific language governing permissions and 14c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * limitations under the License. 15c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar */ 16c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar 17c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyarpackage android.app.backup; 18c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar 19c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyarimport android.os.ParcelFileDescriptor; 20c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar 21c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar/** 22c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * A convenient interface to be used with the 23c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * {@link android.app.backup.BackupAgentHelper} class to implement backup and restore of 24c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * arbitrary data types. 25c43ce90b803cdfa033dfc94fa4161371ed6f3ec6Sergey Vasilinets * <p> 2634e5031083f735db3a395b0f6aa430880b072d71Yigit Boyar * STOPSHIP: document! 2734e5031083f735db3a395b0f6aa430880b072d71Yigit Boyar */ 28c43ce90b803cdfa033dfc94fa4161371ed6f3ec6Sergey Vasilinetspublic interface BackupHelper { 29c43ce90b803cdfa033dfc94fa4161371ed6f3ec6Sergey Vasilinets /** 30c43ce90b803cdfa033dfc94fa4161371ed6f3ec6Sergey Vasilinets * Based on <code>oldState</code>, determine which of the files from the 31c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * application's data directory need to be backed up, write them to 32e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets * <code>data</code>, and fill in <code>newState</code> with the state as it 33e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets * exists now. 34e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets */ 35e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets public void performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, 36e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets ParcelFileDescriptor newState); 3789b6198c76e51a505556d7f4e57d3e48e24d5eceYigit Boyar 3889b6198c76e51a505556d7f4e57d3e48e24d5eceYigit Boyar /** 39e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets * Called by {@link android.app.backup.BackupAgentHelper BackupAgentHelper} 40e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets * to restore one entity from the restore dataset. 41e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets * <p class=note> 4289b6198c76e51a505556d7f4e57d3e48e24d5eceYigit Boyar * Do not close the <code>data</code> stream. Do not read more than 4389b6198c76e51a505556d7f4e57d3e48e24d5eceYigit Boyar * <code>data.size()</code> bytes from <code>data</code>. 44e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets */ 45e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets public void restoreEntity(BackupDataInputStream data); 46e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets 4789b6198c76e51a505556d7f4e57d3e48e24d5eceYigit Boyar /** 4889b6198c76e51a505556d7f4e57d3e48e24d5eceYigit Boyar * Called by {@link android.app.backup.BackupAgentHelper BackupAgentHelper} 4989b6198c76e51a505556d7f4e57d3e48e24d5eceYigit Boyar * after a restore operation to write the backup state file corresponding to 50c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar * the data as processed by the helper. 51e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets */ 52e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets public void writeNewStateDescription(ParcelFileDescriptor fd); 53e69e470336d0b6a1b4a16fe1783af17143d0c426Sergey Vasilinets} 54c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar 55c1b53ee5d095a74b84c21257fb4cd00e33f748baYigit Boyar