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

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

Added doxygen documentation.

File size: 5.9 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 These methods are threadsafe by always working with copies.
48
49 Note that you don't have to delete a NOMString object. This is done by the garbage collector. Deleting
50 it doesn't hurt, though.
51 */
52interface NOMString : NOMObject
53{
54 /**
55 The current version of this class is 1.0
56 */
57 NOMCLASSVERSION(1, 0);
58
59 /**
60 Assign a string to this NOMString. An initially created NOMString object is empty.
61 This method can be used to assign some value to it.
62
63 \remark
64 This method does not work on a copy. So by assigning a value to the NOMString the
65 old contents is lost. This may have sideeffects in multithreaded environments if used without care.
66
67 \sa assignCString()
68 */
69 PNOMString assign(in PNOMString nomString);
70
71 /**
72 Assign a C string to this NOMString. An initially created NOMString object is empty.
73 This method can be used to assign some value to it.
74
75 \remark
76 This method does not work on a copy. So by assigning a value to the NOMString the old contents
77 is lost. This may have sideeffects in multithreaded environments if used without care.
78
79 \sa assign()
80 */
81 PNOMString assignCString(in string chrString);
82
83 /**
84 Returns the C string holding the info inside the string object. Use with care.
85 In most cases you rather want to use copyCString() instead.
86
87 \return The C string representing the contents of the string object.
88
89 \sa copyCString()
90 */
91 string queryCString();
92
93 /**
94 Add the NOMString nomString to the end of the string object.
95
96 \param nomString A NOMString object to be put at the end of the string.
97 \return
98 The returned NOMString object is a new object which is owned by the caller.
99
100 \sa appendCString(), prepend()
101 */
102 PNOMString append(in PNOMString nomString);
103
104 /**
105 Prepend the NOMString \e nomString to the given string object and return a pointer to a
106 new string object.
107
108 \param nomString A NOMString object to be put in front of the string.
109 \return
110 The returned NOMString object is a new object which is owned by the caller.
111
112 \sa prependCString()
113 */
114 PNOMString prepend(in PNOMString nomString);
115
116 /**
117 Append the given C string to the end of the string held by the NOMString object.
118
119 \param chrString A null terminated string.
120 \return
121 The NOMString object is a new object which is owned by the caller.
122
123 \sa append(), prependCString()
124 */
125 PNOMString appendCString(in string chrString);
126
127 /**
128 Prepend the C string to the string object.
129
130 \param chrString A null terminated string.
131 \return
132 The NOMString object is a new object which is owned by the caller.
133
134 \sa appendCString(), prepend()
135 */
136 PNOMString prependCString(in string chrString);
137
138 /**
139 \return Returns the length of the string in characters.
140 */
141 unsigned long length();
142
143 /**
144 Cuts off the end of a string leaving the first ulNewLen characters.
145
146 \return
147 The returned NOMString object is a new object holding the truncated string
148 which is owned by the caller.
149 */
150 PNOMString truncate(in unsigned long ulNewLen);
151
152 /**
153 Create a copy of the NOMString object this method is called on. The caller
154 owns the new NOMString object.
155
156 \return A new NOMString object
157
158 \sa copyCString()
159 */
160 PNOMString copy();
161
162 /**
163 Returns a copy of the C string holding the info inside the string object.
164
165 \return
166 The returned C string is owned by the caller.
167
168 \sa copy()
169 */
170 string copyCString();
171
172 /**
173 Override of nomInit() to initialize the GString */
174 NOMOVERRIDE(nomInit);
175
176 /**
177 The GString holding the data
178 */
179 NOMINSTANCEVAR(PGString gString);
180};
181
182#endif /* NOMSTRING_IDL_INCLUDED */
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
Note: See TracBrowser for help on using the repository browser.