Text.h

00001 //
00002 // $Id: Text.h,v 1.13 2007/03/08 19:59:21 will_mason Exp $
00003 //
00004 // vi: set ft=objc:
00005 
00006 /*
00007  * ObjectiveLib - a library of containers and algorithms for Objective-C
00008  *
00009  * Copyright (c) 2004-2007
00010  * Will Mason
00011  *
00012  * Portions:
00013  *
00014  * Copyright (c) 1994
00015  * Hewlett-Packard Company
00016  *
00017  * Copyright (c) 1996,1997
00018  * Silicon Graphics Computer Systems, Inc.
00019  *
00020  * Copyright (c) 1997
00021  * Moscow Center for SPARC Technology
00022  *
00023  * Copyright (c) 1999 
00024  * Boris Fomitchev
00025  *
00026  * This library is free software; you can redistribute it and/or
00027  * modify it under the terms of the GNU Lesser General Public
00028  * License as published by the Free Software Foundation; either
00029  * version 2.1 of the License, or (at your option) any later version.
00030  *
00031  * This library is distributed in the hope that it will be useful,
00032  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00033  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00034  * Lesser General Public License for more details.
00035  *
00036  * You should have received a copy of the GNU Lesser General Public
00037  * License along with this library; if not, write to the Free Software
00038  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00039  *
00040  * You may contact the author at will_mason@users.sourceforge.net.
00041  */
00042 
00043 #if !defined(TEXT_OL_GUARD)
00044 #define TEXT_OL_GUARD
00045 
00046 #include <ObjectiveLib/ObjectBase.h>
00047 #if defined(OL_HAVE_INTTYPES_H)
00048 #include <inttypes.h>
00049 #else
00050 #include <stdint.h>
00051 #endif
00052 
00073 typedef uint16_t olchar;
00074 
00078 struct _OLTextReference;
00079 
00100 @interface OLText :
00101 #if defined(OL_NO_OPENSTEP)
00102     Object <OLStreamable>
00103 #else
00104     NSObject <OLStreamable, NSCopying, NSCoding>
00105 #endif
00106 {
00107 @protected
00111     struct _OLTextReference* reference;
00112 }
00113 
00118 #if defined(OL_NO_OPENSTEP)
00119 + (id) initialize;
00120 #else
00121 + (void) initialize;
00122 #endif
00123 
00140 + (id) textWithBytes: (const uint8_t*)bytes count: (unsigned)num encoding: (const char*)enc;
00141 
00152 + (id) textWithCString: (const char*)chs;
00153 
00154 #if !defined(OL_NO_OPENSTEP)
00155 
00162 + (id) textWithNSString: (NSString*)str;
00163 #endif
00164 
00174 + (id) textWithText: (OLText*)text;
00175 
00179 /* @{ */
00180 
00186 - (id) init;
00187 
00202 - (id) initWithBytes: (const uint8_t*)bytes count: (unsigned)num encoding: (const char*)enc;
00203 
00212 - (id) initWithChars: (const olchar*)chs count: (unsigned)num;
00213 
00214 #if !defined(OL_NO_OPENSTEP)
00215 
00224 - (id) initWithCoder: (NSCoder*)decoder;
00225 #endif
00226 
00227 #if defined(OL_NO_OPENSTEP)
00228 - (id) initWithConstantString: (OLConstantString*)str;
00229 #endif
00230 
00239 - (id) initWithCString: (const char*)chs;
00240 
00241 #if !defined(OL_NO_OPENSTEP)
00242 - (id) initWithNSString: (NSString*)str;
00243 #endif
00244 
00254 - (id) initWithObjectInStream: (OLObjectInStream*)stream;
00255 
00263 - (id) initWithText: (OLText*)text;
00264 
00278 - (id) initWithText: (OLText*)text offset: (unsigned)roff count: (unsigned)num;
00279 
00284 #if defined(OL_NO_OPENSTEP)
00285 - (id) free;
00286 #else
00287 - (void) dealloc;
00288 #endif
00289 /* @} */
00290 
00300 - (olchar) at: (unsigned)index;
00301 
00317 - (uint8_t*) bytesWithEncoding: (const char*)enc returnedCount: (unsigned*)rc;
00318 
00328 - (int) compare: (id)other;
00329 
00330 #if defined(OL_NO_OPENSTEP)
00331 
00337 - (id) copy;
00338 #else
00339 
00347 - (id) copyWithZone: (NSZone*)zone;
00348 #endif
00349 
00357 - (const char*) cString;
00358 
00364 - (BOOL) empty;
00365 
00366 #if !defined(OL_NO_OPENSTEP)
00367 
00375 - (void) encodeWithCoder: (NSCoder*)encoder;
00376 #endif
00377 
00389 - (unsigned) findChar: (olchar)ch fromOffset: (unsigned)offset;
00390 
00403 - (unsigned) findFirstNotOf: (OLText*)text fromOffset: (unsigned)offset;
00404 
00417 - (unsigned) findFirstOf: (OLText*)text fromOffset: (unsigned)offset;
00418 
00433 - (unsigned) findLastNotOf: (OLText*)text fromOffset: (unsigned)offset;
00434 
00449 - (unsigned) findLastOf: (OLText*)text fromOffset: (unsigned)offset;
00450 
00463 - (unsigned) findText: (OLText*)text fromOffset: (unsigned)offset;
00464 
00475 - (void) getCharacters: (olchar*)buffer fromOffset: (unsigned)offset count: (unsigned)num;
00476 
00482 - (unsigned) hash;
00483 
00491 - (BOOL) isEqual: (id)object;
00492 
00498 - (unsigned) length;
00499 
00505 - (unsigned) maxSize;
00506 
00521 - (uint8_t*) nullTerminatedBytesWithEncoding: (const char*)enc;
00522 
00535 - (unsigned) rfindChar: (olchar)ch fromOffset: (unsigned)offset;
00536 
00542 - (unsigned) size;
00543 
00555 - (OLText*) substrFromOffset: (unsigned)offset count: (unsigned)num;
00556 
00557 #if !defined(OL_NO_OPENSTEP)
00558 
00564 - (NSString*) toNSString;
00565 #endif
00566 
00574 - (void) writeSelfToStream: (OLObjectOutStream*)stream;
00575 
00576 @end
00577 
00599 @interface OLTextBuffer :
00600 #if defined(OL_NO_OPENSTEP)
00601     Object
00602 #else
00603     NSObject <NSCopying>
00604 #endif
00605 {
00606 @protected
00610     olchar*     begin;
00611 
00615     unsigned    size;
00616 
00620     unsigned    capacity;
00621 }
00622 
00630 + (id) textBuffer;
00631 
00640 + (id) textBufferWithText: (OLText*)text;
00641 
00645 /* @{ */
00646 
00653 - (id) init;
00654 
00662 - (id) initWithCapacity: (unsigned)cap;
00663 
00670 - (id) initWithText: (OLText*)text;
00671 
00675 #if defined(OL_NO_OPENSTEP)
00676 - (id) free;
00677 #else
00678 - (void) dealloc;
00679 #endif
00680 /* @} */
00681 
00688 - (OLTextBuffer*) appendChar: (olchar)ch;
00689 
00700 - (OLTextBuffer*) appendChars: (const olchar*)chars fromOffset: (unsigned)offset count: (unsigned)num;
00701 
00709 - (OLTextBuffer*) appendText: (OLText*)text;
00710 
00718 - (OLTextBuffer*) appendTextBuffer: (OLTextBuffer*)buffer;
00719 
00730 - (OLTextBuffer*) assignAt: (unsigned)index character: (olchar)ch;
00731 
00741 - (olchar) at: (unsigned)index;
00742 
00748 - (unsigned) capacity;
00749 
00753 - (void) clear;
00754 
00763 - (int) compare: (id)other;
00764 
00765 #if defined(OL_NO_OPENSTEP)
00766 
00771 - (id) copy;
00772 #else
00773 
00779 - (id) copyWithZone: (NSZone*)zone;
00780 #endif
00781 
00787 - (BOOL) empty;
00788 
00799 - (OLTextBuffer*) eraseAt: (unsigned)index;
00800 
00811 - (OLTextBuffer*) eraseFromOffset: (unsigned)offset count: (unsigned)num;
00812 
00824 - (unsigned) findChar: (olchar)ch fromOffset: (unsigned)offset;
00825 
00838 - (unsigned) findFirstNotOf: (OLText*)text fromOffset: (unsigned)offset;
00839 
00852 - (unsigned) findFirstOf: (OLText*)text fromOffset: (unsigned)offset;
00853 
00868 - (unsigned) findLastNotOf: (OLText*)text fromOffset: (unsigned)offset;
00869 
00884 - (unsigned) findLastOf: (OLText*)text fromOffset: (unsigned)offset;
00885 
00898 - (unsigned) findText: (OLText*)text fromOffset: (unsigned)offset;
00899 
00910 - (void) getCharacters: (olchar*)buffer fromOffset: (unsigned)offset count: (unsigned)num;
00911 
00923 - (OLTextBuffer*) insertChar: (olchar)ch atOffset: (unsigned)offset;
00924 
00936 - (OLTextBuffer*) insertChars: (const olchar*)chars atOffset: (unsigned)offset count: (unsigned)num;
00937 
00949 - (OLTextBuffer*) insertText: (OLText*)text atOffset: (unsigned)offset;
00950 
00958 - (BOOL) isEqual: (id)object;
00959 
00966 - (unsigned) length;
00967 
00980 - (OLTextBuffer*) replaceFromOffset: (unsigned)offset count: (unsigned)num withText: (OLText*)text;
00981 
00988 - (void) reserve: (unsigned)cap;
00989 
01001 - (OLTextBuffer*) resize: (unsigned)newLength filledWith: (olchar)ch;
01002 
01008 - (OLTextBuffer*) reverse;
01009 
01022 - (unsigned) rfindChar: (olchar)ch fromOffset: (unsigned)offset;
01023 
01030 - (unsigned) size;
01031 
01044 - (OLText*) substrFromOffset: (unsigned)offset count: (unsigned)num;
01045 
01054 - (OLText*) text;
01055 
01056 @end
01057 
01058 #if defined(OL_NO_OPENSTEP)
01059 
01071 @interface OLConstantString : Object
01072 {
01076     char*       c_string;
01077 
01081     unsigned    len;
01082 }
01083 
01084 #if defined(__NEXT_RUNTIME__)
01085 
01090 + (id) class;
01091 
01096 + (void) load;
01097 #endif
01098 
01102 - (id) free;
01103 
01104 #if defined(__NEXT_RUNTIME__)
01105 
01110 - (id) class;
01111 #endif
01112 
01122 - (int) compare: (id)other;
01123 
01129 - (id) copy;
01130 
01136 - (const char*) cString;
01137 
01143 - (unsigned) hash;
01144 
01152 - (BOOL) isEqual: (id)other;
01153 
01159 - (unsigned) length;
01160 
01161 @end
01162 
01163 #if defined(__NEXT_RUNTIME__)
01164 
01167 extern struct objc_class _OLConstantStringClassReference;
01168 #endif
01169 
01170 #endif
01171 
01172 #endif

ObjectiveLibGenerated Sun Apr 22 15:17:59 2007, © 2004-2007 Will Mason
SourceForge.net Logo