OpenBarnyard
 
Loading...
Searching...
No Matches
T2StringBuffer< Size, TStringTraits > Class Template Reference

#include <T2String.h>

Public Types

using StringTraits = TStringTraits
 
using CharTraits = typename StringTraits::CharTraits
 
using CharType = typename StringTraits::CharType
 

Public Member Functions

 TSTATICASSERT (Size > 0)
 
constexpr T2StringBuffer ()
 
 T2StringBuffer (const CharType *a_szString)
 
void Copy (const CharType *a_szString)
 
void Format (const CharType *a_szFormat,...)
 
void FormatV (const CharType *a_szFormat, va_list a_Args)
 
void AppendFormat (const CharType *a_szFormat,...)
 
void AppendFormatV (const CharType *a_szFormat, va_list a_Args)
 
void Append (const CharType *a_szString)
 
constexpr void Clear ()
 
constexpr TINT Length ()
 
constexpr CharTypeGet ()
 
constexpr const CharTypeGet () const
 
constexpr CharTypeGet (TUINT a_uiIndex)
 
constexpr const CharTypeGet (TUINT a_uiIndex) const
 
constexpr CharTypeoperator[] (TUINT a_uiIndex)
 
constexpr const CharTypeoperator[] (TUINT a_uiIndex) const
 
T2StringBufferoperator+= (const CharType *a_szString)
 

Detailed Description

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
class T2StringBuffer< Size, TStringTraits >

Definition at line 430 of file T2String.h.

Member Typedef Documentation

◆ CharTraits

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
using T2StringBuffer< Size, TStringTraits >::CharTraits = typename StringTraits::CharTraits

Definition at line 436 of file T2String.h.

◆ CharType

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
using T2StringBuffer< Size, TStringTraits >::CharType = typename StringTraits::CharType

Definition at line 437 of file T2String.h.

◆ StringTraits

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
using T2StringBuffer< Size, TStringTraits >::StringTraits = TStringTraits

Definition at line 435 of file T2String.h.

Constructor & Destructor Documentation

◆ T2StringBuffer() [1/2]

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
T2StringBuffer< Size, TStringTraits >::T2StringBuffer ( )
inlineconstexpr

Definition at line 440 of file T2String.h.

441 {
442 m_szBuffer[ 0 ] = CharTraits::NullChar;
443 m_iPosition = 0;
444 }

◆ T2StringBuffer() [2/2]

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
T2StringBuffer< Size, TStringTraits >::T2StringBuffer ( const CharType * a_szString)
inline

Definition at line 446 of file T2String.h.

447 {
448 Copy( a_szString );
449 }
void Copy(const CharType *a_szString)
Definition T2String.h:451

Member Function Documentation

◆ Append()

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
void T2StringBuffer< Size, TStringTraits >::Append ( const CharType * a_szString)
inline

Definition at line 491 of file T2String.h.

492 {
494 if ( Size - m_iPosition - iStringLength - 1 <= 0 ) return;
495
496 StringTraits::Concat( m_szBuffer + m_iPosition, a_szString, iStringLength );
497 m_iPosition += StringTraits::Length( a_szString );
498 }

◆ AppendFormat()

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
void T2StringBuffer< Size, TStringTraits >::AppendFormat ( const CharType * a_szFormat,
... )
inline

Definition at line 474 of file T2String.h.

475 {
476 if ( Size - m_iPosition - 1 <= 0 ) return;
477
479
481 m_iPosition += StringTraits::FormatV( m_szBuffer + m_iPosition, Size - m_iPosition, a_szFormat, args );
482 va_end( args );
483 }

◆ AppendFormatV()

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
void T2StringBuffer< Size, TStringTraits >::AppendFormatV ( const CharType * a_szFormat,
va_list a_Args )
inline

Definition at line 485 of file T2String.h.

486 {
487 if ( Size - m_iPosition - 1 <= 0 ) return;
488 m_iPosition += StringTraits::FormatV( m_szBuffer + m_iPosition, Size - m_iPosition, a_szFormat, a_Args );
489 }

◆ Clear()

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
void T2StringBuffer< Size, TStringTraits >::Clear ( )
inlineconstexpr

Definition at line 500 of file T2String.h.

501 {
502 m_szBuffer[ 0 ] = CharTraits::NullChar;
503 m_iPosition = 0;
504 }

◆ Copy()

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
void T2StringBuffer< Size, TStringTraits >::Copy ( const CharType * a_szString)
inline

Definition at line 451 of file T2String.h.

452 {
453 StringTraits::CopySafe( m_szBuffer, a_szString, Size );
454 m_iPosition = StringTraits::Length( a_szString );
455 }

◆ Format()

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
void T2StringBuffer< Size, TStringTraits >::Format ( const CharType * a_szFormat,
... )
inline

Definition at line 457 of file T2String.h.

458 {
460
462 m_iPosition = StringTraits::FormatV( m_szBuffer, Size, a_szFormat, args );
463 va_end( args );
464
465 m_szBuffer[ Size - 1 ] = CharTraits::NullChar;
466 }

◆ FormatV()

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
void T2StringBuffer< Size, TStringTraits >::FormatV ( const CharType * a_szFormat,
va_list a_Args )
inline

Definition at line 468 of file T2String.h.

469 {
470 m_iPosition = StringTraits::FormatV( m_szBuffer, Size, a_szFormat, a_Args );
471 m_szBuffer[ Size - 1 ] = CharTraits::NullChar;
472 }

◆ Get() [1/4]

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
CharType * T2StringBuffer< Size, TStringTraits >::Get ( )
inlineconstexpr

Definition at line 511 of file T2String.h.

512 {
513 return m_szBuffer;
514 }

◆ Get() [2/4]

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
const CharType * T2StringBuffer< Size, TStringTraits >::Get ( ) const
inlineconstexpr

Definition at line 516 of file T2String.h.

517 {
518 return m_szBuffer;
519 }

◆ Get() [3/4]

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
CharType * T2StringBuffer< Size, TStringTraits >::Get ( TUINT a_uiIndex)
inlineconstexpr

Definition at line 521 of file T2String.h.

522 {
524 return &m_szBuffer[ a_uiIndex ];
525 }
#define TASSERT(X,...)
Definition Defines.h:138

◆ Get() [4/4]

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
const CharType * T2StringBuffer< Size, TStringTraits >::Get ( TUINT a_uiIndex) const
inlineconstexpr

Definition at line 527 of file T2String.h.

528 {
530 return &m_szBuffer[ a_uiIndex ];
531 }

◆ Length()

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
TINT T2StringBuffer< Size, TStringTraits >::Length ( )
inlineconstexpr

Definition at line 506 of file T2String.h.

507 {
508 return m_iPosition;
509 }

◆ operator+=()

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
T2StringBuffer & T2StringBuffer< Size, TStringTraits >::operator+= ( const CharType * a_szString)
inline

Definition at line 543 of file T2String.h.

544 {
546 return *this;
547 }
void Append(const CharType *a_szString)
Definition T2String.h:491

◆ operator[]() [1/2]

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
CharType & T2StringBuffer< Size, TStringTraits >::operator[] ( TUINT a_uiIndex)
inlineconstexpr

Definition at line 533 of file T2String.h.

534 {
535 return *Get( a_uiIndex );
536 }
constexpr CharType * Get()
Definition T2String.h:511

◆ operator[]() [2/2]

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
const CharType & T2StringBuffer< Size, TStringTraits >::operator[] ( TUINT a_uiIndex) const
inlineconstexpr

Definition at line 538 of file T2String.h.

539 {
540 return *Get( a_uiIndex );
541 }

◆ TSTATICASSERT()

template<TINT Size, typename TStringTraits = T2StringTraits<TCHAR>>
T2StringBuffer< Size, TStringTraits >::TSTATICASSERT ( Size ,
0  )

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