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

Classes

struct  Batch
 
struct  Element
 

Public Types

enum class  Lifecycle { kNone , kClose , kAbort , kCancel }
 
enum class  Operation { kNone , kWrite , kClose }
 

Public Member Functions

 State (std::shared_ptr< ChunkStore > chunk_store, ChunkStoreWriterOptions writer_options)
 
void ApplyStickyMimetypeLocked (data::Chunk &chunk, bool explicit_sequence_gap) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu)
 
void Wake ()
 
void Drive ()
 
void StartWrite (std::uint64_t generation)
 
void InstallWrite (a11::Future< std::vector< std::uint32_t > > pending, std::uint64_t generation)
 
void WriteDone (std::uint64_t generation, const absl::StatusOr< std::vector< std::uint32_t > > &result)
 
void StartClose (std::uint64_t generation, absl::Status requested_status)
 
void CloseDone (std::uint64_t generation, const absl::Status &requested_status, const absl::StatusOr< absl::Status > &result)
 
void AdmitPendingLocked (std::vector< std::shared_ptr< a11::Promise< a11::Unit > > > *admitted) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu)
 
std::uint64_t next_offset_seq ABSL_GUARDED_BY (mu)
 
std::uint64_t next_sticky_seq ABSL_GUARDED_BY (mu)
 
std::string current_mimetype ABSL_GUARDED_BY (mu)
 
std::deque< Element > queue ABSL_GUARDED_BY (mu)
 
std::deque< Element > pending_queue ABSL_GUARDED_BY (mu)
 
size_t outstanding ABSL_GUARDED_BY (mu)=0
 
std::optional< absl::Status > status ABSL_GUARDED_BY (mu)
 
bool closing ABSL_GUARDED_BY (mu)
 
std::optional< absl::Status > stop_status ABSL_GUARDED_BY (mu)
 
Lifecycle lifecycle ABSL_GUARDED_BY (mu)
 
bool lifecycle_completed ABSL_GUARDED_BY (mu)
 
std::shared_ptr< a11::Promise< a11::Unit > > lifecycle_promise ABSL_GUARDED_BY (mu)
 
a11::Task lifecycle_future ABSL_GUARDED_BY (mu)
 
std::vector< std::shared_ptr< a11::Promise< a11::Unit > > > drain_waiters ABSL_GUARDED_BY (mu)
 
std::vector< std::shared_ptr< net::WireStream > > attached_streams 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< std::vector< std::uint32_t > > active_write ABSL_GUARDED_BY (mu)
 
a11::Future< absl::Status > active_close ABSL_GUARDED_BY (mu)
 

Static Public Member Functions

static a11::internal::CallbackScheduler & Scheduler ()
 
static void CompleteElements (std::vector< Element > elements, std::vector< std::uint32_t > sequences, const absl::Status &status)
 

Public Attributes

const std::shared_ptr< ChunkStorestore
 
const ChunkStoreWriterOptions options
 
thread::Mutex mu
 
std::optional< Batchin_flight_batch
 

Member Enumeration Documentation

◆ Lifecycle

Enumerator
kNone 
kClose 
kAbort 
kCancel 

◆ Operation

Enumerator
kNone 
kWrite 
kClose 

Constructor & Destructor Documentation

◆ State()

a11::stores::ChunkStoreWriter::State::State ( std::shared_ptr< ChunkStore chunk_store,
ChunkStoreWriterOptions  writer_options 
)
inline

Member Function Documentation

◆ ABSL_GUARDED_BY() [1/20]

std::uint64_t next_offset_seq a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [2/20]

std::uint64_t next_sticky_seq a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [3/20]

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

◆ ABSL_GUARDED_BY() [4/20]

std::deque< Element > queue a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [5/20]

std::deque< Element > pending_queue a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [6/20]

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

◆ ABSL_GUARDED_BY() [7/20]

bool closing a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [8/20]

std::optional< absl::Status > stop_status a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [9/20]

Lifecycle lifecycle a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [10/20]

bool lifecycle_completed a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [11/20]

std::shared_ptr< a11::Promise< a11::Unit > > lifecycle_promise a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [12/20]

a11::Task lifecycle_future a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [13/20]

std::vector< std::shared_ptr< a11::Promise< a11::Unit > > > drain_waiters a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [14/20]

std::vector< std::shared_ptr< net::WireStream > > attached_streams a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [15/20]

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

◆ ABSL_GUARDED_BY() [16/20]

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

◆ ABSL_GUARDED_BY() [17/20]

a11::Future< std::vector< std::uint32_t > > active_write a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [18/20]

a11::Future< absl::Status > active_close a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )

◆ ABSL_GUARDED_BY() [19/20]

size_t outstanding a11::stores::ChunkStoreWriter::State::ABSL_GUARDED_BY ( mu  )
pure virtual

◆ ABSL_GUARDED_BY() [20/20]

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

◆ AdmitPendingLocked()

void a11::stores::ChunkStoreWriter::State::AdmitPendingLocked ( std::vector< std::shared_ptr< a11::Promise< a11::Unit > > > *  admitted)
inline

◆ ApplyStickyMimetypeLocked()

void a11::stores::ChunkStoreWriter::State::ApplyStickyMimetypeLocked ( data::Chunk chunk,
bool  explicit_sequence_gap 
)
inline

◆ CloseDone()

void a11::stores::ChunkStoreWriter::State::CloseDone ( std::uint64_t  generation,
const absl::Status &  requested_status,
const absl::StatusOr< absl::Status > &  result 
)
inline

◆ CompleteElements()

static void a11::stores::ChunkStoreWriter::State::CompleteElements ( std::vector< Element elements,
std::vector< std::uint32_t >  sequences,
const absl::Status &  status 
)
inlinestatic

◆ Drive()

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

◆ InstallWrite()

void a11::stores::ChunkStoreWriter::State::InstallWrite ( a11::Future< std::vector< std::uint32_t > >  pending,
std::uint64_t  generation 
)
inline

◆ Scheduler()

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

◆ StartClose()

void a11::stores::ChunkStoreWriter::State::StartClose ( std::uint64_t  generation,
absl::Status  requested_status 
)
inline

◆ StartWrite()

void a11::stores::ChunkStoreWriter::State::StartWrite ( std::uint64_t  generation)
inline

◆ Wake()

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

◆ WriteDone()

void a11::stores::ChunkStoreWriter::State::WriteDone ( std::uint64_t  generation,
const absl::StatusOr< std::vector< std::uint32_t > > &  result 
)
inline

Member Data Documentation

◆ in_flight_batch

std::optional<Batch> a11::stores::ChunkStoreWriter::State::in_flight_batch

◆ mu

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

◆ options

const ChunkStoreWriterOptions a11::stores::ChunkStoreWriter::State::options

◆ store

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

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