summaryrefslogtreecommitdiff
path: root/libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp
diff options
context:
space:
mode:
authorJiwen 'Steve' Cai <jwcai@google.com>2017-05-18 17:03:20 -0700
committerJiwen 'Steve' Cai <jwcai@google.com>2017-05-19 10:41:55 -0700
commitcbd32bfd3a8dbac30228acbaee1daaf2466d643f (patch)
tree65f6513dfc31863206fd077666a57d9236335cfe /libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp
parent1f76a0daf4cc017a4ca1852a3b38b7add47be700 (diff)
Simplify ProducerQueue::Create
This is a preparation CL that simplifies ProducerQueue's constructor, Create(), and bufferhub_rpc::CreateProducerQueue prior to introducing more queue attributes (is_async, width, height, max_capacity, etc) on creation. 1/ Consolidate and/or remove unnecessary ProducerQueue::Create's overloading (we had way too many overloads of the create function and I figured it's awfully painful to introduce new attributes). 2/ Use UsagePolicy in ProducerQueue::Create. Also added default values for UsagePolicy, so that empty uniform initialization gives us a default policy. This helps us removing all ProducerQueue::Create overloading on whether default usage policy is needed. 3/ Move |meta_size_bytes| into ProducerQueueConfig. Bug: 38430974 Test: buffer_hub_queue_producer-test, buffer_hub_queue-test, dvr_api-test Change-Id: Ieba9f4d1bce2162bd1e6063989985afc8d014dc7
Diffstat (limited to 'libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp')
-rw-r--r--libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp18
1 files changed, 5 insertions, 13 deletions
diff --git a/libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp b/libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp
index 1978f41983..a3479c1ca7 100644
--- a/libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp
+++ b/libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp
@@ -10,7 +10,6 @@
#include <pdx/default_transport/client_channel.h>
#include <pdx/default_transport/client_channel_factory.h>
#include <pdx/file_handle.h>
-#include <private/dvr/bufferhub_rpc.h>
#define RETRY_EINTR(fnc_call) \
([&]() -> decltype(fnc_call) { \
@@ -106,7 +105,7 @@ Status<void> BufferHubQueue::ImportQueue() {
status.GetErrorMessage().c_str());
return ErrorStatus(status.error());
} else {
- SetupQueue(status.get().meta_size_bytes, status.get().id);
+ SetupQueue(status.get().producer_config.meta_size_bytes, status.get().id);
return {};
}
}
@@ -396,9 +395,6 @@ Status<std::shared_ptr<BufferHubBuffer>> BufferHubQueue::Dequeue(
return {std::move(buffer)};
}
-ProducerQueue::ProducerQueue(size_t meta_size)
- : ProducerQueue(meta_size, 0, 0, 0, 0) {}
-
ProducerQueue::ProducerQueue(LocalChannelHandle handle)
: BASE(std::move(handle)) {
auto status = ImportQueue();
@@ -409,14 +405,10 @@ ProducerQueue::ProducerQueue(LocalChannelHandle handle)
}
}
-ProducerQueue::ProducerQueue(size_t meta_size, uint64_t usage_set_mask,
- uint64_t usage_clear_mask,
- uint64_t usage_deny_set_mask,
- uint64_t usage_deny_clear_mask)
+ProducerQueue::ProducerQueue(size_t meta_size, const UsagePolicy& usage)
: BASE(BufferHubRPC::kClientPath) {
- auto status = InvokeRemoteMethod<BufferHubRPC::CreateProducerQueue>(
- meta_size, UsagePolicy{usage_set_mask, usage_clear_mask,
- usage_deny_set_mask, usage_deny_clear_mask});
+ auto status =
+ InvokeRemoteMethod<BufferHubRPC::CreateProducerQueue>(meta_size, usage);
if (!status) {
ALOGE("ProducerQueue::ProducerQueue: Failed to create producer queue: %s",
status.GetErrorMessage().c_str());
@@ -424,7 +416,7 @@ ProducerQueue::ProducerQueue(size_t meta_size, uint64_t usage_set_mask,
return;
}
- SetupQueue(status.get().meta_size_bytes, status.get().id);
+ SetupQueue(status.get().producer_config.meta_size_bytes, status.get().id);
}
Status<void> ProducerQueue::AllocateBuffer(uint32_t width, uint32_t height,