bufferpool2.0: apply hidl interface update

Bug: 112203066
Change-Id: I2f797f72c34d923f4b9efa5cf6eefad468458233
gugelfrei
Sungtak Lee 6 years ago
parent d4a9ce4ba7
commit 1cb0ccb5b9

@ -117,14 +117,20 @@ sp<ConnectionDeathRecipient> Accessor::getConnectionDeathRecipient() {
Return<void> Accessor::connect(connect_cb _hidl_cb) {
sp<Connection> connection;
ConnectionId connectionId;
const QueueDescriptor* fmqDesc;
const StatusDescriptor* fmqDesc;
ResultStatus status = connect(&connection, &connectionId, &fmqDesc, false);
if (status == ResultStatus::OK) {
_hidl_cb(status, connection, connectionId, *fmqDesc);
_hidl_cb(status, connection, connectionId, *fmqDesc,
android::hardware::MQDescriptorSync<BufferInvalidationMessage>(
std::vector<android::hardware::GrantorDescriptor>(),
nullptr /* nhandle */, 0 /* size */));
} else {
_hidl_cb(status, nullptr, -1LL,
android::hardware::MQDescriptorSync<BufferStatusMessage>(
std::vector<android::hardware::GrantorDescriptor>(),
nullptr /* nhandle */, 0 /* size */),
android::hardware::MQDescriptorSync<BufferInvalidationMessage>(
std::vector<android::hardware::GrantorDescriptor>(),
nullptr /* nhandle */, 0 /* size */));
}
@ -162,7 +168,7 @@ ResultStatus Accessor::fetch(
ResultStatus Accessor::connect(
sp<Connection> *connection, ConnectionId *pConnectionId,
const QueueDescriptor** fmqDescPtr, bool local) {
const StatusDescriptor** fmqDescPtr, bool local) {
if (mImpl) {
ResultStatus status = mImpl->connect(this, connection, pConnectionId, fmqDescPtr);
if (!local && status == ResultStatus::OK) {

@ -147,7 +147,7 @@ struct Accessor : public IAccessor {
*/
ResultStatus connect(
sp<Connection> *connection, ConnectionId *pConnectionId,
const QueueDescriptor** fmqDescPtr, bool local);
const StatusDescriptor** fmqDescPtr, bool local);
/**
* Closes the specified connection to the client.

@ -139,7 +139,7 @@ Accessor::Impl::~Impl() {
ResultStatus Accessor::Impl::connect(
const sp<Accessor> &accessor, sp<Connection> *connection,
ConnectionId *pConnectionId, const QueueDescriptor** fmqDescPtr) {
ConnectionId *pConnectionId, const StatusDescriptor** fmqDescPtr) {
sp<Connection> newConnection = new Connection();
ResultStatus status = ResultStatus::CRITICAL_ERROR;
{

@ -41,7 +41,7 @@ public:
ResultStatus connect(
const sp<Accessor> &accessor, sp<Connection> *connection,
ConnectionId *pConnectionId, const QueueDescriptor** fmqDescPtr);
ConnectionId *pConnectionId, const StatusDescriptor** fmqDescPtr);
ResultStatus close(ConnectionId connectionId);

@ -247,7 +247,7 @@ public:
BufferPoolClient::Impl::Impl(const sp<Accessor> &accessor)
: mLocal(true), mValid(false), mAccessor(accessor), mSeqId(0),
mLastEvictCacheUs(getTimestampNow()) {
const QueueDescriptor *fmqDesc;
const StatusDescriptor *fmqDesc;
ResultStatus status = accessor->connect(
&mLocalConnection, &mConnectionId, &fmqDesc, true);
if (status == ResultStatus::OK) {
@ -269,7 +269,9 @@ BufferPoolClient::Impl::Impl(const sp<IAccessor> &accessor)
Return<void> transResult = accessor->connect(
[&valid, &outConnection, &id, &outChannel]
(ResultStatus status, sp<IConnection> connection,
ConnectionId connectionId, const QueueDescriptor& desc) {
ConnectionId connectionId, const StatusDescriptor& desc,
const InvalidationDescriptor& invDesc) {
(void) invDesc;
if (status == ResultStatus::OK) {
outConnection = connection;
id = connectionId;

@ -41,7 +41,7 @@ static constexpr int kNumElementsInQueue = 1024*16;
static constexpr int kMinElementsToSyncInQueue = 128;
ResultStatus BufferStatusObserver::open(
ConnectionId id, const QueueDescriptor** fmqDescPtr) {
ConnectionId id, const StatusDescriptor** fmqDescPtr) {
if (mBufferStatusQueues.find(id) != mBufferStatusQueues.end()) {
// TODO: id collision log?
return ResultStatus::CRITICAL_ERROR;
@ -91,7 +91,7 @@ void BufferStatusObserver::getBufferStatusChanges(std::vector<BufferStatusMessag
}
BufferStatusChannel::BufferStatusChannel(
const QueueDescriptor &fmqDesc) {
const StatusDescriptor &fmqDesc) {
std::unique_ptr<BufferStatusQueue> queue =
std::make_unique<BufferStatusQueue>(fmqDesc);
if (!queue || queue->isValid() == false) {

@ -56,7 +56,7 @@ public:
* NO_MEMORY when there is no memory.
* CRITICAL_ERROR otherwise.
*/
ResultStatus open(ConnectionId id, const QueueDescriptor** fmqDescPtr);
ResultStatus open(ConnectionId id, const StatusDescriptor** fmqDescPtr);
/** Closes an FMQ for the specified connection(client).
*
@ -89,7 +89,7 @@ public:
*
* @param fmqDesc Descriptor of the created FMQ.
*/
BufferStatusChannel(const QueueDescriptor &fmqDesc);
BufferStatusChannel(const StatusDescriptor &fmqDesc);
/** Returns whether the FMQ is connected successfully. */
bool isValid();

@ -58,7 +58,11 @@ enum : ConnectionId {
};
typedef android::hardware::MessageQueue<BufferStatusMessage, kSynchronizedReadWrite> BufferStatusQueue;
typedef BufferStatusQueue::Descriptor QueueDescriptor;
typedef BufferStatusQueue::Descriptor StatusDescriptor;
typedef android::hardware::MessageQueue<BufferInvalidationMessage, kSynchronizedReadWrite>
BufferInvalidationQueue;
typedef BufferInvalidationQueue::Descriptor InvalidationDescriptor;
/**
* Allocation wrapper class for buffer pool.

Loading…
Cancel
Save