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

The decode target: the codecs build the record vector through this, one field at a time. More...

#include <wowlib/db/codec.hpp>

Inheritance diagram for wowlib::db::RecordSink:

Public Member Functions

virtual ~RecordSink ()=default
virtual void clear ()=0
virtual void reserve (std::size_t n)=0
virtual std::size_t add ()=0
virtual std::size_t size () const =0
virtual std::uint32_t idOf (std::size_t record) const =0
virtual void setInt (std::size_t record, std::size_t column, std::size_t element, std::int64_t value)=0
virtual void setFloat (std::size_t record, std::size_t column, std::size_t element, float value)=0
virtual void setString (std::size_t record, std::size_t column, std::size_t element, std::string_view value)=0
virtual void cloneWithId (std::size_t src, std::uint32_t newId)=0
 Clone record src into a fresh record and set its id column to newId (WDC copy-table materialization).
virtual std::size_t findById (std::uint32_t id) const =0
 The first record whose id equals id, or size() when none (copy source lookup).

Detailed Description

The decode target: the codecs build the record vector through this, one field at a time.

add() appends a default record and returns its index; set_* scatter a decoded value into (record, column, element) — element indexes an array member, a LocString language slot (its flags being the element at index localeCount), or 0 for a scalar. record_bridge.hpp's ErasedRecordSink implements it over a std::vector<Record>& (record_bridge.hpp).

Definition at line 110 of file codec.hpp.

Constructor & Destructor Documentation

◆ ~RecordSink()

virtual wowlib::db::RecordSink::~RecordSink ( )
virtualdefault

Member Function Documentation

◆ add()

virtual std::size_t wowlib::db::RecordSink::add ( )
pure virtual

◆ clear()

virtual void wowlib::db::RecordSink::clear ( )
pure virtual

◆ cloneWithId()

virtual void wowlib::db::RecordSink::cloneWithId ( std::size_t src,
std::uint32_t newId )
pure virtual

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

Implemented in wowlib::db::detail::ColumnRows, and wowlib::db::ErasedRecordSink.

◆ findById()

virtual std::size_t wowlib::db::RecordSink::findById ( std::uint32_t id) const
pure virtual

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

Implemented in wowlib::db::detail::ColumnRows, and wowlib::db::ErasedRecordSink.

◆ idOf()

virtual std::uint32_t wowlib::db::RecordSink::idOf ( std::size_t record) const
pure virtual

◆ reserve()

virtual void wowlib::db::RecordSink::reserve ( std::size_t n)
pure virtual

◆ setFloat()

virtual void wowlib::db::RecordSink::setFloat ( std::size_t record,
std::size_t column,
std::size_t element,
float value )
pure virtual

◆ setInt()

virtual void wowlib::db::RecordSink::setInt ( std::size_t record,
std::size_t column,
std::size_t element,
std::int64_t value )
pure virtual

◆ setString()

virtual void wowlib::db::RecordSink::setString ( std::size_t record,
std::size_t column,
std::size_t element,
std::string_view value )
pure virtual

◆ size()

virtual std::size_t wowlib::db::RecordSink::size ( ) const
pure virtual

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