replicant-frameworks_native/libs/utils
Christopher Tate 5c2882b25c Preserve file access mode when backing up / restoring files
This change adds a fixed-size metadata block at the head of each file's content
entity.  The block is versioned, and fixed-size on the theory that it might be
nice to be able to recover the content (if not the full metadata) of the files
if we're ever confronted with data backed up some hypothetical future helper
that stored expanded metadata.

The net effect is that now on restore, we assign the same access mode to the
file that it originally had when backed up.

Also, some of the code was failing to properly free transient heap-based buffers
when it encountered errors.  This has been fixed with the addition of a tiny
stack-based object whose job it is to free() its designated pointer from its
destructor.
2009-06-23 17:40:44 -07:00
..
Android.mk
Asset.cpp
AssetDir.cpp
AssetManager.cpp
BackupData.cpp
BackupHelpers.cpp Preserve file access mode when backing up / restoring files 2009-06-23 17:40:44 -07:00
Binder.cpp
BpBinder.cpp
BufferedTextOutput.cpp
CallStack.cpp
CharacterData.h
Debug.cpp
executablepath_darwin.cpp
executablepath_linux.cpp
FileMap.cpp
futex_synchro.c
IDataConnection.cpp
IInterface.cpp
IMemory.cpp
InetAddress.cpp
IPCThreadState.cpp
IPermissionController.cpp
IServiceManager.cpp
LogSocket.cpp
MemoryBase.cpp
MemoryDealer.cpp
MemoryHeapBase.cpp
MemoryHeapPmem.cpp
misc.cpp
MODULE_LICENSE_APACHE2
NOTICE
Parcel.cpp
Pipe.cpp
ported.cpp
ProcessState.cpp
README
RefBase.cpp
ResourceTypes.cpp
SharedBuffer.cpp
Socket.cpp
Static.cpp
StopWatch.cpp
String8.cpp
String16.cpp
SystemClock.cpp
TextOutput.cpp
Threads.cpp
TimerProbe.cpp
Timers.cpp
Unicode.cpp
VectorImpl.cpp
ZipEntry.cpp
ZipFile.cpp
ZipFileCRO.cpp
ZipFileRO.cpp
ZipUtils.cpp

Android Utility Function Library

If you need a feature that is native to Linux but not present on other
platforms, construct a platform-dependent implementation that shares
the Linux interface.  That way the actual device runs as "light" as
possible.

If that isn't feasible, create a system-independent interface and hide
the details.

The ultimate goal is *not* to create a super-duper platform abstraction
layer.  The goal is to provide an optimized solution for Linux with
reasonable implementations for other platforms.