+ /**
+ * This method does any required pre-processing to the input characters. It
+ * may generate output characters that differ from the input charcters due to
+ * insertions, deletions, or reorderings. In such cases, it will also generate an
+ * output character index array reflecting these changes.
+ *
+ * Subclasses must override this method.
+ *
+ * Input parameters:
+ * @param chars - the input character context
+ * @param offset - the index of the first character to process
+ * @param count - the number of characters to process
+ * @param max - the number of characters in the input context
+ * @param rightToLeft - TRUE if the characters are in a right to left directional run
+ * @param outChars - the output character array, if different from the input
+ * @param glyphStorage - the object that holds the per-glyph storage. The character index array may be set.
+ * @param success - set to an error code if the operation fails
+ *
+ * @return the output character count (input character count if no change)
+ *
+ * @internal
+ */
+ virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+