~ubuntu-branches/ubuntu/wily/ipe/wily-proposed

« back to all changes in this revision

Viewing changes to build/doc/classipe_1_1_string.html

  • Committer: Package Import Robot
  • Author(s): Steve M. Robbins
  • Date: 2012-01-15 22:33:06 UTC
  • mfrom: (1.1.13)
  • Revision ID: package-import@ubuntu.com-20120115223306-4gh8wgv0em3w8ptm
Tags: 7.1.2-1
* New upstream.

* ipe.preinst: New.  Remove old directory /usr/share/doc/ipe/doc if it
  exists on upgrade.  That path is now a symlink, but linking fails if
  the directory is there.  Closes: #654922.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
 
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
 
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
2
<html xmlns="http://www.w3.org/1999/xhtml">
 
3
<head>
 
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
3
5
<title>Ipelib: ipe::String Class Reference</title>
4
 
<link href="tabs.css" rel="stylesheet" type="text/css">
5
 
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
 
</head><body>
7
 
<!-- Generated by Doxygen 1.5.8 -->
8
 
<div class="navigation" id="top">
9
 
  <div class="tabs">
10
 
    <ul>
11
 
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
 
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
 
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
 
8
</head>
 
9
<body>
 
10
<!-- Generated by Doxygen 1.7.3 -->
 
11
<div id="top">
 
12
<div id="titlearea">
 
13
<table cellspacing="0" cellpadding="0">
 
14
 <tbody>
 
15
 <tr style="height: 56px;">
 
16
  <td style="padding-left: 0.5em;">
 
17
   <div id="projectname">Ipelib</div>
 
18
  </td>
 
19
 </tr>
 
20
 </tbody>
 
21
</table>
 
22
</div>
 
23
  <div id="navrow1" class="tabs">
 
24
    <ul class="tablist">
 
25
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
12
26
      <li><a href="modules.html"><span>Modules</span></a></li>
13
 
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
14
27
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
15
28
    </ul>
16
29
  </div>
17
 
  <div class="tabs">
 
30
  <div id="navrow2" class="tabs2">
 
31
    <ul class="tablist">
 
32
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
 
33
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
 
34
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
 
35
    </ul>
 
36
  </div>
 
37
  <div id="nav-path" class="navpath">
18
38
    <ul>
19
 
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
20
 
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
21
 
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
22
 
    </ul>
23
 
  </div>
24
 
  <div class="navpath"><a class="el" href="namespaceipe.html">ipe</a>::<a class="el" href="classipe_1_1_string.html">String</a>
25
 
  </div>
 
39
      <li class="navelem"><b>ipe</b>      </li>
 
40
      <li class="navelem"><a class="el" href="classipe_1_1_string.html">String</a>      </li>
 
41
</div>
 
42
<div class="header">
 
43
  <div class="summary">
 
44
<a href="#nested-classes">Classes</a> &#124;
 
45
<a href="#pub-methods">Public Member Functions</a>  </div>
 
46
  <div class="headertitle">
 
47
<h1>ipe::String Class Reference<div class="ingroups"><a class="el" href="group__base.html">Ipe Base</a></div></h1>  </div>
26
48
</div>
27
49
<div class="contents">
28
 
<h1>ipe::String Class Reference<br>
29
 
<small>
30
 
[<a class="el" href="group__base.html">Ipe Base</a>]</small>
31
 
</h1><!-- doxytag: class="ipe::String" -->Strings and buffers.  
32
 
<a href="#_details">More...</a>
33
 
<p>
34
 
<code>#include &lt;ipebase.h&gt;</code>
35
 
<p>
36
 
 
37
 
<p>
38
 
<a href="classipe_1_1_string-members.html">List of all members.</a><h2>Classes</h2>
 
50
<!-- doxytag: class="ipe::String" -->
 
51
<p>Strings and buffers.  
 
52
<a href="#_details">More...</a></p>
 
53
 
 
54
<p><code>#include &lt;ipebase.h&gt;</code></p>
 
55
 
 
56
<p><a href="classipe_1_1_string-members.html">List of all members.</a></p>
 
57
<h2><a name="nested-classes"></a>
 
58
Classes</h2>
39
59
<ul>
40
60
<li>struct <b>Imp</b>
41
61
</ul>
42
 
<h2>Public Member Functions</h2>
 
62
<h2><a name="pub-methods"></a>
 
63
Public Member Functions</h2>
43
64
<ul>
44
 
<li><a class="el" href="classipe_1_1_string.html#8a7ef356e05eb9b1ea1ab518baee3095">String</a> ()
45
 
<li><a class="el" href="classipe_1_1_string.html#3fba40cf6cb11735ffddc355a5ff68f4">String</a> (const char *str)
46
 
<li><a class="el" href="classipe_1_1_string.html#117f8a4ef8cd2c6b3632324b0146d7ae">String</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs)
47
 
<li><a class="el" href="classipe_1_1_string.html#38b584c89d79a8b6654e8d40577695d0">String</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs, int index, int len)
48
 
<li><a class="el" href="classipe_1_1_string.html">String</a> &amp; <a class="el" href="classipe_1_1_string.html#70b3aba8ac7a57e3bb48a52a5d64a88b">operator=</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs)
49
 
<li><a class="el" href="classipe_1_1_string.html#c40b2a3fb58c2d8556f5e6ff73510036">~String</a> ()
50
 
<li>char <a class="el" href="classipe_1_1_string.html#31bf41d9c7e2a85ade1cd9c6ba17e4f5">operator[]</a> (int i) const 
51
 
<li>bool <a class="el" href="classipe_1_1_string.html#5a053d22050137196cca9cca1a4e9b42">empty</a> () const 
52
 
<li>bool <a class="el" href="classipe_1_1_string.html#a8ad780569e40cc86c1afb0475910c57">isEmpty</a> () const 
53
 
<li>const char * <a class="el" href="classipe_1_1_string.html#57a7cd02ec8eee40eec446e27b331e59">data</a> () const 
54
 
<li>int <a class="el" href="classipe_1_1_string.html#025d035cd6ff7deaa9fdfa96ba39129f">size</a> () const 
55
 
<li>void <a class="el" href="classipe_1_1_string.html#df2969eaf89907e88bbeb90e97d37b38">operator+=</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs)
56
 
<li>void <a class="el" href="classipe_1_1_string.html#d17c4955f194bf3cc38073916a41ccd6">operator+=</a> (char ch)
57
 
<li><a class="el" href="classipe_1_1_string.html">String</a> <a class="el" href="classipe_1_1_string.html#5d2bc42037447ee489350c56774e627c">substr</a> (int i, int len=-1) const 
58
 
<li><a class="el" href="classipe_1_1_string.html">String</a> <a class="el" href="classipe_1_1_string.html#8b6748ce34485f3b137de02357a5b5cf">left</a> (int i) const 
59
 
<li><a class="el" href="classipe_1_1_string.html">String</a> <a class="el" href="classipe_1_1_string.html#71db37324cbd157f031326870722a852">right</a> (int i) const 
60
 
<li>bool <a class="el" href="classipe_1_1_string.html#407ac1c536d9ab9d6f8d768e68b40e7a">operator!=</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs) const 
61
 
<li>int <a class="el" href="classipe_1_1_string.html#b37400fd0ed547f7c65dc29cf73643ee">find</a> (char ch) const 
62
 
<li>int <a class="el" href="classipe_1_1_string.html#dcf7cd202938ad0798ced0380d0e141d">rfind</a> (char ch) const 
63
 
<li>int <a class="el" href="classipe_1_1_string.html#ef7b09a6d79e02936427a5e39734e01e">find</a> (const char *rhs) const 
64
 
<li>void <a class="el" href="classipe_1_1_string.html#3ce2ea55be9ec912bb2dbc88d461b479">erase</a> ()
65
 
<li>void <a class="el" href="classipe_1_1_string.html#887c957724678e481e1dd0d8753e8d01">append</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs)
66
 
<li>void <a class="el" href="classipe_1_1_string.html#2bbaae7f5d8733e35baabdbadc039dab">append</a> (char ch)
67
 
<li>bool <a class="el" href="classipe_1_1_string.html#b1426554db4fc54efba8c80be7ab87c9">operator==</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs) const 
68
 
<li>bool <a class="el" href="classipe_1_1_string.html#d17973b1a6ca7be84afdbb32ac3ed4e3">operator&lt;</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs) const 
69
 
<li><a class="el" href="classipe_1_1_string.html">String</a> <a class="el" href="classipe_1_1_string.html#b42e009ab85d895999ee3208048df18b">operator+</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs) const 
70
 
<li>int <a class="el" href="classipe_1_1_string.html#5c4533ae4f17acb2735761e8ff83185d">unicode</a> (int &amp;index) const 
71
 
<li>const char * <a class="el" href="classipe_1_1_string.html#964635e9e0c6178d63110410ec9ab7dc">z</a> () const 
72
 
</ul>
73
 
<hr><a name="_details"></a><h2>Detailed Description</h2>
74
 
Strings and buffers. 
75
 
<p>
76
 
<a class="el" href="classipe_1_1_string.html" title="Strings and buffers.">String</a> is is an implicitly shared byte string. It is designed to be efficient for strings of arbitrary length, and supposed to be passed by value (the size of <a class="el" href="classipe_1_1_string.html" title="Strings and buffers.">String</a> is a single pointer). Sharing is implicit---the string creates its own representation as soon as it is modified.<p>
77
 
<a class="el" href="classipe_1_1_string.html" title="Strings and buffers.">String</a> can be used for binary data. For text, it is usually assumed that the string is UTF-8 encoded, but only the unicode member function actually requires this. In particular, all indices into the string are byte indices, not Unicode character indices. <hr><h2>Constructor &amp; Destructor Documentation</h2>
78
 
<a class="anchor" name="8a7ef356e05eb9b1ea1ab518baee3095"></a><!-- doxytag: member="ipe::String::String" ref="8a7ef356e05eb9b1ea1ab518baee3095" args="()" -->
79
 
<div class="memitem">
80
 
<div class="memproto">
81
 
      <table class="memname">
82
 
        <tr>
83
 
          <td class="memname">String::String           </td>
84
 
          <td>(</td>
85
 
          <td class="paramname">          </td>
86
 
          <td>&nbsp;)&nbsp;</td>
87
 
          <td></td>
88
 
        </tr>
89
 
      </table>
90
 
</div>
91
 
<div class="memdoc">
92
 
 
93
 
<p>
94
 
Construct an empty string. 
95
 
<p>
96
 
 
97
 
</div>
98
 
</div><p>
99
 
<a class="anchor" name="3fba40cf6cb11735ffddc355a5ff68f4"></a><!-- doxytag: member="ipe::String::String" ref="3fba40cf6cb11735ffddc355a5ff68f4" args="(const char *str)" -->
100
 
<div class="memitem">
101
 
<div class="memproto">
102
 
      <table class="memname">
103
 
        <tr>
104
 
          <td class="memname">String::String           </td>
105
 
          <td>(</td>
106
 
          <td class="paramtype">const char *&nbsp;</td>
107
 
          <td class="paramname"> <em>str</em>          </td>
108
 
          <td>&nbsp;)&nbsp;</td>
109
 
          <td></td>
110
 
        </tr>
111
 
      </table>
112
 
</div>
113
 
<div class="memdoc">
114
 
 
115
 
<p>
116
 
Construct a string by making copy of <em>str</em>. 
117
 
<p>
118
 
 
119
 
</div>
120
 
</div><p>
121
 
<a class="anchor" name="117f8a4ef8cd2c6b3632324b0146d7ae"></a><!-- doxytag: member="ipe::String::String" ref="117f8a4ef8cd2c6b3632324b0146d7ae" args="(const String &amp;rhs)" -->
122
 
<div class="memitem">
123
 
<div class="memproto">
124
 
      <table class="memname">
125
 
        <tr>
126
 
          <td class="memname">String::String           </td>
127
 
          <td>(</td>
128
 
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&nbsp;</td>
129
 
          <td class="paramname"> <em>rhs</em>          </td>
130
 
          <td>&nbsp;)&nbsp;</td>
131
 
          <td></td>
132
 
        </tr>
133
 
      </table>
134
 
</div>
135
 
<div class="memdoc">
136
 
 
137
 
<p>
138
 
Copy constructor. This only copies the reference and takes constant time. 
139
 
<p>
140
 
 
141
 
</div>
142
 
</div><p>
143
 
<a class="anchor" name="38b584c89d79a8b6654e8d40577695d0"></a><!-- doxytag: member="ipe::String::String" ref="38b584c89d79a8b6654e8d40577695d0" args="(const String &amp;rhs, int index, int len)" -->
144
 
<div class="memitem">
145
 
<div class="memproto">
146
 
      <table class="memname">
147
 
        <tr>
148
 
          <td class="memname">String::String           </td>
149
 
          <td>(</td>
150
 
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&nbsp;</td>
151
 
          <td class="paramname"> <em>rhs</em>, </td>
152
 
        </tr>
153
 
        <tr>
154
 
          <td class="paramkey"></td>
155
 
          <td></td>
156
 
          <td class="paramtype">int&nbsp;</td>
157
 
          <td class="paramname"> <em>index</em>, </td>
158
 
        </tr>
159
 
        <tr>
160
 
          <td class="paramkey"></td>
161
 
          <td></td>
162
 
          <td class="paramtype">int&nbsp;</td>
163
 
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
164
 
        </tr>
165
 
        <tr>
166
 
          <td></td>
167
 
          <td>)</td>
168
 
          <td></td><td></td><td></td>
169
 
        </tr>
170
 
      </table>
171
 
</div>
172
 
<div class="memdoc">
173
 
 
174
 
<p>
175
 
Construct a substring. 
176
 
<p>
177
 
<em>index</em> must be &gt;= 0. <em>len</em> can be negative or too large to return entire string. 
178
 
</div>
179
 
</div><p>
180
 
<a class="anchor" name="c40b2a3fb58c2d8556f5e6ff73510036"></a><!-- doxytag: member="ipe::String::~String" ref="c40b2a3fb58c2d8556f5e6ff73510036" args="()" -->
181
 
<div class="memitem">
182
 
<div class="memproto">
183
 
      <table class="memname">
184
 
        <tr>
185
 
          <td class="memname">String::~String           </td>
186
 
          <td>(</td>
187
 
          <td class="paramname">          </td>
188
 
          <td>&nbsp;)&nbsp;</td>
189
 
          <td></td>
190
 
        </tr>
191
 
      </table>
192
 
</div>
193
 
<div class="memdoc">
194
 
 
195
 
<p>
196
 
Destruct string if reference count has reached zero. 
197
 
<p>
198
 
 
199
 
</div>
200
 
</div><p>
201
 
<hr><h2>Member Function Documentation</h2>
202
 
<a class="anchor" name="70b3aba8ac7a57e3bb48a52a5d64a88b"></a><!-- doxytag: member="ipe::String::operator=" ref="70b3aba8ac7a57e3bb48a52a5d64a88b" args="(const String &amp;rhs)" -->
203
 
<div class="memitem">
204
 
<div class="memproto">
205
 
      <table class="memname">
206
 
        <tr>
207
 
          <td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> &amp; String::operator=           </td>
208
 
          <td>(</td>
209
 
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&nbsp;</td>
210
 
          <td class="paramname"> <em>rhs</em>          </td>
211
 
          <td>&nbsp;)&nbsp;</td>
212
 
          <td></td>
213
 
        </tr>
214
 
      </table>
215
 
</div>
216
 
<div class="memdoc">
217
 
 
218
 
<p>
219
 
Assignment takes constant time. 
220
 
<p>
221
 
 
222
 
</div>
223
 
</div><p>
224
 
<a class="anchor" name="31bf41d9c7e2a85ade1cd9c6ba17e4f5"></a><!-- doxytag: member="ipe::String::operator[]" ref="31bf41d9c7e2a85ade1cd9c6ba17e4f5" args="(int i) const " -->
225
 
<div class="memitem">
226
 
<div class="memproto">
227
 
      <table class="memname">
228
 
        <tr>
229
 
          <td class="memname">char ipe::String::operator[]           </td>
230
 
          <td>(</td>
231
 
          <td class="paramtype">int&nbsp;</td>
232
 
          <td class="paramname"> <em>i</em>          </td>
233
 
          <td>&nbsp;)&nbsp;</td>
234
 
          <td> const<code> [inline]</code></td>
235
 
        </tr>
236
 
      </table>
237
 
</div>
238
 
<div class="memdoc">
239
 
 
240
 
<p>
241
 
Return character at index i. 
242
 
<p>
243
 
 
244
 
</div>
245
 
</div><p>
246
 
<a class="anchor" name="5a053d22050137196cca9cca1a4e9b42"></a><!-- doxytag: member="ipe::String::empty" ref="5a053d22050137196cca9cca1a4e9b42" args="() const " -->
247
 
<div class="memitem">
248
 
<div class="memproto">
249
 
      <table class="memname">
250
 
        <tr>
251
 
          <td class="memname">bool ipe::String::empty           </td>
252
 
          <td>(</td>
253
 
          <td class="paramname">          </td>
254
 
          <td>&nbsp;)&nbsp;</td>
255
 
          <td> const<code> [inline]</code></td>
256
 
        </tr>
257
 
      </table>
258
 
</div>
259
 
<div class="memdoc">
260
 
 
261
 
<p>
262
 
Is the string empty? 
263
 
<p>
264
 
 
265
 
</div>
266
 
</div><p>
267
 
<a class="anchor" name="a8ad780569e40cc86c1afb0475910c57"></a><!-- doxytag: member="ipe::String::isEmpty" ref="a8ad780569e40cc86c1afb0475910c57" args="() const " -->
268
 
<div class="memitem">
269
 
<div class="memproto">
270
 
      <table class="memname">
271
 
        <tr>
272
 
          <td class="memname">bool ipe::String::isEmpty           </td>
273
 
          <td>(</td>
274
 
          <td class="paramname">          </td>
275
 
          <td>&nbsp;)&nbsp;</td>
276
 
          <td> const<code> [inline]</code></td>
277
 
        </tr>
278
 
      </table>
279
 
</div>
280
 
<div class="memdoc">
281
 
 
282
 
<p>
283
 
Is the string empty? 
284
 
<p>
285
 
 
286
 
</div>
287
 
</div><p>
288
 
<a class="anchor" name="57a7cd02ec8eee40eec446e27b331e59"></a><!-- doxytag: member="ipe::String::data" ref="57a7cd02ec8eee40eec446e27b331e59" args="() const " -->
289
 
<div class="memitem">
290
 
<div class="memproto">
291
 
      <table class="memname">
292
 
        <tr>
293
 
          <td class="memname">const char* ipe::String::data           </td>
294
 
          <td>(</td>
295
 
          <td class="paramname">          </td>
296
 
          <td>&nbsp;)&nbsp;</td>
297
 
          <td> const<code> [inline]</code></td>
298
 
        </tr>
299
 
      </table>
300
 
</div>
301
 
<div class="memdoc">
302
 
 
303
 
<p>
304
 
Return read-only pointer to the data. 
305
 
<p>
306
 
 
307
 
</div>
308
 
</div><p>
309
 
<a class="anchor" name="025d035cd6ff7deaa9fdfa96ba39129f"></a><!-- doxytag: member="ipe::String::size" ref="025d035cd6ff7deaa9fdfa96ba39129f" args="() const " -->
310
 
<div class="memitem">
311
 
<div class="memproto">
312
 
      <table class="memname">
313
 
        <tr>
314
 
          <td class="memname">int ipe::String::size           </td>
315
 
          <td>(</td>
316
 
          <td class="paramname">          </td>
317
 
          <td>&nbsp;)&nbsp;</td>
318
 
          <td> const<code> [inline]</code></td>
319
 
        </tr>
320
 
      </table>
321
 
</div>
322
 
<div class="memdoc">
323
 
 
324
 
<p>
325
 
Return number of bytes in the string. 
326
 
<p>
327
 
 
328
 
</div>
329
 
</div><p>
330
 
<a class="anchor" name="df2969eaf89907e88bbeb90e97d37b38"></a><!-- doxytag: member="ipe::String::operator+=" ref="df2969eaf89907e88bbeb90e97d37b38" args="(const String &amp;rhs)" -->
331
 
<div class="memitem">
332
 
<div class="memproto">
333
 
      <table class="memname">
334
 
        <tr>
335
 
          <td class="memname">void ipe::String::operator+=           </td>
336
 
          <td>(</td>
337
 
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&nbsp;</td>
338
 
          <td class="paramname"> <em>rhs</em>          </td>
339
 
          <td>&nbsp;)&nbsp;</td>
340
 
          <td><code> [inline]</code></td>
341
 
        </tr>
342
 
      </table>
343
 
</div>
344
 
<div class="memdoc">
345
 
 
346
 
<p>
347
 
Operator syntax for append. 
348
 
<p>
349
 
 
350
 
</div>
351
 
</div><p>
352
 
<a class="anchor" name="d17c4955f194bf3cc38073916a41ccd6"></a><!-- doxytag: member="ipe::String::operator+=" ref="d17c4955f194bf3cc38073916a41ccd6" args="(char ch)" -->
353
 
<div class="memitem">
354
 
<div class="memproto">
355
 
      <table class="memname">
356
 
        <tr>
357
 
          <td class="memname">void ipe::String::operator+=           </td>
358
 
          <td>(</td>
359
 
          <td class="paramtype">char&nbsp;</td>
360
 
          <td class="paramname"> <em>ch</em>          </td>
361
 
          <td>&nbsp;)&nbsp;</td>
362
 
          <td><code> [inline]</code></td>
363
 
        </tr>
364
 
      </table>
365
 
</div>
366
 
<div class="memdoc">
367
 
 
368
 
<p>
369
 
Operator syntax for append. 
370
 
<p>
371
 
 
372
 
</div>
373
 
</div><p>
374
 
<a class="anchor" name="5d2bc42037447ee489350c56774e627c"></a><!-- doxytag: member="ipe::String::substr" ref="5d2bc42037447ee489350c56774e627c" args="(int i, int len=&#45;1) const " -->
375
 
<div class="memitem">
376
 
<div class="memproto">
377
 
      <table class="memname">
378
 
        <tr>
379
 
          <td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> ipe::String::substr           </td>
380
 
          <td>(</td>
381
 
          <td class="paramtype">int&nbsp;</td>
382
 
          <td class="paramname"> <em>i</em>, </td>
383
 
        </tr>
384
 
        <tr>
385
 
          <td class="paramkey"></td>
386
 
          <td></td>
387
 
          <td class="paramtype">int&nbsp;</td>
388
 
          <td class="paramname"> <em>len</em> = <code>-1</code></td><td>&nbsp;</td>
389
 
        </tr>
390
 
        <tr>
391
 
          <td></td>
392
 
          <td>)</td>
393
 
          <td></td><td></td><td> const<code> [inline]</code></td>
394
 
        </tr>
395
 
      </table>
396
 
</div>
397
 
<div class="memdoc">
398
 
 
399
 
<p>
400
 
Create substring. 
401
 
<p>
402
 
 
403
 
</div>
404
 
</div><p>
405
 
<a class="anchor" name="8b6748ce34485f3b137de02357a5b5cf"></a><!-- doxytag: member="ipe::String::left" ref="8b6748ce34485f3b137de02357a5b5cf" args="(int i) const " -->
406
 
<div class="memitem">
407
 
<div class="memproto">
408
 
      <table class="memname">
409
 
        <tr>
410
 
          <td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> ipe::String::left           </td>
411
 
          <td>(</td>
412
 
          <td class="paramtype">int&nbsp;</td>
413
 
          <td class="paramname"> <em>i</em>          </td>
414
 
          <td>&nbsp;)&nbsp;</td>
415
 
          <td> const<code> [inline]</code></td>
416
 
        </tr>
417
 
      </table>
418
 
</div>
419
 
<div class="memdoc">
420
 
 
421
 
<p>
422
 
Create substring at the left. 
423
 
<p>
424
 
 
425
 
</div>
426
 
</div><p>
427
 
<a class="anchor" name="71db37324cbd157f031326870722a852"></a><!-- doxytag: member="ipe::String::right" ref="71db37324cbd157f031326870722a852" args="(int i) const " -->
428
 
<div class="memitem">
429
 
<div class="memproto">
430
 
      <table class="memname">
431
 
        <tr>
432
 
          <td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> String::right           </td>
433
 
          <td>(</td>
434
 
          <td class="paramtype">int&nbsp;</td>
435
 
          <td class="paramname"> <em>i</em>          </td>
436
 
          <td>&nbsp;)&nbsp;</td>
437
 
          <td> const</td>
438
 
        </tr>
439
 
      </table>
440
 
</div>
441
 
<div class="memdoc">
442
 
 
443
 
<p>
444
 
Create substring at the right. 
445
 
<p>
446
 
Returns the entire string if <em>i</em> is larger than its length. 
447
 
</div>
448
 
</div><p>
449
 
<a class="anchor" name="407ac1c536d9ab9d6f8d768e68b40e7a"></a><!-- doxytag: member="ipe::String::operator!=" ref="407ac1c536d9ab9d6f8d768e68b40e7a" args="(const String &amp;rhs) const " -->
450
 
<div class="memitem">
451
 
<div class="memproto">
452
 
      <table class="memname">
453
 
        <tr>
454
 
          <td class="memname">bool ipe::String::operator!=           </td>
455
 
          <td>(</td>
456
 
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&nbsp;</td>
457
 
          <td class="paramname"> <em>rhs</em>          </td>
458
 
          <td>&nbsp;)&nbsp;</td>
459
 
          <td> const<code> [inline]</code></td>
460
 
        </tr>
461
 
      </table>
462
 
</div>
463
 
<div class="memdoc">
464
 
 
465
 
<p>
466
 
Operator !=. 
467
 
<p>
468
 
 
469
 
</div>
470
 
</div><p>
471
 
<a class="anchor" name="b37400fd0ed547f7c65dc29cf73643ee"></a><!-- doxytag: member="ipe::String::find" ref="b37400fd0ed547f7c65dc29cf73643ee" args="(char ch) const " -->
472
 
<div class="memitem">
473
 
<div class="memproto">
474
 
      <table class="memname">
475
 
        <tr>
476
 
          <td class="memname">int String::find           </td>
477
 
          <td>(</td>
478
 
          <td class="paramtype">char&nbsp;</td>
479
 
          <td class="paramname"> <em>ch</em>          </td>
480
 
          <td>&nbsp;)&nbsp;</td>
481
 
          <td> const</td>
482
 
        </tr>
483
 
      </table>
484
 
</div>
485
 
<div class="memdoc">
486
 
 
487
 
<p>
488
 
Return index of first occurrence of ch. 
489
 
<p>
490
 
Return -1 if character does not appear. 
491
 
</div>
492
 
</div><p>
493
 
<a class="anchor" name="dcf7cd202938ad0798ced0380d0e141d"></a><!-- doxytag: member="ipe::String::rfind" ref="dcf7cd202938ad0798ced0380d0e141d" args="(char ch) const " -->
494
 
<div class="memitem">
495
 
<div class="memproto">
496
 
      <table class="memname">
497
 
        <tr>
498
 
          <td class="memname">int String::rfind           </td>
499
 
          <td>(</td>
500
 
          <td class="paramtype">char&nbsp;</td>
501
 
          <td class="paramname"> <em>ch</em>          </td>
502
 
          <td>&nbsp;)&nbsp;</td>
503
 
          <td> const</td>
504
 
        </tr>
505
 
      </table>
506
 
</div>
507
 
<div class="memdoc">
508
 
 
509
 
<p>
510
 
Return index of last occurrence of ch. 
511
 
<p>
512
 
Return -1 if character does not appear. 
513
 
</div>
514
 
</div><p>
515
 
<a class="anchor" name="ef7b09a6d79e02936427a5e39734e01e"></a><!-- doxytag: member="ipe::String::find" ref="ef7b09a6d79e02936427a5e39734e01e" args="(const char *rhs) const " -->
516
 
<div class="memitem">
517
 
<div class="memproto">
518
 
      <table class="memname">
519
 
        <tr>
520
 
          <td class="memname">int String::find           </td>
521
 
          <td>(</td>
522
 
          <td class="paramtype">const char *&nbsp;</td>
523
 
          <td class="paramname"> <em>rhs</em>          </td>
524
 
          <td>&nbsp;)&nbsp;</td>
525
 
          <td> const</td>
526
 
        </tr>
527
 
      </table>
528
 
</div>
529
 
<div class="memdoc">
530
 
 
531
 
<p>
532
 
Return index of first occurrence of rhs. 
533
 
<p>
534
 
Return -1 if not substring is not present. 
535
 
</div>
536
 
</div><p>
537
 
<a class="anchor" name="3ce2ea55be9ec912bb2dbc88d461b479"></a><!-- doxytag: member="ipe::String::erase" ref="3ce2ea55be9ec912bb2dbc88d461b479" args="()" -->
538
 
<div class="memitem">
539
 
<div class="memproto">
540
 
      <table class="memname">
541
 
        <tr>
542
 
          <td class="memname">void String::erase           </td>
543
 
          <td>(</td>
544
 
          <td class="paramname">          </td>
545
 
          <td>&nbsp;)&nbsp;</td>
546
 
          <td></td>
547
 
        </tr>
548
 
      </table>
549
 
</div>
550
 
<div class="memdoc">
551
 
 
552
 
<p>
553
 
Make string empty. 
554
 
<p>
555
 
 
556
 
</div>
557
 
</div><p>
558
 
<a class="anchor" name="887c957724678e481e1dd0d8753e8d01"></a><!-- doxytag: member="ipe::String::append" ref="887c957724678e481e1dd0d8753e8d01" args="(const String &amp;rhs)" -->
559
 
<div class="memitem">
560
 
<div class="memproto">
561
 
      <table class="memname">
562
 
        <tr>
563
 
          <td class="memname">void String::append           </td>
564
 
          <td>(</td>
565
 
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&nbsp;</td>
566
 
          <td class="paramname"> <em>rhs</em>          </td>
567
 
          <td>&nbsp;)&nbsp;</td>
568
 
          <td></td>
569
 
        </tr>
570
 
      </table>
571
 
</div>
572
 
<div class="memdoc">
573
 
 
574
 
<p>
575
 
Append <em>rhs</em> to this string. 
576
 
<p>
577
 
 
578
 
</div>
579
 
</div><p>
580
 
<a class="anchor" name="2bbaae7f5d8733e35baabdbadc039dab"></a><!-- doxytag: member="ipe::String::append" ref="2bbaae7f5d8733e35baabdbadc039dab" args="(char ch)" -->
581
 
<div class="memitem">
582
 
<div class="memproto">
583
 
      <table class="memname">
584
 
        <tr>
585
 
          <td class="memname">void String::append           </td>
586
 
          <td>(</td>
587
 
          <td class="paramtype">char&nbsp;</td>
588
 
          <td class="paramname"> <em>ch</em>          </td>
589
 
          <td>&nbsp;)&nbsp;</td>
590
 
          <td></td>
591
 
        </tr>
592
 
      </table>
593
 
</div>
594
 
<div class="memdoc">
595
 
 
596
 
<p>
597
 
Append <em>ch</em> to this string. 
598
 
<p>
599
 
 
600
 
</div>
601
 
</div><p>
602
 
<a class="anchor" name="b1426554db4fc54efba8c80be7ab87c9"></a><!-- doxytag: member="ipe::String::operator==" ref="b1426554db4fc54efba8c80be7ab87c9" args="(const String &amp;rhs) const " -->
603
 
<div class="memitem">
604
 
<div class="memproto">
605
 
      <table class="memname">
606
 
        <tr>
607
 
          <td class="memname">bool String::operator==           </td>
608
 
          <td>(</td>
609
 
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&nbsp;</td>
610
 
          <td class="paramname"> <em>rhs</em>          </td>
611
 
          <td>&nbsp;)&nbsp;</td>
612
 
          <td> const</td>
613
 
        </tr>
614
 
      </table>
615
 
</div>
616
 
<div class="memdoc">
617
 
 
618
 
<p>
619
 
Equality operator (bytewise comparison). 
620
 
<p>
621
 
 
622
 
</div>
623
 
</div><p>
624
 
<a class="anchor" name="d17973b1a6ca7be84afdbb32ac3ed4e3"></a><!-- doxytag: member="ipe::String::operator&lt;" ref="d17973b1a6ca7be84afdbb32ac3ed4e3" args="(const String &amp;rhs) const " -->
625
 
<div class="memitem">
626
 
<div class="memproto">
627
 
      <table class="memname">
628
 
        <tr>
629
 
          <td class="memname">bool String::operator&lt;           </td>
630
 
          <td>(</td>
631
 
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&nbsp;</td>
632
 
          <td class="paramname"> <em>rhs</em>          </td>
633
 
          <td>&nbsp;)&nbsp;</td>
634
 
          <td> const</td>
635
 
        </tr>
636
 
      </table>
637
 
</div>
638
 
<div class="memdoc">
639
 
 
640
 
<p>
641
 
Inequality operator (bytewise comparison). 
642
 
<p>
643
 
 
644
 
</div>
645
 
</div><p>
646
 
<a class="anchor" name="b42e009ab85d895999ee3208048df18b"></a><!-- doxytag: member="ipe::String::operator+" ref="b42e009ab85d895999ee3208048df18b" args="(const String &amp;rhs) const " -->
647
 
<div class="memitem">
648
 
<div class="memproto">
649
 
      <table class="memname">
650
 
        <tr>
651
 
          <td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> String::operator+           </td>
652
 
          <td>(</td>
653
 
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&nbsp;</td>
654
 
          <td class="paramname"> <em>rhs</em>          </td>
655
 
          <td>&nbsp;)&nbsp;</td>
656
 
          <td> const</td>
657
 
        </tr>
658
 
      </table>
659
 
</div>
660
 
<div class="memdoc">
661
 
 
662
 
<p>
663
 
Concatenate this string with <em>rhs</em>. 
664
 
<p>
665
 
 
666
 
</div>
667
 
</div><p>
668
 
<a class="anchor" name="5c4533ae4f17acb2735761e8ff83185d"></a><!-- doxytag: member="ipe::String::unicode" ref="5c4533ae4f17acb2735761e8ff83185d" args="(int &amp;index) const " -->
669
 
<div class="memitem">
670
 
<div class="memproto">
671
 
      <table class="memname">
672
 
        <tr>
673
 
          <td class="memname">int String::unicode           </td>
674
 
          <td>(</td>
675
 
          <td class="paramtype">int &amp;&nbsp;</td>
676
 
          <td class="paramname"> <em>index</em>          </td>
677
 
          <td>&nbsp;)&nbsp;</td>
678
 
          <td> const</td>
679
 
        </tr>
680
 
      </table>
681
 
</div>
682
 
<div class="memdoc">
683
 
 
684
 
<p>
685
 
Return Unicode value from UTF-8 string. 
686
 
<p>
687
 
The <em>index</em> is incremented to the next UTF-8 character. This returns 0xfffd if there is any problem in parsing UTF-8. 
688
 
</div>
689
 
</div><p>
690
 
<a class="anchor" name="964635e9e0c6178d63110410ec9ab7dc"></a><!-- doxytag: member="ipe::String::z" ref="964635e9e0c6178d63110410ec9ab7dc" args="() const " -->
691
 
<div class="memitem">
692
 
<div class="memproto">
693
 
      <table class="memname">
694
 
        <tr>
695
 
          <td class="memname">const char * String::z           </td>
696
 
          <td>(</td>
697
 
          <td class="paramname">          </td>
698
 
          <td>&nbsp;)&nbsp;</td>
699
 
          <td> const</td>
700
 
        </tr>
701
 
      </table>
702
 
</div>
703
 
<div class="memdoc">
704
 
 
705
 
<p>
706
 
Return a C style string with final zero byte. 
707
 
<p>
708
 
 
709
 
</div>
710
 
</div><p>
711
 
<hr>The documentation for this class was generated from the following files:<ul>
712
 
<li>ipebase.h<li>ipebase.cpp</ul>
 
65
<li><a class="el" href="classipe_1_1_string.html#a8a7ef356e05eb9b1ea1ab518baee3095">String</a> ()
 
66
<li><a class="el" href="classipe_1_1_string.html#a3fba40cf6cb11735ffddc355a5ff68f4">String</a> (const char *str)
 
67
<li><a class="el" href="classipe_1_1_string.html#a117f8a4ef8cd2c6b3632324b0146d7ae">String</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs)
 
68
<li><a class="el" href="classipe_1_1_string.html#a38b584c89d79a8b6654e8d40577695d0">String</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs, int index, int len)
 
69
<li><a class="el" href="classipe_1_1_string.html">String</a> &amp; <a class="el" href="classipe_1_1_string.html#a70b3aba8ac7a57e3bb48a52a5d64a88b">operator=</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs)
 
70
<li><a class="el" href="classipe_1_1_string.html#ac40b2a3fb58c2d8556f5e6ff73510036">~String</a> ()
 
71
<li>char <a class="el" href="classipe_1_1_string.html#a31bf41d9c7e2a85ade1cd9c6ba17e4f5">operator[]</a> (int i) const 
 
72
<li>bool <a class="el" href="classipe_1_1_string.html#a5a053d22050137196cca9cca1a4e9b42">empty</a> () const 
 
73
<li>bool <a class="el" href="classipe_1_1_string.html#aa8ad780569e40cc86c1afb0475910c57">isEmpty</a> () const 
 
74
<li>const char * <a class="el" href="classipe_1_1_string.html#a57a7cd02ec8eee40eec446e27b331e59">data</a> () const 
 
75
<li>int <a class="el" href="classipe_1_1_string.html#a025d035cd6ff7deaa9fdfa96ba39129f">size</a> () const 
 
76
<li>void <a class="el" href="classipe_1_1_string.html#adf2969eaf89907e88bbeb90e97d37b38">operator+=</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs)
 
77
<li>void <a class="el" href="classipe_1_1_string.html#ad17c4955f194bf3cc38073916a41ccd6">operator+=</a> (char ch)
 
78
<li><a class="el" href="classipe_1_1_string.html">String</a> <a class="el" href="classipe_1_1_string.html#a5d2bc42037447ee489350c56774e627c">substr</a> (int i, int len=-1) const 
 
79
<li><a class="el" href="classipe_1_1_string.html">String</a> <a class="el" href="classipe_1_1_string.html#a8b6748ce34485f3b137de02357a5b5cf">left</a> (int i) const 
 
80
<li><a class="el" href="classipe_1_1_string.html">String</a> <a class="el" href="classipe_1_1_string.html#a71db37324cbd157f031326870722a852">right</a> (int i) const 
 
81
<li>bool <a class="el" href="classipe_1_1_string.html#a407ac1c536d9ab9d6f8d768e68b40e7a">operator!=</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs) const 
 
82
<li>int <a class="el" href="classipe_1_1_string.html#ab37400fd0ed547f7c65dc29cf73643ee">find</a> (char ch) const 
 
83
<li>int <a class="el" href="classipe_1_1_string.html#adcf7cd202938ad0798ced0380d0e141d">rfind</a> (char ch) const 
 
84
<li>int <a class="el" href="classipe_1_1_string.html#aef7b09a6d79e02936427a5e39734e01e">find</a> (const char *rhs) const 
 
85
<li>void <a class="el" href="classipe_1_1_string.html#a3ce2ea55be9ec912bb2dbc88d461b479">erase</a> ()
 
86
<li>void <a class="el" href="classipe_1_1_string.html#a887c957724678e481e1dd0d8753e8d01">append</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs)
 
87
<li>void <a class="el" href="classipe_1_1_string.html#a2bbaae7f5d8733e35baabdbadc039dab">append</a> (char ch)
 
88
<li>bool <a class="el" href="classipe_1_1_string.html#ab1426554db4fc54efba8c80be7ab87c9">operator==</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs) const 
 
89
<li>bool <a class="el" href="classipe_1_1_string.html#ad17973b1a6ca7be84afdbb32ac3ed4e3">operator&lt;</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs) const 
 
90
<li><a class="el" href="classipe_1_1_string.html">String</a> <a class="el" href="classipe_1_1_string.html#ab42e009ab85d895999ee3208048df18b">operator+</a> (const <a class="el" href="classipe_1_1_string.html">String</a> &amp;rhs) const 
 
91
<li>int <a class="el" href="classipe_1_1_string.html#a5c4533ae4f17acb2735761e8ff83185d">unicode</a> (int &amp;index) const 
 
92
<li>const char * <a class="el" href="classipe_1_1_string.html#a964635e9e0c6178d63110410ec9ab7dc">z</a> () const 
 
93
</ul>
 
94
<hr/><a name="_details"></a><h2>Detailed Description</h2>
 
95
<div class="textblock"><p>Strings and buffers. </p>
 
96
<p><a class="el" href="classipe_1_1_string.html" title="Strings and buffers.">String</a> is is an implicitly shared byte string. It is designed to be efficient for strings of arbitrary length, and supposed to be passed by value (the size of <a class="el" href="classipe_1_1_string.html" title="Strings and buffers.">String</a> is a single pointer). Sharing is implicit---the string creates its own representation as soon as it is modified.</p>
 
97
<p><a class="el" href="classipe_1_1_string.html" title="Strings and buffers.">String</a> can be used for binary data. For text, it is usually assumed that the string is UTF-8 encoded, but only the unicode member function actually requires this. In particular, all indices into the string are byte indices, not Unicode character indices. </p>
 
98
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
 
99
<a class="anchor" id="a8a7ef356e05eb9b1ea1ab518baee3095"></a><!-- doxytag: member="ipe::String::String" ref="a8a7ef356e05eb9b1ea1ab518baee3095" args="()" -->
 
100
<div class="memitem">
 
101
<div class="memproto">
 
102
      <table class="memname">
 
103
        <tr>
 
104
          <td class="memname">String::String </td>
 
105
          <td>(</td>
 
106
          <td class="paramname"></td><td>)</td>
 
107
          <td></td>
 
108
        </tr>
 
109
      </table>
 
110
</div>
 
111
<div class="memdoc">
 
112
 
 
113
<p>Construct an empty string. </p>
 
114
 
 
115
</div>
 
116
</div>
 
117
<a class="anchor" id="a3fba40cf6cb11735ffddc355a5ff68f4"></a><!-- doxytag: member="ipe::String::String" ref="a3fba40cf6cb11735ffddc355a5ff68f4" args="(const char *str)" -->
 
118
<div class="memitem">
 
119
<div class="memproto">
 
120
      <table class="memname">
 
121
        <tr>
 
122
          <td class="memname">String::String </td>
 
123
          <td>(</td>
 
124
          <td class="paramtype">const char *&#160;</td>
 
125
          <td class="paramname"><em>str</em></td><td>)</td>
 
126
          <td></td>
 
127
        </tr>
 
128
      </table>
 
129
</div>
 
130
<div class="memdoc">
 
131
 
 
132
<p>Construct a string by making copy of <em>str</em>. </p>
 
133
 
 
134
</div>
 
135
</div>
 
136
<a class="anchor" id="a117f8a4ef8cd2c6b3632324b0146d7ae"></a><!-- doxytag: member="ipe::String::String" ref="a117f8a4ef8cd2c6b3632324b0146d7ae" args="(const String &amp;rhs)" -->
 
137
<div class="memitem">
 
138
<div class="memproto">
 
139
      <table class="memname">
 
140
        <tr>
 
141
          <td class="memname">String::String </td>
 
142
          <td>(</td>
 
143
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&#160;</td>
 
144
          <td class="paramname"><em>rhs</em></td><td>)</td>
 
145
          <td></td>
 
146
        </tr>
 
147
      </table>
 
148
</div>
 
149
<div class="memdoc">
 
150
 
 
151
<p>Copy constructor. This only copies the reference and takes constant time. </p>
 
152
 
 
153
</div>
 
154
</div>
 
155
<a class="anchor" id="a38b584c89d79a8b6654e8d40577695d0"></a><!-- doxytag: member="ipe::String::String" ref="a38b584c89d79a8b6654e8d40577695d0" args="(const String &amp;rhs, int index, int len)" -->
 
156
<div class="memitem">
 
157
<div class="memproto">
 
158
      <table class="memname">
 
159
        <tr>
 
160
          <td class="memname">String::String </td>
 
161
          <td>(</td>
 
162
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&#160;</td>
 
163
          <td class="paramname"><em>rhs</em>, </td>
 
164
        </tr>
 
165
        <tr>
 
166
          <td class="paramkey"></td>
 
167
          <td></td>
 
168
          <td class="paramtype">int&#160;</td>
 
169
          <td class="paramname"><em>index</em>, </td>
 
170
        </tr>
 
171
        <tr>
 
172
          <td class="paramkey"></td>
 
173
          <td></td>
 
174
          <td class="paramtype">int&#160;</td>
 
175
          <td class="paramname"><em>len</em>&#160;</td>
 
176
        </tr>
 
177
        <tr>
 
178
          <td></td>
 
179
          <td>)</td>
 
180
          <td></td><td></td>
 
181
        </tr>
 
182
      </table>
 
183
</div>
 
184
<div class="memdoc">
 
185
 
 
186
<p>Construct a substring. </p>
 
187
<p><em>index</em> must be &gt;= 0. <em>len</em> can be negative or too large to return entire string. </p>
 
188
 
 
189
</div>
 
190
</div>
 
191
<a class="anchor" id="ac40b2a3fb58c2d8556f5e6ff73510036"></a><!-- doxytag: member="ipe::String::~String" ref="ac40b2a3fb58c2d8556f5e6ff73510036" args="()" -->
 
192
<div class="memitem">
 
193
<div class="memproto">
 
194
      <table class="memname">
 
195
        <tr>
 
196
          <td class="memname">String::~String </td>
 
197
          <td>(</td>
 
198
          <td class="paramname"></td><td>)</td>
 
199
          <td></td>
 
200
        </tr>
 
201
      </table>
 
202
</div>
 
203
<div class="memdoc">
 
204
 
 
205
<p>Destruct string if reference count has reached zero. </p>
 
206
 
 
207
</div>
 
208
</div>
 
209
<hr/><h2>Member Function Documentation</h2>
 
210
<a class="anchor" id="a70b3aba8ac7a57e3bb48a52a5d64a88b"></a><!-- doxytag: member="ipe::String::operator=" ref="a70b3aba8ac7a57e3bb48a52a5d64a88b" args="(const String &amp;rhs)" -->
 
211
<div class="memitem">
 
212
<div class="memproto">
 
213
      <table class="memname">
 
214
        <tr>
 
215
          <td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> &amp; String::operator= </td>
 
216
          <td>(</td>
 
217
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&#160;</td>
 
218
          <td class="paramname"><em>rhs</em></td><td>)</td>
 
219
          <td></td>
 
220
        </tr>
 
221
      </table>
 
222
</div>
 
223
<div class="memdoc">
 
224
 
 
225
<p>Assignment takes constant time. </p>
 
226
 
 
227
</div>
 
228
</div>
 
229
<a class="anchor" id="a31bf41d9c7e2a85ade1cd9c6ba17e4f5"></a><!-- doxytag: member="ipe::String::operator[]" ref="a31bf41d9c7e2a85ade1cd9c6ba17e4f5" args="(int i) const " -->
 
230
<div class="memitem">
 
231
<div class="memproto">
 
232
      <table class="memname">
 
233
        <tr>
 
234
          <td class="memname">char ipe::String::operator[] </td>
 
235
          <td>(</td>
 
236
          <td class="paramtype">int&#160;</td>
 
237
          <td class="paramname"><em>i</em></td><td>)</td>
 
238
          <td> const<code> [inline]</code></td>
 
239
        </tr>
 
240
      </table>
 
241
</div>
 
242
<div class="memdoc">
 
243
 
 
244
<p>Return character at index i. </p>
 
245
 
 
246
</div>
 
247
</div>
 
248
<a class="anchor" id="a5a053d22050137196cca9cca1a4e9b42"></a><!-- doxytag: member="ipe::String::empty" ref="a5a053d22050137196cca9cca1a4e9b42" args="() const " -->
 
249
<div class="memitem">
 
250
<div class="memproto">
 
251
      <table class="memname">
 
252
        <tr>
 
253
          <td class="memname">bool ipe::String::empty </td>
 
254
          <td>(</td>
 
255
          <td class="paramname"></td><td>)</td>
 
256
          <td> const<code> [inline]</code></td>
 
257
        </tr>
 
258
      </table>
 
259
</div>
 
260
<div class="memdoc">
 
261
 
 
262
<p>Is the string empty? </p>
 
263
 
 
264
</div>
 
265
</div>
 
266
<a class="anchor" id="aa8ad780569e40cc86c1afb0475910c57"></a><!-- doxytag: member="ipe::String::isEmpty" ref="aa8ad780569e40cc86c1afb0475910c57" args="() const " -->
 
267
<div class="memitem">
 
268
<div class="memproto">
 
269
      <table class="memname">
 
270
        <tr>
 
271
          <td class="memname">bool ipe::String::isEmpty </td>
 
272
          <td>(</td>
 
273
          <td class="paramname"></td><td>)</td>
 
274
          <td> const<code> [inline]</code></td>
 
275
        </tr>
 
276
      </table>
 
277
</div>
 
278
<div class="memdoc">
 
279
 
 
280
<p>Is the string empty? </p>
 
281
 
 
282
</div>
 
283
</div>
 
284
<a class="anchor" id="a57a7cd02ec8eee40eec446e27b331e59"></a><!-- doxytag: member="ipe::String::data" ref="a57a7cd02ec8eee40eec446e27b331e59" args="() const " -->
 
285
<div class="memitem">
 
286
<div class="memproto">
 
287
      <table class="memname">
 
288
        <tr>
 
289
          <td class="memname">const char* ipe::String::data </td>
 
290
          <td>(</td>
 
291
          <td class="paramname"></td><td>)</td>
 
292
          <td> const<code> [inline]</code></td>
 
293
        </tr>
 
294
      </table>
 
295
</div>
 
296
<div class="memdoc">
 
297
 
 
298
<p>Return read-only pointer to the data. </p>
 
299
 
 
300
</div>
 
301
</div>
 
302
<a class="anchor" id="a025d035cd6ff7deaa9fdfa96ba39129f"></a><!-- doxytag: member="ipe::String::size" ref="a025d035cd6ff7deaa9fdfa96ba39129f" args="() const " -->
 
303
<div class="memitem">
 
304
<div class="memproto">
 
305
      <table class="memname">
 
306
        <tr>
 
307
          <td class="memname">int ipe::String::size </td>
 
308
          <td>(</td>
 
309
          <td class="paramname"></td><td>)</td>
 
310
          <td> const<code> [inline]</code></td>
 
311
        </tr>
 
312
      </table>
 
313
</div>
 
314
<div class="memdoc">
 
315
 
 
316
<p>Return number of bytes in the string. </p>
 
317
 
 
318
</div>
 
319
</div>
 
320
<a class="anchor" id="adf2969eaf89907e88bbeb90e97d37b38"></a><!-- doxytag: member="ipe::String::operator+=" ref="adf2969eaf89907e88bbeb90e97d37b38" args="(const String &amp;rhs)" -->
 
321
<div class="memitem">
 
322
<div class="memproto">
 
323
      <table class="memname">
 
324
        <tr>
 
325
          <td class="memname">void ipe::String::operator+= </td>
 
326
          <td>(</td>
 
327
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&#160;</td>
 
328
          <td class="paramname"><em>rhs</em></td><td>)</td>
 
329
          <td><code> [inline]</code></td>
 
330
        </tr>
 
331
      </table>
 
332
</div>
 
333
<div class="memdoc">
 
334
 
 
335
<p>Operator syntax for append. </p>
 
336
 
 
337
</div>
 
338
</div>
 
339
<a class="anchor" id="ad17c4955f194bf3cc38073916a41ccd6"></a><!-- doxytag: member="ipe::String::operator+=" ref="ad17c4955f194bf3cc38073916a41ccd6" args="(char ch)" -->
 
340
<div class="memitem">
 
341
<div class="memproto">
 
342
      <table class="memname">
 
343
        <tr>
 
344
          <td class="memname">void ipe::String::operator+= </td>
 
345
          <td>(</td>
 
346
          <td class="paramtype">char&#160;</td>
 
347
          <td class="paramname"><em>ch</em></td><td>)</td>
 
348
          <td><code> [inline]</code></td>
 
349
        </tr>
 
350
      </table>
 
351
</div>
 
352
<div class="memdoc">
 
353
 
 
354
<p>Operator syntax for append. </p>
 
355
 
 
356
</div>
 
357
</div>
 
358
<a class="anchor" id="a5d2bc42037447ee489350c56774e627c"></a><!-- doxytag: member="ipe::String::substr" ref="a5d2bc42037447ee489350c56774e627c" args="(int i, int len=&#45;1) const " -->
 
359
<div class="memitem">
 
360
<div class="memproto">
 
361
      <table class="memname">
 
362
        <tr>
 
363
          <td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> ipe::String::substr </td>
 
364
          <td>(</td>
 
365
          <td class="paramtype">int&#160;</td>
 
366
          <td class="paramname"><em>i</em>, </td>
 
367
        </tr>
 
368
        <tr>
 
369
          <td class="paramkey"></td>
 
370
          <td></td>
 
371
          <td class="paramtype">int&#160;</td>
 
372
          <td class="paramname"><em>len</em> = <code>-1</code>&#160;</td>
 
373
        </tr>
 
374
        <tr>
 
375
          <td></td>
 
376
          <td>)</td>
 
377
          <td></td><td> const<code> [inline]</code></td>
 
378
        </tr>
 
379
      </table>
 
380
</div>
 
381
<div class="memdoc">
 
382
 
 
383
<p>Create substring. </p>
 
384
 
 
385
</div>
 
386
</div>
 
387
<a class="anchor" id="a8b6748ce34485f3b137de02357a5b5cf"></a><!-- doxytag: member="ipe::String::left" ref="a8b6748ce34485f3b137de02357a5b5cf" args="(int i) const " -->
 
388
<div class="memitem">
 
389
<div class="memproto">
 
390
      <table class="memname">
 
391
        <tr>
 
392
          <td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> ipe::String::left </td>
 
393
          <td>(</td>
 
394
          <td class="paramtype">int&#160;</td>
 
395
          <td class="paramname"><em>i</em></td><td>)</td>
 
396
          <td> const<code> [inline]</code></td>
 
397
        </tr>
 
398
      </table>
 
399
</div>
 
400
<div class="memdoc">
 
401
 
 
402
<p>Create substring at the left. </p>
 
403
 
 
404
</div>
 
405
</div>
 
406
<a class="anchor" id="a71db37324cbd157f031326870722a852"></a><!-- doxytag: member="ipe::String::right" ref="a71db37324cbd157f031326870722a852" args="(int i) const " -->
 
407
<div class="memitem">
 
408
<div class="memproto">
 
409
      <table class="memname">
 
410
        <tr>
 
411
          <td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> String::right </td>
 
412
          <td>(</td>
 
413
          <td class="paramtype">int&#160;</td>
 
414
          <td class="paramname"><em>i</em></td><td>)</td>
 
415
          <td> const</td>
 
416
        </tr>
 
417
      </table>
 
418
</div>
 
419
<div class="memdoc">
 
420
 
 
421
<p>Create substring at the right. </p>
 
422
<p>Returns the entire string if <em>i</em> is larger than its length. </p>
 
423
 
 
424
</div>
 
425
</div>
 
426
<a class="anchor" id="a407ac1c536d9ab9d6f8d768e68b40e7a"></a><!-- doxytag: member="ipe::String::operator!=" ref="a407ac1c536d9ab9d6f8d768e68b40e7a" args="(const String &amp;rhs) const " -->
 
427
<div class="memitem">
 
428
<div class="memproto">
 
429
      <table class="memname">
 
430
        <tr>
 
431
          <td class="memname">bool ipe::String::operator!= </td>
 
432
          <td>(</td>
 
433
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&#160;</td>
 
434
          <td class="paramname"><em>rhs</em></td><td>)</td>
 
435
          <td> const<code> [inline]</code></td>
 
436
        </tr>
 
437
      </table>
 
438
</div>
 
439
<div class="memdoc">
 
440
 
 
441
<p>Operator !=. </p>
 
442
 
 
443
</div>
 
444
</div>
 
445
<a class="anchor" id="ab37400fd0ed547f7c65dc29cf73643ee"></a><!-- doxytag: member="ipe::String::find" ref="ab37400fd0ed547f7c65dc29cf73643ee" args="(char ch) const " -->
 
446
<div class="memitem">
 
447
<div class="memproto">
 
448
      <table class="memname">
 
449
        <tr>
 
450
          <td class="memname">int String::find </td>
 
451
          <td>(</td>
 
452
          <td class="paramtype">char&#160;</td>
 
453
          <td class="paramname"><em>ch</em></td><td>)</td>
 
454
          <td> const</td>
 
455
        </tr>
 
456
      </table>
 
457
</div>
 
458
<div class="memdoc">
 
459
 
 
460
<p>Return index of first occurrence of ch. </p>
 
461
<p>Return -1 if character does not appear. </p>
 
462
 
 
463
</div>
 
464
</div>
 
465
<a class="anchor" id="adcf7cd202938ad0798ced0380d0e141d"></a><!-- doxytag: member="ipe::String::rfind" ref="adcf7cd202938ad0798ced0380d0e141d" args="(char ch) const " -->
 
466
<div class="memitem">
 
467
<div class="memproto">
 
468
      <table class="memname">
 
469
        <tr>
 
470
          <td class="memname">int String::rfind </td>
 
471
          <td>(</td>
 
472
          <td class="paramtype">char&#160;</td>
 
473
          <td class="paramname"><em>ch</em></td><td>)</td>
 
474
          <td> const</td>
 
475
        </tr>
 
476
      </table>
 
477
</div>
 
478
<div class="memdoc">
 
479
 
 
480
<p>Return index of last occurrence of ch. </p>
 
481
<p>Return -1 if character does not appear. </p>
 
482
 
 
483
</div>
 
484
</div>
 
485
<a class="anchor" id="aef7b09a6d79e02936427a5e39734e01e"></a><!-- doxytag: member="ipe::String::find" ref="aef7b09a6d79e02936427a5e39734e01e" args="(const char *rhs) const " -->
 
486
<div class="memitem">
 
487
<div class="memproto">
 
488
      <table class="memname">
 
489
        <tr>
 
490
          <td class="memname">int String::find </td>
 
491
          <td>(</td>
 
492
          <td class="paramtype">const char *&#160;</td>
 
493
          <td class="paramname"><em>rhs</em></td><td>)</td>
 
494
          <td> const</td>
 
495
        </tr>
 
496
      </table>
 
497
</div>
 
498
<div class="memdoc">
 
499
 
 
500
<p>Return index of first occurrence of rhs. </p>
 
501
<p>Return -1 if not substring is not present. </p>
 
502
 
 
503
</div>
 
504
</div>
 
505
<a class="anchor" id="a3ce2ea55be9ec912bb2dbc88d461b479"></a><!-- doxytag: member="ipe::String::erase" ref="a3ce2ea55be9ec912bb2dbc88d461b479" args="()" -->
 
506
<div class="memitem">
 
507
<div class="memproto">
 
508
      <table class="memname">
 
509
        <tr>
 
510
          <td class="memname">void String::erase </td>
 
511
          <td>(</td>
 
512
          <td class="paramname"></td><td>)</td>
 
513
          <td></td>
 
514
        </tr>
 
515
      </table>
 
516
</div>
 
517
<div class="memdoc">
 
518
 
 
519
<p>Make string empty. </p>
 
520
 
 
521
</div>
 
522
</div>
 
523
<a class="anchor" id="a887c957724678e481e1dd0d8753e8d01"></a><!-- doxytag: member="ipe::String::append" ref="a887c957724678e481e1dd0d8753e8d01" args="(const String &amp;rhs)" -->
 
524
<div class="memitem">
 
525
<div class="memproto">
 
526
      <table class="memname">
 
527
        <tr>
 
528
          <td class="memname">void String::append </td>
 
529
          <td>(</td>
 
530
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&#160;</td>
 
531
          <td class="paramname"><em>rhs</em></td><td>)</td>
 
532
          <td></td>
 
533
        </tr>
 
534
      </table>
 
535
</div>
 
536
<div class="memdoc">
 
537
 
 
538
<p>Append <em>rhs</em> to this string. </p>
 
539
 
 
540
</div>
 
541
</div>
 
542
<a class="anchor" id="a2bbaae7f5d8733e35baabdbadc039dab"></a><!-- doxytag: member="ipe::String::append" ref="a2bbaae7f5d8733e35baabdbadc039dab" args="(char ch)" -->
 
543
<div class="memitem">
 
544
<div class="memproto">
 
545
      <table class="memname">
 
546
        <tr>
 
547
          <td class="memname">void String::append </td>
 
548
          <td>(</td>
 
549
          <td class="paramtype">char&#160;</td>
 
550
          <td class="paramname"><em>ch</em></td><td>)</td>
 
551
          <td></td>
 
552
        </tr>
 
553
      </table>
 
554
</div>
 
555
<div class="memdoc">
 
556
 
 
557
<p>Append <em>ch</em> to this string. </p>
 
558
 
 
559
</div>
 
560
</div>
 
561
<a class="anchor" id="ab1426554db4fc54efba8c80be7ab87c9"></a><!-- doxytag: member="ipe::String::operator==" ref="ab1426554db4fc54efba8c80be7ab87c9" args="(const String &amp;rhs) const " -->
 
562
<div class="memitem">
 
563
<div class="memproto">
 
564
      <table class="memname">
 
565
        <tr>
 
566
          <td class="memname">bool String::operator== </td>
 
567
          <td>(</td>
 
568
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&#160;</td>
 
569
          <td class="paramname"><em>rhs</em></td><td>)</td>
 
570
          <td> const</td>
 
571
        </tr>
 
572
      </table>
 
573
</div>
 
574
<div class="memdoc">
 
575
 
 
576
<p>Equality operator (bytewise comparison). </p>
 
577
 
 
578
</div>
 
579
</div>
 
580
<a class="anchor" id="ad17973b1a6ca7be84afdbb32ac3ed4e3"></a><!-- doxytag: member="ipe::String::operator&lt;" ref="ad17973b1a6ca7be84afdbb32ac3ed4e3" args="(const String &amp;rhs) const " -->
 
581
<div class="memitem">
 
582
<div class="memproto">
 
583
      <table class="memname">
 
584
        <tr>
 
585
          <td class="memname">bool String::operator&lt; </td>
 
586
          <td>(</td>
 
587
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&#160;</td>
 
588
          <td class="paramname"><em>rhs</em></td><td>)</td>
 
589
          <td> const</td>
 
590
        </tr>
 
591
      </table>
 
592
</div>
 
593
<div class="memdoc">
 
594
 
 
595
<p>Inequality operator (bytewise comparison). </p>
 
596
 
 
597
</div>
 
598
</div>
 
599
<a class="anchor" id="ab42e009ab85d895999ee3208048df18b"></a><!-- doxytag: member="ipe::String::operator+" ref="ab42e009ab85d895999ee3208048df18b" args="(const String &amp;rhs) const " -->
 
600
<div class="memitem">
 
601
<div class="memproto">
 
602
      <table class="memname">
 
603
        <tr>
 
604
          <td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> String::operator+ </td>
 
605
          <td>(</td>
 
606
          <td class="paramtype">const <a class="el" href="classipe_1_1_string.html">String</a> &amp;&#160;</td>
 
607
          <td class="paramname"><em>rhs</em></td><td>)</td>
 
608
          <td> const</td>
 
609
        </tr>
 
610
      </table>
 
611
</div>
 
612
<div class="memdoc">
 
613
 
 
614
<p>Concatenate this string with <em>rhs</em>. </p>
 
615
 
 
616
</div>
 
617
</div>
 
618
<a class="anchor" id="a5c4533ae4f17acb2735761e8ff83185d"></a><!-- doxytag: member="ipe::String::unicode" ref="a5c4533ae4f17acb2735761e8ff83185d" args="(int &amp;index) const " -->
 
619
<div class="memitem">
 
620
<div class="memproto">
 
621
      <table class="memname">
 
622
        <tr>
 
623
          <td class="memname">int String::unicode </td>
 
624
          <td>(</td>
 
625
          <td class="paramtype">int &amp;&#160;</td>
 
626
          <td class="paramname"><em>index</em></td><td>)</td>
 
627
          <td> const</td>
 
628
        </tr>
 
629
      </table>
 
630
</div>
 
631
<div class="memdoc">
 
632
 
 
633
<p>Return Unicode value from UTF-8 string. </p>
 
634
<p>The <em>index</em> is incremented to the next UTF-8 character. This returns 0xfffd if there is any problem in parsing UTF-8. </p>
 
635
 
 
636
</div>
 
637
</div>
 
638
<a class="anchor" id="a964635e9e0c6178d63110410ec9ab7dc"></a><!-- doxytag: member="ipe::String::z" ref="a964635e9e0c6178d63110410ec9ab7dc" args="() const " -->
 
639
<div class="memitem">
 
640
<div class="memproto">
 
641
      <table class="memname">
 
642
        <tr>
 
643
          <td class="memname">const char * String::z </td>
 
644
          <td>(</td>
 
645
          <td class="paramname"></td><td>)</td>
 
646
          <td> const</td>
 
647
        </tr>
 
648
      </table>
 
649
</div>
 
650
<div class="memdoc">
 
651
 
 
652
<p>Return a C style string with final zero byte. </p>
 
653
 
 
654
</div>
 
655
</div>
 
656
<hr/>The documentation for this class was generated from the following files:<ul>
 
657
<li>ipebase.h</li>
 
658
<li>ipebase.cpp</li>
 
659
</ul>
713
660
</div>
714
661
<hr>
715
662
</body></html>