source: trunk/foundation/idl/nomstring.idl@ 241

Last change on this file since 241 was 227, checked in by cinc, 19 years ago

Changed string and path classes not to return always copies but only when necessary.

File size: 6.4 KB
Line 
1/* ***** BEGIN LICENSE BLOCK *****
2* Version: CDDL 1.0/LGPL 2.1
3*
4* The contents of this file are subject to the COMMON DEVELOPMENT AND
5* DISTRIBUTION LICENSE (CDDL) Version 1.0 (the "License"); you may not use
6* this file except in compliance with the License. You may obtain a copy of
7* the License at http://www.sun.com/cddl/
8*
9* Software distributed under the License is distributed on an "AS IS" basis,
10* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11* for the specific language governing rights and limitations under the
12* License.
13*
14* The Original Code is "NOM" Netlabs Object Model
15*
16* The Initial Developer of the Original Code is
17* netlabs.org: Chris Wohlgemuth <cinc-ml@netlabs.org>.
18* Portions created by the Initial Developer are Copyright (C) 2005-2006
19* the Initial Developer. All Rights Reserved.
20*
21* Contributor(s):
22*
23* Alternatively, the contents of this file may be used under the terms of
24* the GNU Lesser General Public License Version 2.1 (the "LGPL"), in which
25* case the provisions of the LGPL are applicable instead of those above. If
26* you wish to allow use of your version of this file only under the terms of
27* the LGPL, and not to allow others to use your version of this file under
28* the terms of the CDDL, indicate your decision by deleting the provisions
29* above and replace them with the notice and other provisions required by the
30* LGPL. If you do not delete the provisions above, a recipient may use your
31* version of this file under the terms of any one of the CDDL or the LGPL.
32*
33* ***** END LICENSE BLOCK ***** */
34
35#ifndef NOMSTRING_IDL_INCLUDED
36#define NOMSTRING_IDL_INCLUDED
37
38#include "nomobj.idl"
39#include "nomfoundation.idl"
40
41NOMCLASSNAME(NOMString);
42
43/** \class NOMString
44 The NOMString class is used for strings which automatically grow or shrink.
45 Methods are provided for common tasks when dealing with strings like inserting or
46 appending strings. A string object never can be empty. It always is a string which may have a length of zero.
47
48 Note that you don't have to delete a NOMString object. This is done by the garbage collector. Deleting
49 it doesn't hurt, though.
50 */
51interface NOMString : NOMObject
52{
53 /**
54 The current version of this class is 1.0
55 */
56 NOMCLASSVERSION(1, 0);
57
58 /**
59 Assign a string to this NOMString. An initially created NOMString object is empty.
60 This method can be used to assign some value to it.
61
62 \remark
63 This method does not work on a copy. So by assigning a value to the NOMString the
64 old contents is lost. This may have sideeffects in multithreaded environments if used without care.
65
66 \sa assignCString()
67 */
68 PNOMString assign(in PNOMString nomString);
69
70 /**
71 Assign a C string to this NOMString. An initially created NOMString object is empty.
72 This method can be used to assign some value to it.
73
74 \remark
75 This method does not work on a copy. So by assigning a value to the NOMString the old contents
76 is lost. This may have sideeffects in multithreaded environments if used without care.
77
78 \sa assign()
79 */
80 PNOMString assignCString(in string chrString);
81
82 /**
83 Returns the C string holding the info inside the string object. Use with care.
84 In most cases you rather want to use copyCString() instead.
85
86 \return The C string representing the contents of the string object. This is not a copy.
87
88 \sa copyCString()
89 */
90 string queryCString();
91
92 /**
93 Add the NOMString nomString to the end of the string object.
94
95 \remark The returned string object is not newly allocated. Be aware that the string data
96 held by the object is.
97
98 \param nomString A NOMString object to be put at the end of the string.
99 \return
100 Modified NOMString object with the given string object appended. This is not a copy.
101
102 \sa appendCString(), prepend()
103 */
104 PNOMString append(in PNOMString nomString);
105
106 /**
107 Prepend the NOMString \e nomString to the given string object and return the modified
108 NOMString.
109
110 \remark The returned string object is not newly allocated. Be aware that the string data
111 held by the object is.
112
113 \param nomString A NOMString object to be put in front of the string.
114 \return
115 NOMString object with the string prepended. This is not a copy.
116
117 \sa prependCString()
118 */
119 PNOMString prepend(in PNOMString nomString);
120
121 /**
122 Append the given C string to the end of the string held by the NOMString object.
123
124 \remark The returned string object is not newly allocated. Be aware that the string data
125 held by the object is.
126
127 \param chrString A null terminated string.
128 \return
129 Modified NOMString object with the C string appended. This is not a copy.
130
131 \sa append(), prependCString()
132 */
133 PNOMString appendCString(in string chrString);
134
135 /**
136 Prepend the C string to the string object.
137
138 \remark The returned string object is not newly allocated. Be aware that the string data
139 held by the object is.
140
141 \param chrString A null terminated string.
142 \return
143 Modified NOMString object with the C string prepended. This is not a copy.
144
145 \sa appendCString(), prepend()
146 */
147 PNOMString prependCString(in string chrString);
148
149 /**
150 \return Returns the length of the string in characters.
151 */
152 unsigned long length();
153
154 /**
155 Cuts off the end of a string leaving the first ulNewLen characters.
156
157 \remark The returned string object is not newly allocated. Be aware that the string data
158 held by the object is.
159
160 \return
161 Truncated NOMString object. This is not a copy.
162 */
163 PNOMString truncate(in unsigned long ulNewLen);
164
165 /**
166 Create a copy of the NOMString object this method is called on. The caller
167 owns the new NOMString object.
168
169 \return A new NOMString object
170
171 \sa copyCString()
172 */
173 PNOMString copy();
174
175 /**
176 Returns a copy of the C string holding the info inside the string object.
177
178 \return
179 The returned C string is owned by the caller.
180
181 \sa copy()
182 */
183 string copyCString();
184
185 /**
186 Override of nomInit() to initialize the GString */
187 NOMOVERRIDE(nomInit);
188
189 /**
190 The GString holding the data
191 */
192 NOMINSTANCEVAR(PGString gString);
193};
194
195#endif /* NOMSTRING_IDL_INCLUDED */
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
Note: See TracBrowser for help on using the repository browser.