ReactOS  0.4.14-dev-293-g2b39b42
_Rope_RopeSubstring< _CharT, _Alloc > Struct Template Reference

#include <_rope.h>

Inheritance diagram for _Rope_RopeSubstring< _CharT, _Alloc >:
Collaboration diagram for _Rope_RopeSubstring< _CharT, _Alloc >:

Public Types

typedef _Rope_RopeRep< _CharT, _Alloc_RopeRep
 
typedef _RopeRep::allocator_type allocator_type
 
- Public Types inherited from _Rope_RopeFunction< _CharT, _Alloc >
typedef _Rope_RopeRep< _CharT, _Alloc >::allocator_type allocator_type
 
- Public Types inherited from _Rope_RopeRep< _CharT, _Alloc >
enum  { _S_max_rope_depth = __ROPE_MAX_DEPTH }
 
enum  _Tag { _S_leaf, _S_concat, _S_substringfn, _S_function }
 
enum  { _S_alloc_granularity = 8 }
 
typedef _Rope_RopeRep< _CharT, _Alloc_Self
 
typedef _Alloc allocator_type
 
typedef _STLP_TYPENAME _STLP_PRIV _BasicCharType< _CharT >::_Ret _IsBasicCharType
 

Public Member Functions

void operator() (size_t __start_pos, size_t __req_len, _CharT *__buffer)
 
 _Rope_RopeSubstring (_RopeRep *__b, size_t __s, size_t __l, allocator_type __a)
 
virtual ~_Rope_RopeSubstring ()
 
- Public Member Functions inherited from char_producer< _CharT >
virtual ~char_producer ()
 
- Public Member Functions inherited from _Rope_RopeFunction< _CharT, _Alloc >
 _Rope_RopeFunction (char_producer< _CharT > *__f, size_t _p_size, bool __d, allocator_type __a)
 
 ~_Rope_RopeFunction ()
 
- Public Member Functions inherited from _Rope_RopeRep< _CharT, _Alloc >
allocator_type get_allocator () const
 
 _Rope_RopeRep (_Tag __t, unsigned char __d, bool __b, size_t _p_size, allocator_type __a)
 
void _M_free_c_string ()
 
void _M_free_tree ()
 
void _M_unref_nonnil ()
 
void _M_ref_nonnil ()
 
- Public Member Functions inherited from _Refcount_Base
 _Refcount_Base (__stl_atomic_t __n)
 
__stl_atomic_t _M_incr ()
 
__stl_atomic_t _M_decr ()
 

Public Attributes

_RopeRep_M_base
 
size_t _M_start
 
- Public Attributes inherited from _Rope_RopeFunction< _CharT, _Alloc >
char_producer< _CharT > * _M_fn
 
bool _M_delete_when_done
 
- Public Attributes inherited from _Rope_RopeRep< _CharT, _Alloc >
_Tag _M_tag:8
 
bool _M_is_balanced:8
 
unsigned char _M_depth
 
_CharT *_STLP_VOLATILE _M_c_string
 
_STLP_PRIV _STLP_alloc_proxy< size_t, _CharT, allocator_type_M_size
 

Additional Inherited Members

- Static Public Member Functions inherited from _Rope_RopeRep< _CharT, _Alloc >
static size_t _S_rounded_up_size (size_t __n)
 
static void _S_free_string (_CharT *__s, size_t __len, allocator_type __a)
 
static void _S_unref (_Self *__t)
 
static void _S_ref (_Self *__t)
 

Detailed Description

template<class _CharT, class _Alloc>
struct _Rope_RopeSubstring< _CharT, _Alloc >

Definition at line 96 of file _rope.h.

Member Typedef Documentation

◆ _RopeRep

template<class _CharT , class _Alloc >
typedef _Rope_RopeRep<_CharT,_Alloc> _Rope_RopeSubstring< _CharT, _Alloc >::_RopeRep

Definition at line 567 of file _rope.h.

◆ allocator_type

template<class _CharT , class _Alloc >
typedef _RopeRep::allocator_type _Rope_RopeSubstring< _CharT, _Alloc >::allocator_type

Definition at line 599 of file _rope.h.

Constructor & Destructor Documentation

◆ _Rope_RopeSubstring()

template<class _CharT , class _Alloc >
_Rope_RopeSubstring< _CharT, _Alloc >::_Rope_RopeSubstring ( _RopeRep __b,
size_t  __s,
size_t  __l,
allocator_type  __a 
)
inline

Definition at line 601 of file _rope.h.

602  : _Rope_RopeFunction<_CharT,_Alloc>(this, __l, false, __a),
603  _M_base(__b), _M_start(__s) {
604  _STLP_ASSERT(__l > 0)
605  _STLP_ASSERT(__s + __l <= __b->_M_size._M_data)
607  this->_M_tag = _RopeRep::_S_substringfn;
608  }
void _M_ref_nonnil()
Definition: _rope.h:434
_Tag _M_tag
Definition: _rope.h:352
size_t _M_start
Definition: _rope.h:569
_Rope_RopeRep< _CharT, _Alloc > _RopeRep
Definition: _rope.h:567
_RopeRep * _M_base
Definition: _rope.h:568
#define _STLP_ASSERT(expr)
Definition: _debug.h:165
_STLP_PRIV _STLP_alloc_proxy< size_t, _CharT, allocator_type > _M_size
Definition: _rope.h:362

◆ ~_Rope_RopeSubstring()

template<class _CharT , class _Alloc >
virtual _Rope_RopeSubstring< _CharT, _Alloc >::~_Rope_RopeSubstring ( )
inlinevirtual

Definition at line 609 of file _rope.h.

610  { _M_base->_M_unref_nonnil(); }
void _M_unref_nonnil()
Definition: _rope.h:431
_RopeRep * _M_base
Definition: _rope.h:568

Member Function Documentation

◆ operator()()

template<class _CharT , class _Alloc >
void _Rope_RopeSubstring< _CharT, _Alloc >::operator() ( size_t  __start_pos,
size_t  __req_len,
_CharT *  __buffer 
)
inlinevirtual

Implements char_producer< _CharT >.

Definition at line 570 of file _rope.h.

571  {
572  typedef _Rope_RopeFunction<_CharT,_Alloc> _RopeFunction;
573  typedef _Rope_RopeLeaf<_CharT,_Alloc> _RopeLeaf;
574  switch (_M_base->_M_tag) {
577  {
578  char_producer<_CharT>* __fn =
579  __STATIC_CAST(_RopeFunction*, _M_base)->_M_fn;
580  _STLP_ASSERT(__start_pos + __req_len <= this->_M_size._M_data)
582  (*__fn)(__start_pos + _M_start, __req_len, __buffer);
583  }
584  break;
585  case _RopeRep::_S_leaf:
586  {
587  _CharT* __s =
588  __STATIC_CAST(_RopeLeaf*, _M_base)->_M_data;
589  _STLP_PRIV __ucopy_n(__s + __start_pos + _M_start, __req_len, __buffer);
590  }
591  break;
592  default:
593  _STLP_ASSERT(false)
594  ;
595  }
596  }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_Value _M_data
Definition: _alloc.h:478
_Tag _M_tag
Definition: _rope.h:352
_STLP_MOVE_TO_PRIV_NAMESPACE _STLP_INLINE_LOOP pair< _InputIter, _ForwardIter > __ucopy_n(_InputIter __first, _Size __count, _ForwardIter __result, const input_iterator_tag &)
size_t _M_start
Definition: _rope.h:569
#define _STLP_PRIV
Definition: _dm.h:70
_RopeRep * _M_base
Definition: _rope.h:568
#define _STLP_ASSERT(expr)
Definition: _debug.h:165
_STLP_PRIV _STLP_alloc_proxy< size_t, _CharT, allocator_type > _M_size
Definition: _rope.h:362

Member Data Documentation

◆ _M_base

◆ _M_start

template<class _CharT , class _Alloc >
size_t _Rope_RopeSubstring< _CharT, _Alloc >::_M_start

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