GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  UNICODE::LINEBREAK_CALLBACK_SAVE_BUF (3)

.ds Aq ’

NAME

unicode::linebreak_callback_base, unicode::linebreak_callback_save_buf, unicode::linebreakc_callback_base, unicode::linebreak_iter, unicode::linebreakc_iter - unicode line-breaking rules

CONTENTS

SYNOPSIS

#include <courier-unicode.h>

class linebreak : public unicode::linebreak_callback_base {

public:

using unicode::linebreak_callback_base::operator<<; using unicode::linebreak_callback_base::operator(); int callback(int linebreak_code) { // ... } };

unicode_char c; std::vector<unicode_char> buf;

linebreak compute_linebreak;

compute_linebreak.set_opts(UNICODE_LB_OPT_SYBREAK); compute_linebreak << c;

compute_linebreak(buf); compute_linebreak(buf.begin(), buf.end());

compute_linebreak.finish();

// ...

unicode::linebreak_callback_save_buf linebreaks;

std::list<int> lb=linebreaks.lb_buf;

class linebreakc : public unicode::linebreakc_callback_base {

public:

using unicode::linebreak_callback_base::operator<<; using unicode::linebreak_callback_base::operator(); int callback(int linebreak_code, unicode_char ch) { // ... } };

// ...

std::vector<unicode_char> buf;

typedef unicode::linebreak_iter<std::vector<unicode_char>::const_iterator> iter_t;

iter_t beg_iter(buf.begin(), buf.end()), end_iter;

beg_iter.set_opts(UNICODE_LB_OPT_SYBREAK);

std::vector<int> linebreaks;

std::copy(beg_iter, end_iter, std::back_insert_iterator<std::vector<int>>(linebreaks));

// ...

typedef unicode::linebreakc_iter<std::vector<unicode_char>::const_iterator> iter_t;

iter_t beg_iter(buf.begin(), buf.end()), end_iter;

beg_iter.set_opts(UNICODE_LB_OPT_SYBREAK);

std::vector<std::pair<int, unicode_char>> linebreaks;

std::copy(beg_iter, end_iter, std::back_insert_iterator<std::vector<int>>(linebreaks));

DESCRIPTION

unicode::linebreak_callback_base is a C++ binding for the unicode line-breaking rule implementation described in unicode_line_break(3).

Subclass unicode::linebreak_callback_base and implement callback() thats virtually inherited from unicode::linebreak_callback_base. The callback() callback function receives the output values from the line-breaking algorithm, the UNICODE_LB_MANDATORY, UNICODE_LB_NONE, or the UNICODE_LB_ALLOWED value, for each unicode character.

callback() should return 0. A non-zero return reports an error, that stops the line-breaking algorithm. See unicode_line_break(3) for more information.

The alternate unicode::linebreakc_callback_base interface uses a virtually inherited callback() that receives two parameters, the line-break code value, and the corresponding unicode character.

The input unicode characters for the line-breaking algorithm are provided by the << operator, one unicode character at a time; or by the () operator, passing either a container, or a beginning and an ending iterator value for an input sequence of unicode characters. finish() indicates the end of the unicode character sequence.

set_opts sets line-breaking options (see unicode_lb_set_opts() for more information).

unicode::linebreak_callback_save_buf is a subclass that implements callback() by saving the linebreaks codes into a std::list.

The linebreak_iter template implements an input iterator over ints. The template parameter is an input iterator over unicode chars. The constructors parameters are a beginning and an ending iterator value for a sequence of unicode_char. This constructs the beginning iterator value for a sequence of ints consisting of line-break values (UNICODE_LB_MANDATORY, UNICODE_LB_NONE, or UNICODE_LB_ALLOWED) corresponding to each unicode_char in the underlying sequence. The default constructor creates the ending iterator value for the sequence.

The iterator implements a set_opts() methods that sets the options for the line-breaking algorithm.

The linebreakc_iter template implements a similar input iterator, with the difference that it ends up iterating over a std::pair of line-breaking values and the corresponding unicode_char from the underlying input sequence.

SEE ALSO

courier-unicode(7), unicode_line_break(3).

AUTHOR

Sam Varshavchik

Author
Search for    or go to Top of page |  Section 3 |  Main Index


Courier Unicode Library UNICODE::LINEBREAK (3) 07/29/2015

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.