#include <MNRopeRep.h>
Inheritance diagram for MNRopeRep:
[legend]Collaboration diagram for MNRopeRep:
[legend]List of all members.
Detailed Description
The internal data structure for representing a rope.
This is private to the implementation. A rope is really just a pointer to one of these.
A few basic functions for manipulating this data structure are members of MNRopeRep. Most of the more complex algorithms are implemented as rope members.
Some of the static member functions of MNRopeRep have identically named functions in rope that simply invoke the MNRopeRep versions.
A macro to introduce various allocation and deallocation functions These need to be defined differently depending on whether or not we are using standard conforming allocators, and whether the allocator instances have real state. Thus this macro is invoked repeatedly with different definitions of __ROPE_DEFINE_ALLOC. __ROPE_DEFINE_ALLOC(type,name) defines type * name_allocate(size_t) and void name_deallocate(tipe *, size_t) Both functions may or may not be static.
Internal rope nodes potentially store a copy of the allocator instance used to allocate them. This is mostly redundant. But the alternative would be to pass allocator instances around in some form to nearly all internal functions, since any pointer assignment may result in a zero reference count and thus require deallocation. The _Rope_rep_base class encapsulates the differences between SGI-style allocators and standard-conforming allocators.
Member Typedef Documentation
Member Enumeration Documentation
|
- Enumeration values:
-
_S_leaf |
|
_S_concat |
|
_S_substringfn |
|
_S_function |
|
|
Constructor & Destructor Documentation
MNRopeRep::MNRopeRep |
( |
_Tag |
__t, |
|
|
int |
__d, |
|
|
bool |
__b, |
|
|
size_t |
__size |
|
) |
[inline] |
|
virtual MNRopeRep::~MNRopeRep |
( |
|
) |
[inline, virtual] |
|
Member Function Documentation
void MNRopeRep::_M_free_c_string |
( |
|
) |
|
|
void MNRopeRep::_M_free_tree |
( |
|
) |
|
|
void MNRopeRep::_M_ref_nonnil |
( |
|
) |
[inline] |
|
void MNRopeRep::_M_unref_nonnil |
( |
|
) |
[inline] |
|
void MNRopeRep::_S_free_if_unref |
( |
MNRopeRep * |
__t |
) |
[inline, static] |
|
void MNRopeRep::_S_free_string |
( |
uchar_t * |
, |
|
|
size_t |
__len |
|
) |
[static] |
|
void MNRopeRep::_S_ref |
( |
MNRopeRep * |
__t |
) |
[inline, static] |
|
void MNRopeRep::_S_unref |
( |
MNRopeRep * |
__t |
) |
[inline, static] |
|
Member Data Documentation
|
Flattened version of string, if needed.
Typically 0. If it's not 0, then the memory is owned by this node. In the case of a leaf, this may point to the same memory as the data field. |
The documentation for this struct was generated from the following file:
Generated on Sun Mar 6 13:35:58 2005 for Komssys by
1.3.8