84 array(stackArray), capacity(STACK_CAPACITY), length(0), delta(0), numChanges(0),
92 array(stackArray), capacity(STACK_CAPACITY), length(other.length),
93 delta(other.delta), numChanges(other.numChanges),
94 errorCode_(other.errorCode_) {
104 array(stackArray), capacity(STACK_CAPACITY), length(src.length),
105 delta(src.delta), numChanges(src.numChanges),
106 errorCode_(src.errorCode_) {
145 void addUnchanged(int32_t unchangedLength);
151 void addReplace(int32_t oldLength, int32_t newLength);
206 array(nullptr), index(0), length(0),
207 remaining(0), onlyChanges_(
FALSE), coarse(
FALSE),
208 dir(0), changed(
FALSE), oldLength_(0), newLength_(0),
209 srcIndex(0), replIndex(0), destIndex(0) {}
251 return findIndex(i,
TRUE, errorCode) == 0;
274 return findIndex(i,
FALSE, errorCode) == 0;
299 int32_t destinationIndexFromSourceIndex(int32_t i,
UErrorCode &errorCode);
323 int32_t sourceIndexFromDestinationIndex(int32_t i,
UErrorCode &errorCode);
391 #ifndef U_HIDE_INTERNAL_API 398 #endif // U_HIDE_INTERNAL_API 405 int32_t readLength(int32_t head);
406 void updateNextIndexes();
407 void updatePreviousIndexes();
414 const uint16_t *array;
415 int32_t index, length;
419 UBool onlyChanges_, coarse;
423 int32_t oldLength_, newLength_;
424 int32_t srcIndex, replIndex, destIndex;
508 void setLastUnit(int32_t last) { array[length - 1] = (uint16_t)last; }
509 int32_t lastUnit()
const {
return length > 0 ? array[length - 1] : 0xffff; }
511 void append(int32_t r);
514 static const int32_t STACK_CAPACITY = 100;
521 uint16_t stackArray[STACK_CAPACITY];
526 #endif // __EDITS_H__ int32_t oldLength() const
The length of the current span in the source string, which starts at sourceIndex. ...
UBool findSourceIndex(int32_t i, UErrorCode &errorCode)
Moves the iterator to the edit that contains the source index.
Iterator getFineChangesIterator() const
Returns an Iterator for fine-grained change edits (full granularity of change edits is retained)...
Access to the list of edits.
Iterator getCoarseIterator() const
Returns an Iterator for coarse-grained change and no-change edits (adjacent change edits are treated ...
Iterator getCoarseChangesIterator() const
Returns an Iterator for coarse-grained change edits (adjacent change edits are treated as one)...
int32_t newLength() const
The length of the current span in the destination string, which starts at destinationIndex, or in the replacement string, which starts at replacementIndex.
Records lengths of string edits but not replacement text.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
int32_t sourceIndex() const
The start index of the current span in the source string; the span has length oldLength.
int32_t lengthDelta() const
How much longer is the new text compared with the old text?
Edits(Edits &&src) U_NOEXCEPT
Move constructor, might leave src empty.
int32_t replacementIndex() const
The start index of the current span in the replacement string; the span has length newLength...
int32_t destinationIndex() const
The start index of the current span in the destination string; the span has length newLength...
#define TRUE
The TRUE value of a UBool.
C++ API: Common ICU base class UObject.
Iterator getFineIterator() const
Returns an Iterator for fine-grained change and no-change edits (full granularity of change edits is ...
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Edits(const Edits &other)
Copy constructor.
Iterator()
Default constructor, empty iterator.
UBool hasChange() const
Returns whether the edit currently represented by the iterator is a change edit.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
UBool findDestinationIndex(int32_t i, UErrorCode &errorCode)
Moves the iterator to the edit that contains the destination index.
#define U_FINAL
Defined to the C++11 "final" keyword if available.
Basic definitions for ICU, for both C and C++ APIs.
Edits()
Constructs an empty object.
#define FALSE
The FALSE value of a UBool.
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside...
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
int32_t numberOfChanges() const
UBool next(UErrorCode &errorCode)
Advances the iterator to the next edit.
UMemory is the common ICU base class.
int8_t UBool
The ICU boolean type.