Add support for reading multiple frames from one BlockingQueueStream buffer

PiperOrigin-RevId: 709247147
This commit is contained in:
hai007
2024-12-23 22:54:08 -08:00
committed by Copybara-Service
parent c9fbf6b690
commit 42db63c19b
6 changed files with 125 additions and 13 deletions
+11 -4
View File
@@ -17,6 +17,8 @@
#include <cstdint>
#include "connections/implementation/flags/nearby_connections_feature_flags.h"
#include "internal/flags/nearby_flags.h"
#include "internal/platform/array_blocking_queue.h"
#include "internal/platform/byte_array.h"
#include "internal/platform/exception.h"
@@ -39,10 +41,15 @@ class BlockingQueueStream : public InputStream {
private:
mutable Mutex mutex_;
ArrayBlockingQueue<ByteArray> blocking_queue_{FeatureFlags::GetInstance()
.GetFlags()
.blocking_queue_stream_queue_capacity};
ByteArray queue_end_{0};
bool is_multiplex_enabled_ = NearbyFlags::GetInstance().GetBoolFlag(
connections::config_package_nearby::nearby_connections_feature::
kEnableMultiplex);
ArrayBlockingQueue<ByteArray> blocking_queue_{
FeatureFlags::GetInstance()
.GetFlags()
.blocking_queue_stream_queue_capacity};
ByteArray queue_head_;
ByteArray queue_end_ = ByteArray();
bool is_writing_ = false;
bool is_closed_ = false;
};