A11 (C++ runtime)
Native C++ implementation of the A11 action and streaming runtime
Loading...
Searching...
No Matches
a11::stores::ChunkStoreReader::State Struct Referenceabstract
Inheritance diagram for a11::stores::ChunkStoreReader::State:
[legend]

Classes

struct  Completion
 
struct  Request
 

Public Types

enum class  CompletionKind { kFragment , kEnd , kError }
 
enum class  Operation { kNone , kFetch , kClear }
 
using NextResult = std::optional< data::NodeFragment >
 

Public Member Functions

 State (std::shared_ptr< ChunkStore > chunk_store, ChunkStoreReaderOptions reader_options)
 
void Wake ()
 
void Cancel ()
 
a11::Future< NextResultNext (absl::Duration timeout)
 
void Drive ()
 
void InstallFetch (a11::Future< data::NodeFragment > pending, std::uint64_t generation)
 
void FetchDone (std::uint64_t generation, const absl::StatusOr< data::NodeFragment > &result)
 
void InstallClear (a11::Future< data::NodeFragment > pending, std::uint64_t generation)
 
void ClearDone (std::uint64_t generation, const absl::StatusOr< data::NodeFragment > &result)
 
void MaybeCompleteDone ()
 
void FinishFragmentLocked (data::NodeFragment fragment, std::vector< Completion > *completions) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu)
 
size_t ActivePendingReadCountLocked () const ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu)
 
bool HasReadCapacityLocked () const ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu)
 
std::shared_ptr< RequestPopPendingReadLocked () ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu)
 
void CollectAvailableLocked (std::vector< Completion > *completions) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu)
 
std::uint64_t position ABSL_GUARDED_BY (mu)
 
std::uint64_t chunks_read ABSL_GUARDED_BY (mu)=0
 
std::string current_mimetype ABSL_GUARDED_BY (mu)
 
std::optional< absl::Status > status ABSL_GUARDED_BY (mu)
 
std::deque< data::NodeFragment > buffer ABSL_GUARDED_BY (mu)
 
std::deque< std::shared_ptr< Request > > pending_reads ABSL_GUARDED_BY (mu)
 
bool queued ABSL_GUARDED_BY (mu)
 
Operation operation ABSL_GUARDED_BY (mu)
 
std::uint64_t operation_generation ABSL_GUARDED_BY (mu)=0
 
a11::Future< data::NodeFragment > active_operation ABSL_GUARDED_BY (mu)
 
bool done_completed ABSL_GUARDED_BY (mu)
 

Static Public Member Functions

static a11::internal::CallbackScheduler & Scheduler ()
 
static void Complete (std::vector< Completion > completions)
 

Public Attributes

const std::shared_ptr< ChunkStorestore
 
const ChunkStoreReaderOptions options
 
thread::Mutex mu
 
a11::Promise< a11::Unitdone_promise
 
const a11::Task done
 

Member Typedef Documentation

◆ NextResult

Member Enumeration Documentation

◆ CompletionKind

Enumerator
kFragment 
kEnd 
kError 

◆ Operation

Enumerator
kNone 
kFetch 
kClear 

Constructor & Destructor Documentation

◆ State()

a11::stores::ChunkStoreReader::State::State ( std::shared_ptr< ChunkStore chunk_store,
ChunkStoreReaderOptions  reader_options 
)
inline

Member Function Documentation

◆ ABSL_GUARDED_BY() [1/11]

std::uint64_t position a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [2/11]

std::string current_mimetype a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [3/11]

std::optional< absl::Status > status a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [4/11]

std::deque< data::NodeFragment > buffer a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [5/11]

std::deque< std::shared_ptr< Request > > pending_reads a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [6/11]

bool queued a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [7/11]

Operation operation a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [8/11]

a11::Future< data::NodeFragment > active_operation a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [9/11]

bool done_completed a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [10/11]

std::uint64_t chunks_read a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )
pure virtual

◆ ABSL_GUARDED_BY() [11/11]

std::uint64_t operation_generation a11::stores::ChunkStoreReader::State::ABSL_GUARDED_BY ( mu  )
pure virtual

◆ ActivePendingReadCountLocked()

size_t a11::stores::ChunkStoreReader::State::ActivePendingReadCountLocked ( ) const
inline

◆ Cancel()

void a11::stores::ChunkStoreReader::State::Cancel ( )
inline

◆ ClearDone()

void a11::stores::ChunkStoreReader::State::ClearDone ( std::uint64_t  generation,
const absl::StatusOr< data::NodeFragment > &  result 
)
inline

◆ CollectAvailableLocked()

void a11::stores::ChunkStoreReader::State::CollectAvailableLocked ( std::vector< Completion > *  completions)
inline

◆ Complete()

static void a11::stores::ChunkStoreReader::State::Complete ( std::vector< Completion completions)
inlinestatic

◆ Drive()

void a11::stores::ChunkStoreReader::State::Drive ( )
inline

◆ FetchDone()

void a11::stores::ChunkStoreReader::State::FetchDone ( std::uint64_t  generation,
const absl::StatusOr< data::NodeFragment > &  result 
)
inline

◆ FinishFragmentLocked()

void a11::stores::ChunkStoreReader::State::FinishFragmentLocked ( data::NodeFragment  fragment,
std::vector< Completion > *  completions 
)
inline

◆ HasReadCapacityLocked()

bool a11::stores::ChunkStoreReader::State::HasReadCapacityLocked ( ) const
inline

◆ InstallClear()

void a11::stores::ChunkStoreReader::State::InstallClear ( a11::Future< data::NodeFragment pending,
std::uint64_t  generation 
)
inline

◆ InstallFetch()

void a11::stores::ChunkStoreReader::State::InstallFetch ( a11::Future< data::NodeFragment pending,
std::uint64_t  generation 
)
inline

◆ MaybeCompleteDone()

void a11::stores::ChunkStoreReader::State::MaybeCompleteDone ( )
inline

◆ Next()

a11::Future< NextResult > a11::stores::ChunkStoreReader::State::Next ( absl::Duration  timeout)
inline

◆ PopPendingReadLocked()

std::shared_ptr< Request > a11::stores::ChunkStoreReader::State::PopPendingReadLocked ( )
inline

◆ Scheduler()

static a11::internal::CallbackScheduler & a11::stores::ChunkStoreReader::State::Scheduler ( )
inlinestatic

◆ Wake()

void a11::stores::ChunkStoreReader::State::Wake ( )
inline

Member Data Documentation

◆ done

const a11::Task a11::stores::ChunkStoreReader::State::done

◆ done_promise

a11::Promise<a11::Unit> a11::stores::ChunkStoreReader::State::done_promise

◆ mu

thread::Mutex a11::stores::ChunkStoreReader::State::mu
mutable

◆ options

const ChunkStoreReaderOptions a11::stores::ChunkStoreReader::State::options

◆ store

const std::shared_ptr<ChunkStore> a11::stores::ChunkStoreReader::State::store

The documentation for this struct was generated from the following file: