CommonLibSSE (Parapets fork)
RE::BSStringPool::Entry Class Reference

#include <BSStringPool.h>

Public Types

enum  { kWide = 1 << 15 , kRefCountMask = 0x7FFF , kLengthMask = 0xFFFFFF }
 

Public Member Functions

void acquire ()
 
constexpr std::uint16_t crc () const noexcept
 
template<class T >
const T * data () const noexcept
 
template<>
const char * data () const noexcept
 
template<>
const wchar_t * data () const noexcept
 
constexpr std::uint32_t length () const noexcept
 
constexpr std::uint32_t size () const noexcept
 
const char * u8 () const noexcept
 
const wchar_t * u16 () const noexcept
 
constexpr bool wide () const noexcept
 

Static Public Member Functions

static void release (const char *&a_entry)
 
static void release (const wchar_t *&a_entry)
 
static void release8 (const char *&a_entry)
 
static void release16 (const wchar_t *&a_entry)
 

Public Attributes

Entry_left
 
std::uint16_t _flags
 
volatile std::uint16_t _crc
 
union {
   std::uint32_t   _length
 
   Entry *   _right
 
}; 
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kWide 
kRefCountMask 
kLengthMask 

Member Function Documentation

◆ acquire()

void RE::BSStringPool::Entry::acquire ( )

◆ crc()

constexpr std::uint16_t RE::BSStringPool::Entry::crc ( ) const
inlineconstexprnoexcept

◆ data() [1/3]

template<class T >
const T* RE::BSStringPool::Entry::data ( ) const
noexcept

◆ data() [2/3]

template<>
const char* RE::BSStringPool::Entry::data ( ) const
inlinenoexcept

◆ data() [3/3]

template<>
const wchar_t* RE::BSStringPool::Entry::data ( ) const
inlinenoexcept

◆ length()

constexpr std::uint32_t RE::BSStringPool::Entry::length ( ) const
inlineconstexprnoexcept

◆ release() [1/2]

static void RE::BSStringPool::Entry::release ( const char *&  a_entry)
static

◆ release() [2/2]

static void RE::BSStringPool::Entry::release ( const wchar_t *&  a_entry)
static

◆ release16()

static void RE::BSStringPool::Entry::release16 ( const wchar_t *&  a_entry)
static

◆ release8()

static void RE::BSStringPool::Entry::release8 ( const char *&  a_entry)
static

◆ size()

constexpr std::uint32_t RE::BSStringPool::Entry::size ( ) const
inlineconstexprnoexcept

◆ u16()

const wchar_t* RE::BSStringPool::Entry::u16 ( ) const
inlinenoexcept

◆ u8()

const char* RE::BSStringPool::Entry::u8 ( ) const
inlinenoexcept

◆ wide()

constexpr bool RE::BSStringPool::Entry::wide ( ) const
inlineconstexprnoexcept

Member Data Documentation

◆ 

union { ... }

◆ _crc

volatile std::uint16_t RE::BSStringPool::Entry::_crc

◆ _flags

std::uint16_t RE::BSStringPool::Entry::_flags

◆ _left

Entry* RE::BSStringPool::Entry::_left

◆ _length

std::uint32_t RE::BSStringPool::Entry::_length

◆ _right

Entry* RE::BSStringPool::Entry::_right

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