Skip to main content

StreamingLogicalLogReader

Struct StreamingLogicalLogReader 

Source
pub struct StreamingLogicalLogReader {
    pub offset: usize,
    /* private fields */
}

Fields§

§offset: usize

Offset to read from file

Implementations§

Source§

impl StreamingLogicalLogReader

Source

pub fn new( file: Arc<dyn File>, encryption_ctx: Option<EncryptionContext>, ) -> Self

Source

pub fn last_valid_offset(&self) -> usize

Returns the byte offset just past the last fully validated transaction frame. After recovery, the log writer should resume from this offset so any torn-tail bytes beyond it are overwritten by the next append.

Source

pub fn running_crc(&self) -> u32

Returns the running CRC state after all validated frames. Used during recovery to hand off the chain state to the writer so it can continue appending.

Source

pub fn read_header(&mut self, io: &Arc<dyn IO>) -> Result<()>

Source

pub fn next_portable_change_frame( &mut self, ) -> Result<IOResult<Option<PortableChangeFrame>>>

Reads the next transaction frame and returns its portable logical-change payload. This validates the LML3 frame envelope and chained CRC while treating the recovery payload as opaque bytes.

Empty payloads are returned because internal-only commits still advance the logical-log offset even though clients have no operation to apply.

Source

pub fn next_portable_changes( &mut self, ) -> Result<IOResult<Option<PortableChangeFrame>>>

Reads the next portable logical-change payload, skipping internal-only frames.

Empty payloads are valid: internal-only commits still need recovery log frames, but they do not produce client-visible logical operations.

Source

pub fn is_eof(&self) -> bool

Source

pub fn read_more_data(&mut self, need: usize) -> Result<IOResult<()>>

Read at least need bytes from the logical log, issuing multiple reads if necessary. If at any point 0 bytes are read, that indicates corruption.

Non-blocking: a pread in flight is tracked in self.in_flight_read and the method yields its completion until done. Re-entry picks up where it left off without re-issuing the read.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more