OperationResult implements Parcelable interface
Simplify the code and prepare for the switch to cpp-aidl generated
interface, proxy and stub file.
Change-Id: Ia18ee6e47df540100f10be013084226dfc5cec7c
Signed-off-by: Bin Chen <pierr.chen@gmail.com>
diff --git a/keystore/IKeystoreService.cpp b/keystore/IKeystoreService.cpp
index 635d3a7..6507f79 100644
--- a/keystore/IKeystoreService.cpp
+++ b/keystore/IKeystoreService.cpp
@@ -55,7 +55,8 @@
OperationResult::~OperationResult() {
}
-void OperationResult::readFromParcel(const Parcel& in) {
+status_t OperationResult::readFromParcel(const Parcel* inn) {
+ const Parcel& in = *inn;
resultCode = in.readInt32();
token = in.readStrongBinder();
handle = static_cast<keymaster_operation_handle_t>(in.readInt64());
@@ -77,9 +78,10 @@
}
}
outParams.readFromParcel(in);
+ return OK;
}
-void OperationResult::writeToParcel(Parcel* out) const {
+status_t OperationResult::writeToParcel(Parcel* out) const {
out->writeInt32(resultCode);
out->writeStrongBinder(token);
out->writeInt64(handle);
@@ -94,6 +96,7 @@
}
}
outParams.writeToParcel(out);
+ return OK;
}
ExportResult::ExportResult() : resultCode(0), exportData(NULL), dataLength(0) {
@@ -1157,9 +1160,8 @@
result->resultCode = KM_ERROR_UNKNOWN_ERROR;
return;
}
- if (reply.readInt32() != 0) {
- result->readFromParcel(reply);
- }
+
+ reply.readParcelable(result);
}
virtual void update(const sp<IBinder>& token, const KeymasterArguments& params,
@@ -1186,9 +1188,8 @@
result->resultCode = KM_ERROR_UNKNOWN_ERROR;
return;
}
- if (reply.readInt32() != 0) {
- result->readFromParcel(reply);
- }
+
+ reply.readParcelable(result);
}
virtual void finish(const sp<IBinder>& token, const KeymasterArguments& params,
@@ -1218,9 +1219,8 @@
result->resultCode = KM_ERROR_UNKNOWN_ERROR;
return;
}
- if (reply.readInt32() != 0) {
- result->readFromParcel(reply);
- }
+
+ reply.readParcelable(result);
}
virtual int32_t abort(const sp<IBinder>& token)
@@ -1745,8 +1745,7 @@
OperationResult result;
begin(token, name, purpose, pruneable, args, entropy, entropyLength, &result);
reply->writeNoException();
- reply->writeInt32(1);
- result.writeToParcel(reply);
+ reply->writeParcelable(result);
return NO_ERROR;
}
@@ -1763,8 +1762,7 @@
OperationResult result;
update(token, args, buf, bufLength, &result);
reply->writeNoException();
- reply->writeInt32(1);
- result.writeToParcel(reply);
+ reply->writeParcelable(result);
return NO_ERROR;
}
@@ -1784,8 +1782,7 @@
OperationResult result;
finish(token, args, signature, signatureLength, entropy, entropyLength, &result);
reply->writeNoException();
- reply->writeInt32(1);
- result.writeToParcel(reply);
+ reply->writeParcelable(result);
return NO_ERROR;
}