ReactOS 0.4.15-dev-7846-g8ba6c66
_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 ()
 
virtual void operator() (size_t __start_pos, size_t __len, _CharT *__buffer)=0
 
- 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 564 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)
608 }
#define _STLP_ASSERT(expr)
Definition: _debug.h:165
_Tag _M_tag
Definition: _rope.h:352
@ _S_substringfn
Definition: _rope.h:345
_STLP_PRIV _STLP_alloc_proxy< size_t, _CharT, allocator_type > _M_size
Definition: _rope.h:362
void _M_ref_nonnil()
Definition: _rope.h:434
_Rope_RopeRep< _CharT, _Alloc > _RopeRep
Definition: _rope.h:567
size_t _M_start
Definition: _rope.h:569
_RopeRep * _M_base
Definition: _rope.h:568

◆ ~_Rope_RopeSubstring()

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

Definition at line 609 of file _rope.h.

void _M_unref_nonnil()
Definition: _rope.h:431

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 {
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;
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 _STLP_PRIV
Definition: _dm.h:70
_STLP_MOVE_TO_PRIV_NAMESPACE _STLP_INLINE_LOOP pair< _InputIter, _ForwardIter > __ucopy_n(_InputIter __first, _Size __count, _ForwardIter __result, const input_iterator_tag &)
_Value _M_data
Definition: _alloc.h:478
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
@ _S_function
Definition: _rope.h:345

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: