Rewrite battery history storage.

We now write battery history directly into a buffer, instead of
creating objects.  This allows for more efficient storage; later
it can be even better because we can only write deltas.

The old code is still there temporarily for validation.

Change-Id: I9707d4d8ff30855be8ebdc93bc078911040d8e0b
This commit is contained in:
Dianne Hackborn 2011-04-13 18:15:56 -07:00
parent 4849bc5b3d
commit 97e2bcd760

View File

@ -338,7 +338,7 @@ void Parcel::setDataPosition(size_t pos) const
status_t Parcel::setDataCapacity(size_t size) status_t Parcel::setDataCapacity(size_t size)
{ {
if (size > mDataSize) return continueWrite(size); if (size > mDataCapacity) return continueWrite(size);
return NO_ERROR; return NO_ERROR;
} }
@ -386,11 +386,13 @@ status_t Parcel::appendFrom(Parcel *parcel, size_t offset, size_t len)
} }
int numObjects = lastIndex - firstIndex + 1; int numObjects = lastIndex - firstIndex + 1;
if ((mDataSize+len) > mDataCapacity) {
// grow data // grow data
err = growData(len); err = growData(len);
if (err != NO_ERROR) { if (err != NO_ERROR) {
return err; return err;
} }
}
// append data // append data
memcpy(mData + mDataPos, data + offset, len); memcpy(mData + mDataPos, data + offset, len);
@ -1384,8 +1386,10 @@ status_t Parcel::continueWrite(size_t desired)
return NO_MEMORY; return NO_MEMORY;
} }
} else { } else {
if (mDataSize > desired) {
mDataSize = desired; mDataSize = desired;
LOGV("continueWrite Setting data size of %p to %d\n", this, mDataSize); LOGV("continueWrite Setting data size of %p to %d\n", this, mDataSize);
}
if (mDataPos > desired) { if (mDataPos > desired) {
mDataPos = desired; mDataPos = desired;
LOGV("continueWrite Setting data pos of %p to %d\n", this, mDataPos); LOGV("continueWrite Setting data pos of %p to %d\n", this, mDataPos);