wowlib 0.0.0
Read & write World of Warcraft client files — a C++26 core
Loading...
Searching...
No Matches
wowlib::db::ErasedRecordSink Class Referencefinal

RecordSink over a live std::vector<Record>& — the decode target. More...

#include <wowlib/db/record_bridge.hpp>

Inheritance diagram for wowlib::db::ErasedRecordSink:

Public Member Functions

template<typename Record>
 ErasedRecordSink (std::vector< Record > &records)
 ErasedRecordSink (void *recordsVec, const detail::RecordOps *ops)
 from pre-erased parts (TableCore's path — it holds exactly these).
void clear () override
void reserve (std::size_t n) override
std::size_t add () override
std::size_t size () const override
std::uint32_t idOf (std::size_t record) const override
void setInt (std::size_t record, std::size_t column, std::size_t element, std::int64_t value) override
void setFloat (std::size_t record, std::size_t column, std::size_t element, float value) override
void setString (std::size_t record, std::size_t column, std::size_t element, std::string_view value) override
void cloneWithId (std::size_t src, std::uint32_t newId) override
 Clone record src into a fresh record and set its id column to newId (WDC copy-table materialization).
std::size_t findById (std::uint32_t id) const override
 The first record whose id equals id, or size() when none (copy source lookup).
Public Member Functions inherited from wowlib::db::RecordSink
virtual ~RecordSink ()=default

Detailed Description

RecordSink over a live std::vector<Record>& — the decode target.

The class is NOT a template: the templated constructor captures the record type's RecordOps, and every override lives in record_bridge.cpp, compiled once for all ~4200 bound record types.

Definition at line 203 of file record_bridge.hpp.

Constructor & Destructor Documentation

◆ ErasedRecordSink() [1/2]

template<typename Record>
wowlib::db::ErasedRecordSink::ErasedRecordSink ( std::vector< Record > & records)
inlineexplicit

Definition at line 206 of file record_bridge.hpp.

◆ ErasedRecordSink() [2/2]

wowlib::db::ErasedRecordSink::ErasedRecordSink ( void * recordsVec,
const detail::RecordOps * ops )
inline

from pre-erased parts (TableCore's path — it holds exactly these).

Definition at line 210 of file record_bridge.hpp.

Member Function Documentation

◆ add()

std::size_t wowlib::db::ErasedRecordSink::add ( )
overridevirtual

Implements wowlib::db::RecordSink.

Definition at line 158 of file record_bridge.cpp.

◆ clear()

void wowlib::db::ErasedRecordSink::clear ( )
overridevirtual

Implements wowlib::db::RecordSink.

Definition at line 156 of file record_bridge.cpp.

◆ cloneWithId()

void wowlib::db::ErasedRecordSink::cloneWithId ( std::size_t src,
std::uint32_t newId )
overridevirtual

Clone record src into a fresh record and set its id column to newId (WDC copy-table materialization).

Implements wowlib::db::RecordSink.

Definition at line 184 of file record_bridge.cpp.

◆ findById()

std::size_t wowlib::db::ErasedRecordSink::findById ( std::uint32_t id) const
overridevirtual

The first record whose id equals id, or size() when none (copy source lookup).

Implements wowlib::db::RecordSink.

Definition at line 190 of file record_bridge.cpp.

◆ idOf()

std::uint32_t wowlib::db::ErasedRecordSink::idOf ( std::size_t record) const
overridevirtual

Implements wowlib::db::RecordSink.

Definition at line 161 of file record_bridge.cpp.

◆ reserve()

void wowlib::db::ErasedRecordSink::reserve ( std::size_t n)
overridevirtual

Implements wowlib::db::RecordSink.

Definition at line 157 of file record_bridge.cpp.

◆ setFloat()

void wowlib::db::ErasedRecordSink::setFloat ( std::size_t record,
std::size_t column,
std::size_t element,
float value )
overridevirtual

Implements wowlib::db::RecordSink.

Definition at line 169 of file record_bridge.cpp.

References wowlib::db::ColumnAccess::kind.

◆ setInt()

void wowlib::db::ErasedRecordSink::setInt ( std::size_t record,
std::size_t column,
std::size_t element,
std::int64_t value )
overridevirtual

Implements wowlib::db::RecordSink.

Definition at line 165 of file record_bridge.cpp.

◆ setString()

void wowlib::db::ErasedRecordSink::setString ( std::size_t record,
std::size_t column,
std::size_t element,
std::string_view value )
overridevirtual

Implements wowlib::db::RecordSink.

Definition at line 175 of file record_bridge.cpp.

References wowlib::db::ColumnAccess::kind.

◆ size()

std::size_t wowlib::db::ErasedRecordSink::size ( ) const
overridevirtual

Implements wowlib::db::RecordSink.

Definition at line 159 of file record_bridge.cpp.


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