The RLE C functions take a variety of input arguments and produce result sequences or scalar types as described in the table below:
mco_seq_rle_count() Returns the number of repeating items in the current tile for the iterator in the position pos. For regular non-rle sequences it always returns 1
mco_seq_rle_count_t mco_seq_rle_count(mco_seq_iterator_h iterator, int pos);mco_seq_is_rle() Returns
MCO_YES
if RLE sequences are in usemco_bool mco_seq_is_rle(void);mco_seq_rle_decode() Convert an RLE sequence to a "normal" sequence
MCO_RET mco_seq_rle_decode(mco_seq_iterator_h result, mco_seq_iterator_h input);
Example
Following is an example code snippet demonstrating an RLE function:
{ mco_trans_h trans; mco_cursor_t quote_cursor; Quote quote; mco_seq_iterator_t rle_high_iterator, normal_high_iterator; MCO_RET rc; ... for (rc = mco_cursor_first(trans, "e_cursor); rc != MCO_S_CURSOR_END; rc = mco_cursor_next(trans, "e_cursor)) { Quote_from_cursor(trans, "e_cursor, "e); Quote_high_iterator("e, &rle_high_iterator); rc = mco_seq_rle_decode(&normal_high_iterator, &rel_high_iterator)) != MCO_S_CURSOR_END) ... } ... }