class SyncClientBuffered

Defined at line 114 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h

SynClientBuffered is a wrapper of SyncClient added with write-caching capability.

It buffers all the write to sysconfig partition to an internal buffer first.

The bufferred data is written to persistant storage by explicitly calling its Flush() method.

Protected Members

uint32_t cache_modified_flag_
OwnedVmoMapper cache_
SyncClient client_

Public Methods

void SyncClientBuffered (::sysconfig::SyncClient client)

Defined at line 118 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h

void ~SyncClientBuffered ()

Defined at line 120 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h

void SyncClientBuffered (const SyncClientBuffered & )

No copy.

Defined at line 138 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h

SyncClientBuffered & operator= (const SyncClientBuffered & )

Defined at line 139 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h

void SyncClientBuffered (SyncClientBuffered && )

Defined at line 141 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h

SyncClientBuffered & operator= (SyncClientBuffered && )

Defined at line 142 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h

zx_status_t WritePartition (PartitionType partition, const zx::vmo & vmo, zx_off_t vmo_offset)

The following can be re-implemented by child class.

Defined at line 529 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

zx_status_t ReadPartition (PartitionType partition, const zx::vmo & vmo, zx_off_t vmo_offset)

Defined at line 555 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

zx_status_t Flush ()

Defined at line 577 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

zx_status_t GetPartitionSize (PartitionType partition, size_t * size)

Defined at line 471 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

zx_status_t GetPartitionOffset (PartitionType partition, size_t * size)

Defined at line 475 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

const uint8_t * GetCacheBuffer (PartitionType partition)

used for test

Defined at line 604 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

zx_status_t UpdateLayout (sysconfig_header target_header)

Defined at line 613 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

Protected Methods

zx_status_t CreateCache ()

Defined at line 503 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

void InvalidateCache ()

Defined at line 522 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

void MarkCacheNonEmpty (PartitionType partition)

Defined at line 499 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

bool IsCacheEmpty (PartitionType partition)

Defined at line 495 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

bool IsAllCacheEmpty ()

Defined at line 527 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

zx_status_t WriteCache (PartitionType partition, const zx::vmo & vmo, zx_off_t vmo_offset)

Defined at line 534 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

zx_status_t ReadCache (PartitionType partition, const zx::vmo & vmo, zx_off_t vmo_offset)

Defined at line 561 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

uint32_t PartitionTypeToCacheMask (PartitionType partition)

Defined at line 479 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

zx_status_t GetSubpartitionCacheAddrSize (PartitionType partition, uint8_t ** start, size_t * size)

Defined at line 592 of file ../../zircon/system/ulib/sysconfig-client/sync-client.cc

Enumerations

enum CacheBitMask
Name Value
kSysconfig 1 << 0
kAbrMetadata 1 << 1
kVbmetaA 1 << 2
kVbmetaB 1 << 3
kVbmetaR 1 << 4

Defined at line 147 of file ../../zircon/system/ulib/sysconfig-client/include/lib/sysconfig/sync-client.h