libgui: Normalize IGraphicBufferConsumer methods
This change modifies IGraphicBufferConsumer such that all synchronous
methods return a status_t and, as such, all outputs are returned by
output parameter rather than return value. It also eliminates the use
of a const char* parameter that SafeInterface can't handle.
Test: m -j + libgui_tests + manual testing
Change-Id: I9bb0e2892492d5e0a3f660bf228834b9ed014539
diff --git a/libs/gui/IGraphicBufferConsumer.cpp b/libs/gui/IGraphicBufferConsumer.cpp
index 4771033..befca11 100644
--- a/libs/gui/IGraphicBufferConsumer.cpp
+++ b/libs/gui/IGraphicBufferConsumer.cpp
@@ -187,11 +187,11 @@
return reply.readInt32();
}
- virtual void setConsumerName(const String8& name) {
+ virtual status_t setConsumerName(const String8& name) {
Parcel data, reply;
data.writeInterfaceToken(IGraphicBufferConsumer::getInterfaceDescriptor());
data.writeString8(name);
- remote()->transact(SET_CONSUMER_NAME, data, &reply);
+ return remote()->transact(SET_CONSUMER_NAME, data, &reply);
}
virtual status_t setDefaultBufferFormat(PixelFormat defaultFormat) {
@@ -238,18 +238,20 @@
return reply.readInt32();
}
- virtual sp<NativeHandle> getSidebandStream() const {
+ virtual status_t getSidebandStream(sp<NativeHandle>* outStream) const {
Parcel data, reply;
status_t err;
data.writeInterfaceToken(IGraphicBufferConsumer::getInterfaceDescriptor());
if ((err = remote()->transact(GET_SIDEBAND_STREAM, data, &reply)) != NO_ERROR) {
- return NULL;
+ *outStream = nullptr;
+ return err;
}
sp<NativeHandle> stream;
if (reply.readInt32()) {
stream = NativeHandle::create(reply.readNativeHandle(), true);
}
- return stream;
+ *outStream = std::move(stream);
+ return NO_ERROR;
}
virtual status_t getOccupancyHistory(bool forceFlush,
@@ -291,13 +293,12 @@
return result;
}
- virtual void dumpState(String8& result, const char* prefix) const {
+ virtual status_t dumpState(const String8& prefix, String8* outResult) const {
Parcel data, reply;
data.writeInterfaceToken(IGraphicBufferConsumer::getInterfaceDescriptor());
- data.writeString8(result);
- data.writeString8(String8(prefix ? prefix : ""));
+ data.writeString8(prefix);
remote()->transact(DUMP, data, &reply);
- reply.readString8();
+ return reply.readString8(outResult);
}
};
@@ -432,7 +433,8 @@
}
case GET_SIDEBAND_STREAM: {
CHECK_INTERFACE(IGraphicBufferConsumer, data, reply);
- sp<NativeHandle> stream = getSidebandStream();
+ sp<NativeHandle> stream;
+ getSidebandStream(&stream);
reply->writeInt32(static_cast<int32_t>(stream != NULL));
if (stream != NULL) {
reply->writeNativeHandle(stream->handle());
@@ -466,9 +468,9 @@
}
case DUMP: {
CHECK_INTERFACE(IGraphicBufferConsumer, data, reply);
- String8 result = data.readString8();
String8 prefix = data.readString8();
- static_cast<IGraphicBufferConsumer*>(this)->dumpState(result, prefix);
+ String8 result;
+ static_cast<IGraphicBufferConsumer*>(this)->dumpState(prefix, &result);
reply->writeString8(result);
return NO_ERROR;
}