diff options
author | Jiwen 'Steve' Cai <jwcai@google.com> | 2017-05-18 17:03:20 -0700 |
---|---|---|
committer | Jiwen 'Steve' Cai <jwcai@google.com> | 2017-05-19 10:41:55 -0700 |
commit | cbd32bfd3a8dbac30228acbaee1daaf2466d643f (patch) | |
tree | 65f6513dfc31863206fd077666a57d9236335cfe /libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp | |
parent | 1f76a0daf4cc017a4ca1852a3b38b7add47be700 (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.cpp | 18 |
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, |