Android-cuttlefish cvd tool
Public Member Functions | Private Member Functions | Private Attributes | List of all members
cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo Class Reference
Inheritance diagram for cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo:
Inheritance graph
[legend]
Collaboration diagram for cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo:
Collaboration graph
[legend]

Public Member Functions

 InMemoryIo (std::vector< char > &data, std::shared_mutex &mutex)
 
Result< uint64_t > Read (void *buf, uint64_t count) override
 
Result< uint64_t > Write (const void *buf, uint64_t count) override
 
Result< uint64_t > SeekSet (uint64_t offset) override
 
Result< uint64_t > SeekCur (int64_t offset) override
 
Result< uint64_t > SeekEnd (int64_t offset) override
 
Result< uint64_t > PRead (void *buf, uint64_t count, uint64_t offset) const override
 
Result< uint64_t > PWrite (const void *buf, uint64_t count, uint64_t offset) override
 
- Public Member Functions inherited from cuttlefish::ReaderWriterSeeker
Result< void > Visit (IoVisitor &) override
 
Result< uint64_t > Read (void *buf, uint64_t count) override=0
 
Result< uint64_t > Write (const void *buf, uint64_t count) override=0
 
Result< uint64_t > SeekSet (uint64_t offset) override=0
 
Result< uint64_t > SeekCur (int64_t offset) override=0
 
Result< uint64_t > SeekEnd (int64_t offset) override=0
 
Result< uint64_t > PRead (void *buf, uint64_t count, uint64_t offset) const override=0
 
Result< uint64_t > PWrite (const void *buf, uint64_t count, uint64_t offset) override=0
 
Result< void > Truncate (uint64_t size) override
 
Result< void > Visit (IoVisitor &) override
 
virtual Result< uint64_t > PRead (void *buf, uint64_t count, uint64_t offset) const =0
 
- Public Member Functions inherited from cuttlefish::Reader
virtual ~Reader ()=default
 
Result< void > Visit (IoVisitor &) override
 
virtual Result< uint64_t > Read (void *buf, uint64_t count)=0
 
- Public Member Functions inherited from cuttlefish::IoVisitable
virtual ~IoVisitable ()=default
 
virtual Result< void > Visit (IoVisitor &)=0
 
- Public Member Functions inherited from cuttlefish::Seeker
virtual ~Seeker ()=default
 
Result< void > Visit (IoVisitor &) override
 
virtual Result< uint64_t > SeekSet (uint64_t offset)=0
 
virtual Result< uint64_t > SeekCur (int64_t offset)=0
 
virtual Result< uint64_t > SeekEnd (int64_t offset)=0
 
Result< void > Visit (IoVisitor &) override
 
virtual Result< uint64_t > PWrite (const void *buf, uint64_t count, uint64_t offset)=0
 
virtual Result< void > Truncate (uint64_t size)
 
- Public Member Functions inherited from cuttlefish::Writer
virtual ~Writer ()=default
 
Result< void > Visit (IoVisitor &) override
 
virtual Result< uint64_t > Write (const void *buf, uint64_t count)=0
 

Private Member Functions

uint64_t ClampRange (uint64_t begin, uint64_t length) const
 
void GrowTo (uint64_t new_size)
 

Private Attributes

std::vector< char > & data_
 
uint64_t cursor_ = 0
 
std::shared_mutex & mutex_
 

Constructor & Destructor Documentation

◆ InMemoryIo()

cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::InMemoryIo ( std::vector< char > &  data,
std::shared_mutex &  mutex 
)
inline

Member Function Documentation

◆ ClampRange()

uint64_t cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::ClampRange ( uint64_t  begin,
uint64_t  length 
) const
inlineprivate

◆ GrowTo()

void cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::GrowTo ( uint64_t  new_size)
inlineprivate

◆ PRead()

Result< uint64_t > cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::PRead ( void *  buf,
uint64_t  count,
uint64_t  offset 
) const
inlineoverridevirtual

◆ PWrite()

Result< uint64_t > cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::PWrite ( const void *  buf,
uint64_t  count,
uint64_t  offset 
)
inlineoverridevirtual

◆ Read()

Result< uint64_t > cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::Read ( void *  buf,
uint64_t  count 
)
inlineoverridevirtual

◆ SeekCur()

Result< uint64_t > cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::SeekCur ( int64_t  offset)
inlineoverridevirtual

◆ SeekEnd()

Result< uint64_t > cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::SeekEnd ( int64_t  offset)
inlineoverridevirtual

◆ SeekSet()

Result< uint64_t > cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::SeekSet ( uint64_t  offset)
inlineoverridevirtual

◆ Write()

Result< uint64_t > cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::Write ( const void *  buf,
uint64_t  count 
)
inlineoverridevirtual

Member Data Documentation

◆ cursor_

uint64_t cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::cursor_ = 0
private

◆ data_

std::vector<char>& cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::data_
private

◆ mutex_

std::shared_mutex& cuttlefish::anonymous_namespace{in_memory.cc}::InMemoryIo::mutex_
private

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