foobar2000 SDK  2015-01-14
Public Member Functions | Private Types | Private Attributes
pfc::string_simple_t< t_char >

#include <string_base.h>

Public Member Functions

 string_simple_t ()
 
 string_simple_t (const t_char *p_source)
 
 string_simple_t (const t_char *p_source, t_size p_length)
 
void add_string (const t_char *p_source, t_size p_length)
 
void add_string (const t_char *p_source)
 
void add_string_nc (const t_char *p_source, t_size p_length)
 
const t_char * get_ptr () const
 
bool is_empty () const
 
t_size length () const
 
 operator const t_char * () const
 
const t_selfoperator= (const t_char *p_source)
 
void set_string (const t_char *p_source)
 
void set_string (const t_char *p_source, t_size p_length)
 
void set_string_nc (const t_char *p_source, t_size p_length)
 

Private Types

typedef string_simple_t< t_char > t_self
 

Private Attributes

pfc::array_t< t_char > m_buffer
 

Detailed Description

template<typename t_char>
class pfc::string_simple_t< t_char >

Definition at line 775 of file string_base.h.

Member Typedef Documentation

template<typename t_char >
typedef string_simple_t<t_char> pfc::string_simple_t< t_char >::t_self
private

Definition at line 777 of file string_base.h.

Constructor & Destructor Documentation

template<typename t_char >
pfc::string_simple_t< t_char >::string_simple_t ( )
inline

Definition at line 814 of file string_base.h.

814 {}
template<typename t_char >
pfc::string_simple_t< t_char >::string_simple_t ( const t_char *  p_source)
inline

Definition at line 815 of file string_base.h.

815 {set_string(p_source);}
void set_string(const t_char *p_source)
Definition: string_base.h:794
template<typename t_char >
pfc::string_simple_t< t_char >::string_simple_t ( const t_char *  p_source,
t_size  p_length 
)
inline

Definition at line 816 of file string_base.h.

816 {set_string(p_source, p_length);}
void set_string(const t_char *p_source)
Definition: string_base.h:794

Member Function Documentation

template<typename t_char >
void pfc::string_simple_t< t_char >::add_string ( const t_char *  p_source,
t_size  p_length 
)
inline

Definition at line 800 of file string_base.h.

800  {
801  add_string_nc(p_source, strlen_max_t(p_source, p_length));
802  }
t_size strlen_max_t(const t_char *ptr, t_size max)
Definition: string_base.h:84
void add_string_nc(const t_char *p_source, t_size p_length)
Definition: string_base.h:806
template<typename t_char >
void pfc::string_simple_t< t_char >::add_string ( const t_char *  p_source)
inline

Definition at line 803 of file string_base.h.

803  {
804  add_string_nc(p_source, strlen_t(p_source));
805  }
t_size strlen_t(const t_char *p_string, t_size p_length=~0)
Definition: primitives.h:771
void add_string_nc(const t_char *p_source, t_size p_length)
Definition: string_base.h:806
template<typename t_char >
void pfc::string_simple_t< t_char >::add_string_nc ( const t_char *  p_source,
t_size  p_length 
)
inline

Definition at line 806 of file string_base.h.

806  {
807  if (p_length > 0) {
808  t_size base = length();
809  m_buffer.set_size( base + p_length + 1 );
810  memcpy_t(m_buffer.get_ptr() + base, p_source, p_length);
811  m_buffer[base + p_length] = 0;
812  }
813  }
const t_item * get_ptr() const
Definition: array.h:213
pfc::array_t< t_char > m_buffer
Definition: string_base.h:821
size_t t_size
Definition: int_types.h:48
void set_size(t_size p_size)
Definition: array.h:104
t_size length() const
Definition: string_base.h:779
void memcpy_t(t_dst *p_dst, const t_src *p_src, t_size p_count)
Definition: primitives.h:611
template<typename t_char >
const t_char* pfc::string_simple_t< t_char >::get_ptr ( ) const
inline

Definition at line 819 of file string_base.h.

819 {return m_buffer.get_size() > 0 ? m_buffer.get_ptr() : pfc::empty_string_t<t_char>();}
const t_item * get_ptr() const
Definition: array.h:213
pfc::array_t< t_char > m_buffer
Definition: string_base.h:821
t_size get_size() const
Definition: array.h:130
template<typename t_char >
bool pfc::string_simple_t< t_char >::is_empty ( ) const
inline

Definition at line 783 of file string_base.h.

783 {return m_buffer.get_size() == 0;}
pfc::array_t< t_char > m_buffer
Definition: string_base.h:821
t_size get_size() const
Definition: array.h:130
template<typename t_char >
t_size pfc::string_simple_t< t_char >::length ( ) const
inline

Definition at line 779 of file string_base.h.

779  {
780  t_size s = m_buffer.get_size();
781  if (s == 0) return 0; else return s-1;
782  }
pfc::array_t< t_char > m_buffer
Definition: string_base.h:821
size_t t_size
Definition: int_types.h:48
t_size get_size() const
Definition: array.h:130
template<typename t_char >
pfc::string_simple_t< t_char >::operator const t_char * ( ) const
inline

Definition at line 818 of file string_base.h.

818 {return get_ptr();}
const t_char * get_ptr() const
Definition: string_base.h:819
template<typename t_char >
const t_self& pfc::string_simple_t< t_char >::operator= ( const t_char *  p_source)
inline

Definition at line 817 of file string_base.h.

817 {set_string(p_source);return *this;}
void set_string(const t_char *p_source)
Definition: string_base.h:794
template<typename t_char >
void pfc::string_simple_t< t_char >::set_string ( const t_char *  p_source)
inline

Definition at line 794 of file string_base.h.

794  {
795  set_string_nc(p_source, pfc::strlen_t(p_source));
796  }
void set_string_nc(const t_char *p_source, t_size p_length)
Definition: string_base.h:785
t_size strlen_t(const t_char *p_string, t_size p_length=~0)
Definition: primitives.h:771
template<typename t_char >
void pfc::string_simple_t< t_char >::set_string ( const t_char *  p_source,
t_size  p_length 
)
inline

Definition at line 797 of file string_base.h.

797  {
798  set_string_nc(p_source, strlen_max_t(p_source, p_length));
799  }
void set_string_nc(const t_char *p_source, t_size p_length)
Definition: string_base.h:785
t_size strlen_max_t(const t_char *ptr, t_size max)
Definition: string_base.h:84
template<typename t_char >
void pfc::string_simple_t< t_char >::set_string_nc ( const t_char *  p_source,
t_size  p_length 
)
inline

Definition at line 785 of file string_base.h.

785  {
786  if (p_length == 0) {
787  m_buffer.set_size(0);
788  } else {
789  m_buffer.set_size(p_length + 1);
790  pfc::memcpy_t(m_buffer.get_ptr(),p_source,p_length);
791  m_buffer[p_length] = 0;
792  }
793  }
const t_item * get_ptr() const
Definition: array.h:213
pfc::array_t< t_char > m_buffer
Definition: string_base.h:821
void set_size(t_size p_size)
Definition: array.h:104
void memcpy_t(t_dst *p_dst, const t_src *p_src, t_size p_count)
Definition: primitives.h:611

Field Documentation

template<typename t_char >
pfc::array_t<t_char> pfc::string_simple_t< t_char >::m_buffer
private

Definition at line 821 of file string_base.h.


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