ER(PM?AppleApple_partition_map?PM@'Аdisk imageApple_HFS'А@3goonPM'№Apple_FreeH+10.0Пој Пс?ЭПоЊБWUіЩ*О\lіˆiжJј  9 9џџџџџџџџ№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќ €јјxZ9Яџџџџџ€јјx'џ,Їprinter_search.htmlЋПоЊПоЊПоЊЦПоЊЦѕcэМъ(Їupload_fonts.htmlЌПоЊПоЊПоЊЦПоЊЦѕcэ9ы$Їview_fonts.html­ПоЊПоЊПоЊЦПоЊЦѕcэ ьЈЇdelete_fonts.htmlЉЇ export.htmlЊЇprint_fontlist.htmlЋЇprinter_search.htmlЌЇupload_fonts.html­Їview_fonts.htmlЎЂ index.htmlЏЁInfoPlist.stringsАЁLocalizable.stringsБЁ MainMenu.nibБ classes.nibВПоЉўПоЉџПоЊЦПоЊЦѕcЄGёБinfo.nibГПоЉџПоЉџПоЊЦПоЊЦѕcЄђБ objects.nibДПоЉџПоЉџПоЊЦПоЊЦѕcЄD§ѓВБ classes.nibГБinfo.nibДБ objects.nibЕ0 XeroxLogo.pngЖ0XStatusEntry.nibЖ classes.nibЗПоЉџПоЉџПоЊЦПоЊЦѕcэаљЖinfo.nibИПоЉџПоЉџПоЊЦПоЊЦѕcэѓњЖ objects.nibЙПоЉџПоЉџПоЊЦПоЊЦѕcэ˜ћЗЖ classes.nibИЖinfo.nibЙЖ objects.nibКМReleaseNote_v1.0.34.docМ5014МReleaseNote_v1.0.34.docКП`.;ПоЉ(ПоЊЭПоЊЭѕcЄW8BNMSWD€К,§,ќНReleaseNote_v1.0.34.docPіО†р  r Z  ђ а Ј ’ ‚ l : цФœ†v`6ўЪЄt@аЈtV4џCocoa.frameworkCocoaПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhappHeadersПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhapq ResourcesПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhaprVersionsПоЊПоЊПоЊУПоЊУѕcAэCocoaHeaders ResourcesVersionsAПоЊПоЊПоЊУПоЊУѕcAэCurrent#ПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhapyACocoaПоЊПоЊПоЊУПоЊУѕcэ"`sHeadersПоЊПоЊПоЊУПоЊУѕcAэ Resources ПоЊПоЊПоЊУПоЊУѕcAэCocoaHeaderszьЌ š * ” Ю Ќ F . Т R 0 М – ”фШVшоЪМZ8єиhVH>'4Font Management UtilityCocoa.h(B*NSData-OBObjectCompatibility.h,:pbdevelopment.plistD@DNSCalendarDate-OFExtensions.hBDNSMutableString-OFExtensions.h 4DOFAbbreviationMatcher.h .DOFCharacterScanner.h D OFDirectory.h BDOFKnownKeyDictionaryTemplate.hDOFOid.h8DOFRunLoopQueueProcessor.h<DOFSocialSecurityFormatter.hDOFTrie.hG ‡ Я English.lprojж&оOmniNetworking.hпњ  XrxPrnQMgmt.h(InfoPlist.strings/("0Printers.plist 1ppd.h:htmlJ!U"(hdelete_fonts.html$p#} export.html%ŽHelp idx&info.nib',Їprinter_search.htmlJќрОВ„xlXBрКЎЂ–j^8, Т„j"ќШŽFєТznTHџ ($Versions(2001A)ПоЊПоЊПоЊУПоЊУѕcAэ(Current=ПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhap•)(2001A)Headers*ПоЊПоЊПоЊУПоЊУѕcAэ)OmniBase9ПоЊПоЊПоЊУПс?BѕcэmјŒ) Resources:ПоЊПоЊПоЊУПс?CѕcAэ*)Headers* assertions.h+ПоЊПоЊПоЊУПоЊУѕcЄ Л}**FrameworkDefines.h,ПоЊПоЊПоЊУПоЊУѕcЄФ~*macros.h-ПоЊПоЊПоЊУПоЊУѕcЄв* mallocmap.h.ПоЊПоЊПоЊУПоЊУѕcЄі€n`@ ќ т А „ d . ўŽn6 ьдДB2ФЈš0џB*NSData-OBObjectCompatibility.h/ПоЊПоЊПоЊУПоЊУѕcЄ::*NSException-OBExtensions.h0ПоЊПоЊПоЊУПоЊУѕcЄТ‚F* NSObject-OBObjectCompatibility.h1ПоЊПоЊПоЊУПоЊУѕcЄчƒ* OBObject.h2ПоЊПоЊПоЊУПоЊУѕcЄы„"*OBPostLoader.h3ПоЊПоЊПоЊУПоЊУѕcЄV… * OBUtilities.h4ПоЊПоЊПоЊУПоЊУѕcЄ†* OmniBase.h5ПоЊПоЊПоЊУПоЊУѕcЄєˆ*rcsid.h6ПоЊПоЊПоЊУПоЊУѕcЄК‰*system.h7ПоЊПоЊПоЊУПоЊУѕcЄ 2Š* SystemType.h8ПоЊПоЊПоЊУПоЊУѕcЄœ‹+* assertions.h,*FrameworkDefines.h-*macros.h.* mallocmap.h/*NSData-OBObjectCompatibility.h0*NSException-OBExtensions.h1* NSObject-OBObjectCompatibility.h2* OBObject.h3*OBPostLoader.h4* OBUtilities.h5* OmniBase.h6*rcsid.h7*system.h8* SystemType.h9)OmniBase:) Resources: Info.plist;ПоЊПоЊПоЊУПс?CѕcЄ“N: є Ъ Ј ˆ b 6  т  J ќ д В | R : *ювО~JџCocoa.hПоЊПоЊПоЊУПоЊУѕcЄхvCocoa.h  Resources& Info-macos.plist!ПоЊПоЊПоЊУПоЊУѕcЄw version.plist"ПоЊПоЊПоЊУПоЊУѕcЄ”x! Info-macos.plist" version.plist#Current$OmniBase.framework$Headers%ПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhapz$OmniBase&ПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhap{$ Resources'ПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhap|$Versions(ПоЊПоЊПоЊУПоЊУѕcAэ%$Headers&$OmniBase'$ ResourcesT0ю~l\NјЬš€`<џDCHeaders<DCFDictionary-OFExtensions.hEПоЊПоЊПоЊУПоЊУѕcЄР™.DCFSet-OFExtensions.hFПоЊПоЊПоЊУПоЊУѕcЄцš4DCFString-OFExtensions.hGПоЊПоЊПоЊУПоЊУѕcЄв›*DFrameworkDefines.hHПоЊПоЊПоЊУПоЊУѕcЄ<œDmd5.hIПоЊПоЊПоЊУПоЊУѕcЄ 42DNSArray-OFExtensions.hJПоЊПоЊПоЊУПоЊУѕcЄ юžHD!NSAttributedString-OFExtensions.hKПоЊПоЊПоЊУПоЊУѕcЄЈŸpJ$ ь Ь Š | ` N о О  l JрФVшоКŒd. џ @DNSCalendarDate-OFExtensions.hLПоЊПоЊПоЊУПоЊУѕcЄU 0DNSData-OFExtensions.hMПоЊПоЊПоЊУПоЊУѕcЄ ЬЁ0DNSDate-OFExtensions.hNПоЊПоЊПоЊУПоЊУѕcЄюЂBDNSDecimalNumber-OFExtensions.hOПоЊПоЊПоЊУПоЊУѕcЄ^Ѓ<DNSDictionary-OFExtensions.hPПоЊПоЊПоЊУПоЊУѕcЄ&Є:DNSException-OFExtensions.hQПоЊПоЊПоЊУПоЊУѕcЄRЅ>DNSFileManager-OFExtensions.hRПоЊПоЊПоЊУПоЊУѕcЄІ0DNSHost-OFExtensions.hSПоЊПоЊПоЊУПоЊУѕcЄWЈ<DNSInvocation-OFExtensions.hTПоЊПоЊПоЊУПоЊУѕcЄoЉ@DNSMutableArray-OFExtensions.hUПоЊПоЊПоЊУПоЊУѕcЄ;Њ>DNSMutableData-OFExtensions.hVПоЊПоЊПоЊУПоЊУѕcЄзЋJD"NSMutableDictionary-OFExtensions.hWПоЊПоЊПоЊУПоЊУѕcЄ=Ќ<DNSMutableSet-OFExtensions.hXПоЊПоЊПоЊУПоЊУѕcЄХ­Ц L  к ЄzBиœrHџ@GDCFString-OFExtensions.hHDFrameworkDefines.hIDmd5.hJDNSArray-OFExtensions.hKD!NSAttributedString-OFExtensions.hLDNSCalendarDate-OFExtensions.hMDNSData-OFExtensions.hNDNSDate-OFExtensions.hODNSDecimalNumber-OFExtensions.hPDNSDictionary-OFExtensions.hQDNSException-OFExtensions.hRDNSFileManager-OFExtensions.hSDNSHost-OFExtensions.hTDNSInvocation-OFExtensions.hUDNSMutableArray-OFExtensions.hVDNSMutableData-OFExtensions.hWD"NSMutableDictionary-OFExtensions.hXDNSMutableSet-OFExtensions.hYDNSMutableString-OFExtensions.hZD#NSNotificationCenter-OFExtensions.h[D"NSNotificationQueue-OFExtensions.h\DNSNumber-OFExtensions.h]DNSObject-OFExtensions.h^DNSProcessInfo-OFExtensions.h_DNSScanner-OFExtensions.h`DNSString-OFExtensions.haDNSString-OFPathExtensions.hbDNSThread-OFExtensions.hcDNSUndoManager-OFExtensions.hdDNSUserDefaults-OFExtensions.heDOFAbbreviationMatch.hfDOFAbbreviationMatcher.hgDOFAsynchronousDOServer.hhDOFAutoreleasedMemory.hiD OFBitField.hjD OFBTree.hkDOFBulkBlockPool.hlDOFBundledClass.hmDOFBundleRegistry.hnDOFByte.hoD OFByteOrder.hpD OFByteSet.hqD OFCacheFile.hrDOFCapitalizeFormatter.hsDOFCFCallbacks.htDOFCharacterScanner.huDOFCharacterSet.hvDOFClobberDetectionZone.hwDOFCodeFragment.hxD OFCondition.hyDOFController.hzDOFDataBuffer.h{DOFDataCursor.h|DOFDatedMutableDictionary.h}DOFDateFormatter.h~DOFDedicatedThreadScheduler.hDOFDelayedEvent.h€DOFDictionaryInitialization.hD OFDirectory.h‚D!OFDistributedNotificationCenter.hƒD OFDOServer.h„DOFDOServerDelegateProtocol.h…DOFEnrichedTextReader.h†DOFEnumNameTable.hn:ќВˆ4 О Œ B  Ш š l >  р ž l 2  Т – n B ъ И „ ` 6јЖv:юЄdмšPаz"дŒ6ь XвŒDіК~2о „N џ BDNSMutableString-OFExtensions.hYПоЊПоЊПоЊУПоЊУѕcЄ5ЎLD#NSNotificationCenter-OFExtensions.hZПоЊПоЊПоЊУПоЊУѕcЄЏJD"NSNotificationQueue-OFExtensions.h[ПоЊПоЊПоЊУПоЊУѕcЄ~А4DNSNumber-OFExtensions.h\ПоЊПоЊПоЊУПоЊУѕcЄSБ4DNSObject-OFExtensions.h]ПоЊПоЊПоЊУПоЊУѕcЄВ>DNSProcessInfo-OFExtensions.h^ПоЊПоЊПоЊУПоЊУѕcЄ]Г6DNSScanner-OFExtensions.h_ПоЊПоЊПоЊУПоЊУѕcЄД4DNSString-OFExtensions.h`ПоЊПоЊПоЊУПоЊУѕcЄ,;Е<DNSString-OFPathExtensions.haПоЊПоЊПоЊУПоЊУѕcЄїИ4DNSThread-OFExtensions.hbПоЊПоЊПоЊУПоЊУѕcЄЃЙ>DNSUndoManager-OFExtensions.hcПоЊПоЊПоЊУПоЊУѕcЄюК@DNSUserDefaults-OFExtensions.hdПоЊПоЊПоЊУПоЊУѕcЄЅЛ0DOFAbbreviationMatch.heПоЊПоЊПоЊУПоЊУѕcЄМЦœ b * ќ Ц˜h0дJ џ4DOFAbbreviationMatcher.hfПоЊПоЊПоЊУПоЊУѕcЄ 0Н6DOFAsynchronousDOServer.hgПоЊПоЊПоЊУПоЊУѕcЄxО2DOFAutoreleasedMemory.hhПоЊПоЊПоЊУПоЊУѕcЄkПD OFBitField.hiПоЊПоЊПоЊУПоЊУѕcЄеРD OFBTree.hjПоЊПоЊПоЊУПоЊУѕcЄ’С(DOFBulkBlockPool.hkПоЊПоЊПоЊУПоЊУѕcЄ4Т&DOFBundledClass.hlПоЊПоЊПоЊУПоЊУѕcЄ‰Ф*DOFBundleRegistry.hmПоЊПоЊПоЊУПоЊУѕcЄ ХDOFByte.hnПоЊПоЊПоЊФПоЊУѕcЄGЦ D OFByteOrder.hoПоЊПоЊПоЊФПоЊФѕcЄЧD OFByteSet.hpПоЊПоЊПоЊФПоЊФѕcЄ•Ш D OFCacheFile.hqПоЊПоЊПоЊФПоЊФѕcЄ Щ4DOFCapitalizeFormatter.hrПоЊПоЊПоЊФПоЊФѕcЄVЪ$DOFCFCallbacks.hsПоЊПоЊПоЊФПоЊФѕcЄ{ЫЮА ‚ h R 8 (фТА˜l< џ .DOFCharacterScanner.htПоЊПоЊПоЊФПоЊФѕcЄ&§Ь&DOFCharacterSet.huПоЊПоЊПоЊФПоЊФѕcЄ Я6DOFClobberDetectionZone.hvПоЊПоЊПоЊФПоЊФѕcЄhа&DOFCodeFragment.hwПоЊПоЊПоЊФПоЊФѕcЄіб D OFCondition.hxПоЊПоЊПоЊФПоЊФѕcЄв"DOFController.hyПоЊПоЊПоЊФПоЊФѕcЄ г"DOFDataBuffer.hzПоЊПоЊПоЊФПоЊФѕcЄ4Јд"DOFDataCursor.h{ПоЊПоЊПоЊФПоЊФѕcЄ Йи:DOFDatedMutableDictionary.h|ПоЊПоЊПоЊФПоЊФѕcЄџй(DOFDateFormatter.h}ПоЊПоЊПоЊФПоЊФѕcЄ.к>DOFDedicatedThreadScheduler.h~ПоЊПоЊПоЊФПоЊФѕcЄл&DOFDelayedEvent.hПоЊПоЊПоЊФПоЊФѕcЄЂм>DOFDictionaryInitialization.h€ПоЊПоЊПоЊФПоЊФѕcЄzнњ Т Ђ j H јмРІ†V6 џ D OFDirectory.hПоЊПоЊПоЊФПоЊФѕcЄbоHD!OFDistributedNotificationCenter.h‚ПоЊПоЊПоЊФПоЊФѕcЄVпD OFDOServer.hƒПоЊПоЊПоЊФПоЊФѕcЄ р>DOFDOServerDelegateProtocol.h„ПоЊПоЊПоЊФПоЊФѕcЄ с2DOFEnrichedTextReader.h…ПоЊПоЊПоЊФПоЊФѕcЄ;т(DOFEnumNameTable.h†ПоЊПоЊПоЊФПоЊФѕcЄПу,DOFFastMutableData.h‡ПоЊПоЊПоЊФПоЊФѕcЄAфDOFFile.hˆПоЊПоЊПоЊФПоЊФѕcЄАх(DOFForwardObject.h‰ПоЊПоЊПоЊФПоЊФѕcЄ}цD OFGeometry.hŠПоЊПоЊПоЊФПоЊФѕcЄVчDOFHeap.h‹ПоЊПоЊПоЊФПоЊФѕcЄш6DOFImplementationHolder.hŒПоЊПоЊПоЊФПоЊФѕcЄ:щ"DOFInvocation.hПоЊПоЊПоЊФПоЊФѕcЄ­ъд И ˆ x ` >.цК‚j( џ BDOFKnownKeyDictionaryTemplate.hŽПоЊПоЊПоЊФПоЊФѕcЄмы6DOFLowercaseStringCache.hПоЊПоЊПоЊФПоЊФѕcЄ-ьDOFMach.hПоЊПоЊПоЊФПоЊФѕcЄ#эD OFMatrix.h‘ПоЊПоЊПоЊФПоЊФѕcЄ”ю&DOFMessageQueue.h’ПоЊПоЊПоЊФПоЊФѕcЄ ЗяFD OFMessageQueueDelegateProtocol.h“ПоЊПоЊПоЊФПоЊФѕcЄZ№FD OFMessageQueuePriorityProtocol.h”ПоЊПоЊПоЊФПоЊФѕcЄsё<DOFMultipleNumberFormatter.h•ПоЊПоЊПоЊФПоЊФѕcЄBђ6DOFMultiValueDictionary.h–ПоЊПоЊПоЊФПоЊФѕcЄlѓ@DOFMutableKnownKeyDictionary.h—ПоЊПоЊПоЊФПоЊФѕcЄтєDOFNull.h˜ПоЊПоЊПоЊФПоЊФѕcЄ#ѕ&DOFObject-Queue.h™ПоЊПоЊПоЊФПоЊФѕcЄіD OFObject.hšПоЊПоЊПоЊФПоЊФѕcЄВї" ю о Є t>ўОžŠzJ џDOFTrie.hТПоЊПоЊПоЊФПоЊФѕcЄw "DOFTrieBucket.hУПоЊПоЊПоЊФПоЊФѕcЄ№!D OFTrieNode.hФПоЊПоЊПоЊФПоЊФѕcЄѓ"(DOFUnixDirectory.hХПоЊПоЊПоЊФПоЊФѕcЄ#D OFUnixFile.hЦПоЊПоЊПоЊФПоЊФѕcЄж$2DOFUppercaseFormatter.hЧПоЊПоЊПоЊФПоЊФѕcЄT% D OFUtilities.hШПоЊПоЊПоЊФПоЊФѕcЄ э&ND$OFWeakRetainConcreteImplementation.hЩПоЊПоЊПоЊФПоЊФѕcЄн'2DOFWeakRetainProtocol.hЪПоЊПоЊПоЊФПоЊФѕcЄТ).DOFZipCodeFormatter.hЫПоЊПоЊПоЊФПоЊФѕcЄ4*DOFZone.hЬПоЊПоЊПоЊФПоЊФѕcЄq+&DOmniFoundation.hЭПоЊПоЊПоЊФПоЊФѕcЄЂ,EDCFDictionary-OFExtensions.hFDCFSet-OFExtensions.hh ц ž ~ n F вИŒtR:џDOFOid.h›ПоЊПоЊПоЊФПоЊФѕcЄkј0DOFPendingMethodList.hœПоЊПоЊПоЊФПоЊФѕcЄ Xљ"DOFPreference.hПоЊПоЊПоЊФПоЊФѕcЄ ЂњD OFQueue.hžПоЊПоЊПоЊФПоЊФѕcЄГћ*DOFQueueProcessor.hŸПоЊПоЊПоЊФПоЊФѕcЄюќD OFRandom.h ПоЊПоЊПоЊФПоЊФѕcЄд§(DOFReadWriteLock.hЁПоЊПоЊПоЊФПоЊФѕcЄ Йў0DOFRegularExpression.hЂПоЊПоЊПоЊФПоЊФѕcЄfџ:DOFRegularExpressionMatch.hЃПоЊПоЊПоЊФПоЊФѕcЄ$D OFResource.hЄПоЊПоЊПоЊФПоЊФѕcЄj&DOFResourceFork.hЅПоЊПоЊПоЊФПоЊФѕcЄ&DOFResultHolder.hІПоЊПоЊПоЊФПоЊФѕcЄЃ.DOFRetainableObject.hЇПоЊПоЊПоЊФПоЊФѕcЄ &DOFRTFGenerator.hЈПоЊПоЊПоЊФПоЊФѕcЄ ЬЌ „ d D ,јЮЌ˜tbFџ 8DOFRunLoopQueueProcessor.hЉПоЊПоЊПоЊФПоЊФѕcЄƒ*DOFScheduledEvent.hЊПоЊПоЊПоЊФПоЊФѕcЄŒ D OFScheduler.hЋПоЊПоЊПоЊФПоЊФѕcЄ ˆ$DOFScratchFile.hЌПоЊПоЊПоЊФПоЊФѕcЄJ  D OFSignature.h­ПоЊПоЊПоЊФПоЊФѕcЄъ ,DOFSimpleLock-hppa.hЎПоЊПоЊПоЊФПоЊФѕcЄс ,DOFSimpleLock-i386.hЏПоЊПоЊПоЊФПоЊФѕcЄS *DOFSimpleLock-ppc.hАПоЊПоЊПоЊФПоЊФѕcЄ љ 4DOFSimpleLock-pthreads.hБПоЊПоЊПоЊФПоЊФѕcЄ.DOFSimpleLock-sparc.hВПоЊПоЊПоЊФПоЊФѕcЄе"DOFSimpleLock.hГПоЊПоЊПоЊФПоЊФѕcЄ88DOFSimpleStringFormatter.hДПоЊПоЊПоЊФПоЊФѕcЄЪ$DOFSlotManager.hЕПоЊПоЊПоЊФПоЊФѕcЄ „ш Ъ ˜ | T &мЖœ~d@џ <DOFSocialSecurityFormatter.hЖПоЊПоЊПоЊФПоЊФѕcЄB8DOFSoftwareUpdateChecker.hЗПоЊПоЊПоЊФПоЊФѕcЄ c$DOFSparseArray.hИПоЊПоЊПоЊФПоЊФѕcЄD OFStack.hЙПоЊПоЊПоЊФПоЊФѕcЄ є*DOFStateFormatter.hКПоЊПоЊПоЊФПоЊФѕcЄ0$DOFStaticArray.hЛПоЊПоЊПоЊФПоЊФѕcЄF&DOFStaticObject.hМПоЊПоЊПоЊФПоЊФѕcЄP(DOFStringDecoder.hНПоЊПоЊПоЊФПоЊФѕcЄњ(DOFStringScanner.hОПоЊПоЊПоЊФПоЊФѕcЄШ2DOFTelephoneFormatter.hППоЊПоЊПоЊФПоЊФѕcЄ8.DOFThreadSafeMatrix.hРПоЊПоЊПоЊФПоЊФѕcЄX0DOFTimeSpanFormatter.hСПоЊПоЊПоЊФПоЊФѕcЄU Ъ   x L *шЪІ”vDџ,:pbdevelopment.plist<ПоЊПоЊПоЊУПоЊУѕcЄ)”;: Info.plist<:pbdevelopment.plist=(Current>OmniFoundation.framework>Headers?ПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhap–">OmniFoundation@ПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhap—> ResourcesAПоЊУПоЊУПоЊУПоЊУѕcЁэslnkrhap˜>VersionsBПоЊПоЊПоЊФПоЊУѕcAэ?>Headers@>OmniFoundationA> ResourcesB>VersionsB2001ACПоЊПоЊПоЊФПоЊУѕcAэBCurrentзПоЊФПоЊФПоЊФПоЊФѕcЁэslnkrhapуCB2001ACHeaders‰DПоЊПоЊПоЊФПоЊУѕcAэ"COmniFoundationЮПоЊПоЊПоЊФПс?Bѕcэ ƒьЉ.ЉC ResourcesЯПоЊПоЊПоЊФПс?CѕcAэ Ф R6ШЌž4юР 0єВ’Z4 џI‡DOFFastMutableData.hˆDOFFile.h‰DOFForwardObject.hŠD OFGeometry.h‹DOFHeap.hŒDOFImplementationHolder.hDOFInvocation.hŽDOFKnownKeyDictionaryTemplate.hDOFLowercaseStringCache.hDOFMach.h‘D OFMatrix.h’DOFMessageQueue.h“D OFMessageQueueDelegateProtocol.h”D OFMessageQueuePriorityProtocol.h•DOFMultipleNumberFormatter.h–DOFMultiValueDictionary.h—DOFMutableKnownKeyDictionary.h˜DOFNull.h™DOFObject-Queue.hšD OFObject.h›DOFOid.hœDOFPendingMethodList.hDOFPreference.hžD OFQueue.hŸDOFQueueProcessor.h D OFRandom.hЁDOFReadWriteLock.hЂDOFRegularExpression.hЃDOFRegularExpressionMatch.hЄD OFResource.hЅDOFResourceFork.hІDOFResultHolder.hЇDOFRetainableObject.hЈDOFRTFGenerator.hЉDOFRunLoopQueueProcessor.hЊDOFScheduledEvent.hЋD OFScheduler.hЌDOFScratchFile.h­D OFSignature.hЎDOFSimpleLock-hppa.hЏDOFSimpleLock-i386.hАDOFSimpleLock-ppc.hБDOFSimpleLock-pthreads.hВDOFSimpleLock-sparc.hГDOFSimpleLock.hДDOFSimpleStringFormatter.hЕDOFSlotManager.hЖDOFSocialSecurityFormatter.hЗDOFSoftwareUpdateChecker.hИDOFSparseArray.hЙD OFStack.hКDOFStateFormatter.hЛDOFStaticArray.hМDOFStaticObject.hНDOFStringDecoder.hОDOFStringScanner.hПDOFTelephoneFormatter.hРDOFThreadSafeMatrix.hСDOFTimeSpanFormatter.hТDOFTrie.hУDOFTrieBucket.hФD OFTrieNode.hХDOFUnixDirectory.hЦD OFUnixFile.hЧDOFUppercaseFormatter.hШD OFUtilities.hЩD$OFWeakRetainConcreteImplementation.hЪDOFWeakRetainProtocol.hЫDOFZipCodeFormatter.hЬDOFZone.hЭDOmniFoundation.hЮCOmniFoundationЯC Resources"ўаž|B Њ ~ @  т И Š h , ђ Д € L  ъ Д  `  д Є ` 2јИ‚JцЖŠTоЄr@а”`:рВvV0ўмNДb0 шІX*шЦœhFџ4Font Management UtilityПоЊБПс?<Пс?<ѕѕAРFont Management Utility .DS_StoreПоЊИПс?=Пс?=Пс?3ѕc€@n.TrashesПоЊГПс?.Пс?.ПоЊГѕcBл@<Font Management Utility.appПоЉўПоЊПоЊЦПс?2ѕcAэ4ReleaseNote_v1.0.34.docНП`.;Пс>ЫПс?ЭПс?ЭѕcЄW8BNMSWD€И,*,)0HFS+ Private DataПоЊБПоЊБПоЊБПоЊБ@PWМWМHFS+ Private Data.Trashes 501МПс?.Пс?8Пс?8Пс?.ѕcAР@ .DS_StoreFont Management Utility.appContentsПоЉўПоЊПоЊЦПс?3ѕcAэContents FrameworksПоЊПоЊПоЊХПоЊУѕcAэ Info.plist,ПоЉўПоЉўПоЊХПс?ЧѕcЄDGMacOS-ПоЊПоЊПоЊХПоЊХѕcAэPkgInfo/ПоЉўПоЉўПоЊХПс?3ѕcЄ5 Resources0ПоЉўПоЊПоЊЦПс?3ѕcAэ Frameworks$Cocoa.frameworkПоЊПоЊПоЊУПоЊУѕcAэ*OmniBase.framework$ПоЊПоЊПоЊУПс?CѕcAэ6OmniFoundation.framework>ПоЊПоЊПоЊФПс?CѕcAэ6OmniNetworking.frameworkиПоЊПоЊПоЊХПс?CѕcAэ0XeroxAppKit.frameworkіПоЊПоЊПоЊХПоЊХѕcAэ,XPrnQMgmt.frameworkПоЊПоЊПоЊХПоЊХѕcAР P 8 В ( ˜  „  р n`ітnLм”p шЌ"є^юмœџжЯpbdevelopment.plistзBCurrentиOmniNetworking.frameworkиHeadersйПоЊФПоЊФПоЊФПоЊФѕcЁэslnkrhapф"иOmniNetworkingкПоЊФПоЊФПоЊФПоЊФѕcЁэslnkrhapхи ResourcesлПоЊФПоЊФПоЊФПоЊФѕcЁэslnkrhapциVersionsмПоЊПоЊПоЊХПоЊФѕcAэйиHeadersкиOmniNetworkingли ResourcesмиVersionsм2003AнПоЊПоЊПоЊХПоЊФѕcAэмCurrentѕПоЊХПоЊХПоЊХПоЊХѕcЁэslnkrhapнм2003AнHeadersоПоЊПоЊПоЊХПоЊФѕcAэ"нOmniNetworkingюПоЊПоЊПоЊХПс?Bѕcэп@їн ResourcesяПоЊПоЊПоЊХПс?CѕcAэонHeaders*оFrameworkDefines.hпПоЊПоЊПоЊФПоЊФѕcЄ<ч~ м Ш Д ” n Bи М˜xъ|`RшЦЂtTфвЖЈfFџ&оOmniNetworking.hрПоЊПоЊПоЊФПоЊФѕcЄшоONHost.hсПоЊПоЊПоЊФПоЊФѕcЄ?щ$оONHostAddress.hтПоЊПоЊПоЊФПоЊФѕcЄ зъ о ONInterface.hуПоЊПоЊПоЊФПоЊФѕcЄ ы*оONInternetSocket.hфПоЊПоЊПоЊХПоЊФѕcЄAь6оONLinkLayerHostAddress.hхПоЊПоЊПоЊХПоЊХѕcЄuю,оONMulticastSocket.hцПоЊПоЊПоЊХПоЊХѕcЄ€я$оONPortAddress.hчПоЊПоЊПоЊХПоЊХѕcЄЎ№&оONServiceEntry.hшПоЊПоЊПоЊХПоЊХѕcЄœёо ONSocket.hщПоЊПоЊПоЊХПоЊХѕcЄђ&оONSocketStream.hъПоЊПоЊПоЊХПоЊХѕcЄБѓ0оONTCPDatagramSocket.hыПоЊПоЊПоЊХПоЊХѕcЄЫє о ONTCPSocket.hьПоЊПоЊПоЊХПоЊХѕcЄ ѕ о ONUDPSocket.hэПоЊПоЊПоЊХПоЊХѕcЄЈіРІ Œ b B . №Ъšv\>.џ Я English.lprojаПоЊПоЊПоЊФПоЊФѕcAэ.ЯEnglishToISO.stringsвПоЊПоЊПоЊФПоЊФѕcЄйЯ getosuinfoгПоЊПоЊПоЊФПоЊФѕcэ;`кЯ Info.plistдПоЊПоЊПоЊФПс?CѕcЄЊо&ЯLanguage.stringsеПоЊПоЊПоЊФПоЊФѕcЄ"фп,Яpbdevelopment.plistжПоЊПоЊПоЊФПоЊФѕcЄ5таЯ English.lproj2аOmniFoundation.stringsбПоЊПоЊПоЊФПоЊФѕcЄазбаOmniFoundation.stringsвЯEnglishToISO.stringsгЯ getosuinfoдЯ Info.plistеЯLanguage.stringsl:юДvJјиФАˆџ&поFrameworkDefines.hроOmniNetworking.hсоONHost.hтоONHostAddress.hуо ONInterface.hфоONInternetSocket.hхоONLinkLayerHostAddress.hцоONMulticastSocket.hчоONPortAddress.hшоONServiceEntry.hщо ONSocket.hъоONSocketStream.hыоONTCPDatagramSocket.hьо ONTCPSocket.hэо ONUDPSocket.hюнOmniNetworkingян Resources я English.lproj№ПоЊПоЊПоЊХПоЊХѕcAэя Info.plistђПоЊПоЊПоЊХПс?CѕcЄ %"яONGetHostEntryѓПоЊПоЊПоЊХПоЊХѕcэ9P,яpbdevelopment.plistєПоЊПоЊПоЊХПоЊХѕcЄ5№я English.lproj2№OmniNetworking.stringsёПоЊПоЊПоЊХПоЊХѕcЄњё№OmniNetworking.stringsђя Info.plistѓяONGetHostEntryєяpbdevelopment.plistѕмCurrentіXeroxAppKit.frameworkіHeadersїПоЊХПоЊХПоЊХПоЊХѕcЁэslnkrhapі ResourcesјПоЊХПоЊХПоЊХПоЊХѕcЁэslnkrhapіVersionsљПоЊПоЊПоЊХПоЊХѕcAэі XeroxAppKitПоЊХПоЊХПоЊХПоЊХѕcЁэslnkrhap+їіHeadersјі ResourcesљіVersionsљAњПоЊПоЊПоЊХПоЊХѕcAэљCurrentПоЊХПоЊХПоЊХПоЊХѕcЁэslnkrhap* ž | X 8 " В   ’ V 6ўаЊl@ювОD ђЦš^,дЄl*єШ˜vDџџ Info.plistџpbdevelopment.plistњ XeroxAppKitљCurrentі XeroxAppKitXPrnQMgmt.frameworkHeadersПоЊХПоЊХПоЊХПоЊХѕcЁэslnkrhap, ResourcesПоЊХПоЊХПоЊХПоЊХѕcЁэslnkrhap-VersionsПоЊПоЊПоЊХПоЊХѕcAР XPrnQMgmt+ПоЊХПоЊХПоЊХПоЊХѕcЁэslnkrhapFHeaders ResourcesVersionsA ПоЊПоЊПоЊХПоЊХѕcAРCurrent*ПоЊХПоЊХПоЊХПоЊХѕcЁэslnkrhapE A Headers ПоЊПоЊПоЊХПоЊХѕcAР Resources ПоЊПоЊПоЊХПоЊХѕcAР XPrnQMgmt)ПоЊПоЊПоЊХПс?BѕcР`H>  Headers  xdeviceinfo.h ПоЊПоЊПоЊХПоЊХѕcэN.H4ЦT >  ш Р І ^ $ ЬВ’€ Œ~њжЖЄ4"мД”l4џ  XrxPrnQMgmt.h ПоЊПоЊПоЊХПоЊХѕcэб/  xdeviceinfo.h  XrxPrnQMgmt.h  Resources Dutch.lprojПоЊПоЊПоЊХПоЊХѕcAР  English.lprojПоЊПоЊПоЊХПоЊХѕcAР French.lprojПоЊПоЊПоЊХПоЊХѕcAР German.lprojПоЊПоЊПоЊХПоЊХѕcAР Info.plistПоЊПоЊПоЊХПоЊХѕcэe4  Italian.lprojПоЊПоЊПоЊХПоЊХѕcAР" Japanese.lprojПоЊПоЊПоЊХПоЊХѕcAР Korean.lprojПоЊПоЊПоЊХПоЊХѕcAР& Portuguese.lprojПоЊПоЊПоЊХПоЊХѕcAР  Russian.lprojПоЊПоЊПоЊХПоЊХѕcAР  Spanish.lproj!ПоЊПоЊПоЊХПоЊХѕcAР  Swedish.lproj#ПоЊПоЊПоЊХПоЊХѕcAР zh_CN.lproj%ПоЊПоЊПоЊХПоЊХѕcAР zh_TW.lproj'ПоЊПоЊПоЊХПоЊХѕcAР Dutch.lproj(InfoPlist.stringsПоЊПоЊПоЊХПоЊХѕcэ40InfoPlist.strings English.lproj(InfoPlist.stringsПоЊПоЊПоЊХПоЊХѕcэ41InfoPlist.strings French.lproj(InfoPlist.stringsПоЊПоЊПоЊХПоЊХѕcэ42InfoPlist.strings German.lproj(InfoPlist.stringsПоЊПоЊПоЊХПоЊХѕcэ43InfoPlist.strings Info.plist Italian.lproj2рЌ Š ` , р Ќ Š ^ * рjєz†Ž˜„ ”Є€T(џњљAњHeadersћПоЊПоЊПоЊХПоЊХѕcAэњ ResourcesџПоЊПоЊПоЊХПоЊХѕcAэњ XeroxAppKitПоЊПоЊПоЊХПс?BѕcэEє%ћњHeaders<ћNSOutlineView-XExtensions.hќПоЊПоЊПоЊХПоЊХѕcЄO .ћNSView-XExtensions.h§ПоЊПоЊПоЊХПоЊХѕcЄ! ћ XeroxAppKit.hўПоЊПоЊПоЊХПоЊХѕcЄп"ќћNSOutlineView-XExtensions.h§ћNSView-XExtensions.hўћ XeroxAppKit.hџњ Resourcesџ Info.plistПоЊПоЊПоЊХПоЊХѕcЄ$#,џpbdevelopment.plistПоЊПоЊПоЊХПоЊХѕcЄ0$М–‚^2јА–n8"(џ!(InfoPlist.stringsПоЊПоЊПоЊХПоЊХѕcэ45InfoPlist.strings Japanese.lproj(InfoPlist.stringsПоЊПоЊПоЊХПоЊХѕcэ46InfoPlist.strings Korean.lproj(InfoPlist.stringsПоЊПоЊПоЊХПоЊХѕcэ47InfoPlist.strings Portuguese.lproj(InfoPlist.stringsПоЊПоЊПоЊХПоЊХѕcэ48InfoPlist.strings Russian.lproj(InfoPlist.strings ПоЊПоЊПоЊХПоЊХѕcэ49 InfoPlist.strings! Spanish.lproj(!InfoPlist.strings"ПоЊПоЊПоЊХПоЊХѕcэ4:"!InfoPlist.strings# Swedish.lproj(#InfoPlist.strings$ПоЊПоЊПоЊХПоЊХѕcэ4;$#InfoPlist.strings% zh_CN.lproj(%InfoPlist.strings&ПоЊПоЊПоЊХПоЊХѕcэ4<&%InfoPlist.strings' zh_TW.lproj('InfoPlist.strings(ПоЊПоЊПоЊХПоЊХѕcэ4=('InfoPlist.strings) XPrnQMgmt*Current+ XPrnQMgmt, Info.plist-MacOS4-Font Management Utility.ПоЊПоЊПоЊХПс?3ѕcэЯЌэHэ.-Font Management UtilityŠJ к Ж – r >  є Р ž v B єРžr>№Мšh4шД’d0 џ1ppd.h6ПоЊПоЊПоЊХПоЊХѕcэ#5?21cups.h31http.h41ipp.h51md5.h61ppd.h70 delfonts.ps80 dlfont.ps90 English.lproj9Help:ПоЉџПоЉџПоЊХПоЊХѕcAР(9InfoPlist.stringsGПоЉџПоЉџПоЊХПс?DѕcэVV,9Localizable.stringsHПоЊПоЊПоЊХПс?]ѕcэ zW9 MainMenu.nibIПоЉўПоЉўПоЊХПоЊХѕcAР:9Help:graphics;ПоЉџПоЉџПоЊХПоЊХѕcAР:Help idx=ПоЉџПоЉџПоЊХПоЊХѕcэ(G":Help.helpindex>ПоЉџПоЉџПоЊХПоЊХѕcэAЊJ’rNц а О D *   ўтвbHаЊˆ єаЈŒpT6!џ:html?ПоЉџПоЉџПоЊХПоЊХѕcAР: index.htmlFПоЉџПоЉџПоЊХПоЊХѕcэщU;:graphics; fontdown.png<ПоЉџПоЉџПоЊХПоЊХѕcэTF<; fontdown.png=:Help idx>:Help.helpindex?:html(?delete_fonts.html@ПоЉџПоЉџПоЊХПоЊХѕcэ„O? export.htmlAПоЉџПоЉџПоЊХПоЊХѕcэjP,?print_fontlist.htmlBПоЉџПоЉџПоЊХПоЊХѕcэ9Q,?printer_search.htmlCПоЉџПоЉџПоЊХПоЊХѕcэчR(?upload_fonts.htmlDПоЉџПоЉџПоЊХПоЊХѕcэРS$?view_fonts.htmlEПоЉџПоЉџПоЊХПоЊХѕcэmT@?delete_fonts.htmlA? export.htmlB?print_fontlist.htmlC?printer_search.htmlD?upload_fonts.htmlE?view_fonts.htmlF: index.htmlG9InfoPlist.stringsH9Localizable.stringsI9 MainMenu.nibI classes.nibJПоЉўПоЉўПоЊХПоЊХѕcЄGXIinfo.nibKПоЉўПоЉўПоЊХПоЊХѕcЄЃYI objects.nibLПоЉўПоЉўПоЊХПс?DѕcЄD<ZD.   о І r L  ш А x P ўмЖzX>юФЌŠv(џ "0Printers.plistŒПоЊПоЊПоЊХПс?fѕcэUМ0 pt_BR.lprojПоЉўПоЊПоЊЦПоЊХѕcAэ 0 Spanish.lprojЁПоЉўПоЊПоЊЦПоЊЦѕcAэ 0 XeroxLogo.pngЕПоЊПоЊПоЊЦПс?Eѕcэбј&0XStatusEntry.nibЖПоЉџПоЉџПоЊЦПоЊЦѕcAР10cups1cups.h2ПоЊПоЊПоЊХПоЊХѕcэ-61http.h3ПоЊПоЊПоЊХПоЊХѕcэ*ч81ipp.h4ПоЊПоЊПоЊХПоЊХѕcэ.Q;1md5.h5ПоЊПоЊПоЊХПоЊХѕcэ ф>dD И Ђ    № x њ№цкЮД4 *"џJI classes.nibKIinfo.nibLI objects.nibM0fmu.icnsN0 fontlist.psO0 French.lprojOHelpPПоЉџПоЉџПоЊХПоЊХѕcAР(OInfoPlist.strings\ПоЉџПоЉџПоЊХПоЊХѕcэ-x,OLocalizable.strings]ПоЊПоЊПоЊХПоЊХѕcэ–yO MainMenu.nib^ПоЉџПоЉџПоЊХПоЊХѕcAРPOHelpPgraphicsQПоЉџПоЉџПоЊХПоЊХѕcAРPHelp idxSПоЉџПоЉџПоЊХПоЊХѕcэ8mPhtmlTПоЉџПоЉџПоЊХПоЊХѕcAРP index.html[ПоЉџПоЉџПоЊХПоЊХѕcэїwQPgraphicsQ fontdown.pngRПоЉџПоЉџПоЊХПоЊХѕcэTlRQ fontdown.pngSPHelp idxTPhtml(Tdelete_fonts.htmlUПоЉџПоЉџПоЊХПоЊХѕcэ™qT export.htmlVПоЉџПоЉџПоЊХПоЊХѕcэSr,Tprint_fontlist.htmlWПоЉџПоЉџПоЊХПоЊХѕcэѓs,Tprinter_search.htmlXПоЉџПоЉџПоЊХПоЊХѕcэt(Tupload_fonts.htmlYПоЉџПоЉџПоЊХПоЊХѕcэ\u$Tview_fonts.htmlZПоЉџПоЉџПоЊХПоЊХѕcэЮv–x V 0 євИ–lT2ЖІ6Є~\єЪЂ€X6$!џ!UTdelete_fonts.htmlVT export.htmlWTprint_fontlist.htmlXTprinter_search.htmlYTupload_fonts.htmlZTview_fonts.html[P index.html\OInfoPlist.strings]OLocalizable.strings^O MainMenu.nib^ classes.nib_ПоЉџПоЉџПоЊХПоЊХѕcЄG{^info.nib`ПоЉџПоЉџПоЊХПоЊХѕcЄж|^ objects.nibaПоЉџПоЉџПоЊХПоЊХѕcЄDš}_^ classes.nib`^info.niba^ objects.nibb0 German.lprojbHelpcПоЉџПоЉџПоЊХПоЊХѕcAР(bInfoPlist.stringspПоЉџПоЉџПоЊХПоЊХѕcэ’,bLocalizable.stringsqПоЊПоЊПоЊХПоЊХѕcэЎ“b MainMenu.nibrПоЉўПоЉўПоЊХПоЊХѕcAРcbHelpcgraphicsdПоЉџПоЉџПоЊХПоЊХѕcAРcHelp idxfПоЉџПоЉџПоЊХПоЊХѕcэ0ƒ"cHelp.helpindexgПоЉџПоЉџПоЊХПоЊХѕcэAЊ†chtmlhПоЉџПоЉџПоЊХПоЊХѕcAРc index.htmloПоЉџПоЉџПоЊХПоЊХѕcэт‘dcgraphicsd fontdown.pngeПоЉџПоЉџПоЊХПоЊХѕcэT‚ed fontdown.pngfcHelp idxgcHelp.helpindexhchtmlњрВf N ,  А ” „ њ‚\:вЈ€^6 ња˜d>кЂjB%$џpbInfoPlist.stringsqbLocalizable.stringsrb MainMenu.nibr classes.nibsПоЉўПоЉўПоЊХПоЊХѕcЄG•rinfo.nibtПоЉўПоЉўПоЊХПоЊХѕcЄж–r objects.nibuПоЉўПоЉўПоЊХПоЊХѕcЄCj—sr classes.nibtrinfo.nibur objects.nibv0 Info.plistw0 Italian.lprojwHelpxПоЉџПоЊПоЊХПоЊХѕcAР(wInfoPlist.strings…ПоЉџПоЉџПоЊХПоЊХѕcэ/Џ,wLocalizable.strings†ПоЊПоЊПоЊХПоЊХѕcэАw MainMenu.nib‡ПоЉўПоЉўПоЊХПоЊХѕcAРxwHelpxgraphicsyПоЉџПоЉџПоЊХПоЊХѕcAРxHelp idx{ПоЉџПоЉџПоЊХПоЊХѕcэ8ž"xHelp.helpindex|ПоЉџПоЉџПоЊХПоЊХѕcэQЊЂxhtml}ПоЉџПоЉџПоЊХПоЊХѕcAРx index.html„ПоЊПоЊПоЊХПоЊХѕcэ‰Ўyxgraphicsy fontdown.pngzПоЉџПоЉџПоЊХПоЊХѕcэTzy fontdown.png{xHelp idx|xHelp.helpindex}xhtml(}delete_fonts.html~ПоЉџПоЉџПоЊХПоЊХѕcэќЈю Ь В „ b 8 ў ъ ‚ fVцЬT. ЄxR*рЪКЄzB#"џ (hdelete_fonts.htmliПоЉџПоЉџПоЊХПоЊХѕcэъ‹h export.htmljПоЉџПоЉџПоЊХПоЊХѕcэыŒ,hprint_fontlist.htmlkПоЉџПоЉџПоЊХПоЊХѕcэГ,hprinter_search.htmllПоЉџПоЉџПоЊХПоЊХѕcэŽ(hupload_fonts.htmlmПоЉџПоЉџПоЊХПоЊХѕcэЊ$hview_fonts.htmlnПоЉџПоЉџПоЊХПоЊХѕcэ+ihdelete_fonts.htmljh export.htmlkhprint_fontlist.htmllhprinter_search.htmlmhupload_fonts.htmlnhview_fonts.htmloc index.html(вžf.вД’lF0&#џ} export.htmlПоЉџПоЉџПоЊХПоЊХѕcэЬЉ,}print_fontlist.html€ПоЉџПоЉџПоЊХПоЊХѕcэ”Њ,}printer_search.htmlПоЉџПоЉџПоЊХПоЊХѕcэГЋ(}upload_fonts.html‚ПоЉџПоЉџПоЊХПоЊХѕcэgЌ$}view_fonts.htmlƒПоЉџПоЉџПоЊХПоЊХѕcэj­~}delete_fonts.html} export.html€}print_fontlist.html}printer_search.html‚}upload_fonts.htmlƒ}view_fonts.html„x index.html…wInfoPlist.strings†wLocalizable.strings‡w MainMenu.nib‡ classes.nibˆПоЉўПоЉўПоЊХПоЊХѕcЄGВ‡info.nib‰ПоЉўПоЉўПоЊХПоЊХѕcЄŒГ‡ objects.nibŠПоЉўПоЉўПоЊХПоЊХѕcЄDPДˆ‡ classes.nib‰‡info.nibЇ objects.nib‹0 pfonts.psŒ0Printers.plist0 pt_BR.lprojHelpŽПоЊПоЊПоЊЦПоЊХѕcAР(InfoPlist.strings›ПоЉџПоЉџПоЊЦПоЊЦѕcэLг,Localizable.stringsœПоЊПоЊПоЊЦПоЊЦѕcэ д MainMenu.nibПоЉўПоЉўПоЊЦПоЊЦѕcAРŽHelpŽgraphicsПоЊПоЊПоЊХПоЊХѕcAРvьt N , Ф œ n J " и ТВœr:рА|D фА’pJ$'%џŽHelp idx‘ПоЊПоЊПоЊХПоЊХѕcэ8У"ŽHelp.helpindex’ПоЊПоЊПоЊХПоЊХѕcэIЊЧŽhtml“ПоЊПоЊПоЊЦПоЊХѕcAРŽ index.htmlšПоЊПоЊПоЊЦПоЊЦѕcэПвŽgraphics fontdown.pngПоЊПоЊПоЊХПоЊХѕcэTТ fontdown.png‘ŽHelp idx’ŽHelp.helpindex“Žhtml(“delete_fonts.html”ПоЊПоЊПоЊЦПоЊХѕcэFЬ“ export.html•ПоЊПоЊПоЊЦПоЊЦѕcэЭ,“print_fontlist.html–ПоЊПоЊПоЊЦПоЊЦѕcэЂЮ,“printer_search.html—ПоЊПоЊПоЊЦПоЊЦѕcэЙЯ(“upload_fonts.html˜ПоЊПоЊПоЊЦПоЊЦѕcэа$“view_fonts.html™ПоЊПоЊПоЊЦПоЊЦѕcэ:б”“delete_fonts.html•“ export.html–“print_fontlist.html—“printer_search.html˜“upload_fonts.html™“view_fonts.htmlšŽ index.html›InfoPlist.stringsœLocalizable.strings MainMenu.nib classes.nibžПоЉўПоЉўПоЊЦПоЊЦѕcЄGжJ4 в ž x H  м Є | H * тМІ„j<№иЖЂ:&џinfo.nibŸПоЉўПоЉўПоЊЦПоЊЦѕcЄз objects.nib ПоЉўПоЉўПоЊЦПоЊЦѕcЄDАиž classes.nibŸinfo.nib  objects.nibЁ0 Spanish.lprojЁHelpЂПоЊПоЊПоЊЦПоЊЦѕcAР(ЁInfoPlist.stringsЏПоЉџПоЉџПоЊЦПоЊЦѕcэ\ю,ЁLocalizable.stringsАПоЊПоЊПоЊЦПоЊЦѕcэ2яЁ MainMenu.nibБПоЉўПоЉџПоЊЦПоЊЦѕcAРЂЁHelpЂgraphicsЃПоЊПоЊПоЊЦПоЊЦѕcAРЂHelp idxЅПоЊПоЊПоЊЦПоЊЦѕcэ0о"ЂHelp.helpindexІПоЊПоЊПоЊЦПоЊЦѕcэYЊсЂhtmlЇПоЊПоЊПоЊЦПоЊЦѕcAРЂ index.htmlЎПоЊПоЊПоЊЦПоЊЦѕcэоэЃЂgraphicsЃ fontdown.pngЄПоЊПоЊПоЊЦПоЊЦѕcэTнЄЃ fontdown.pngЅЂHelp idxІЂHelp.helpindexЇЂhtml(Їdelete_fonts.htmlЈПоЊПоЊПоЊЦПоЊЦѕcэчЇ export.htmlЉПоЊПоЊПоЊЦПоЊЦѕcэрш,Їprint_fontlist.htmlЊПоЊПоЊПоЊЦПоЊЦѕcэПщX2  њ р В  f N , А”„њ‚\:вІ~\4 џ /PkgInfo0 Resources0cups1ПоЊПоЊПоЊХПоЊХѕcAР0 delfonts.ps7ПоЉџПоЉџПоЊХПоЊХѕcэ$`B0 dlfont.ps8ПоЉџПоЉџПоЊХПоЊХѕcэ ŒE 0 English.lproj9ПоЉўПоЊПоЊХПс?DѕcAэ0fmu.icnsMПоЊПоЊПоЊХПс?ЧѕcэН _ 0 fontlist.psNПоЉџПоЉџПоЊХПс?iѕcэ—k0 French.lprojOПоЉўПоЊПоЊХПоЊХѕcAэ0 German.lprojbПоЉўПоЊПоЊХПоЊХѕcAэ0 Info.plistvПоЊПоЊПоЊХПоЊХѕcэDœ 0 Italian.lprojwПоЉўПоЊПоЊХПоЊХѕcAэ0 pfonts.ps‹ПоЊПоЊПоЊХПоЊХѕcэ$јЙ †rњ‚l\таКR.Bud1 ob•Ѓ.fwi0blob•ЃЊicnv.fwswlongЫ.fwvhshor.icgoblobFont Management Utility.appIlocblobZ!џџџџџџReleaseNote_v1.0.34.docIlocblob!џџџџџџ  @€ @€ @€ @ E DSDB `€ @€ @€ @Versions/Current/CocoaVersions/Current/HeadersVersions/Current/ResourcesўэњЮXЕŒ__TEXT“b __text__TEXT“b.tаt€__picsymbol_stub__TEXT“b/DD€$__picsymbolstub1__TEXT“b/``€ __cstring__TEXT“b/`„`__literal8__TEXT“b/шшH__DATAЃb __data__DATAЃb __dyld__DATAЃb __nl_symbol_ptr__DATAЃb  __la_symbol_ptr__DATAЃb 8__LINKEDIT“b0` ` TCИљŸ /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa XC.lq6-/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit \C.lq./System/Library/Frameworks/CoreData.framework/Versions/A/CoreData `C.lq6,/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation 4C.jaX/usr/lib/libSystem.B.dylib AppKit CoreData  !P P „ ”!0 €  |ІBŸ}ˆІ|І}€cx=ŒŒёˆ}‰І| x=ŒŒё„N€ }‹cxKџџЬ|ІBŸ}hІ|І=kkёT}iІN€ |І“сџќ”!џ BŸшІ<8c€88KџџН8/ŒAž<€cё,}‰ІN€!8!`€|ІƒсџќN€ |ІBŸ}ˆІ=Œ|І9Œџ€}‰ІN€ __dyld_call_module_initializers_for_dylib@(#)PROGRAM:Cocoa PROJECT:Cocoa-11 DEVELOPER:root BUILT:Mar 20 2005 19:06:33 @&“b рр“b @NЃb sЃb ‰Ѓb Ђ“b.ЬК“b.ЌЭ“b.Єх“b.tў“b “b/ш“b/€ ,5B _CocoaVersionNumber_CocoaVersionStringdylib1.oCocoa_vers.olink editordyld_lazy_symbol_binding_entry_pointdyld__mh_dylib_headerdyld_func_lookup_pointer___initialize_Cplusplus__dyld_func_lookupcfm_stub_binding_helperdyld_stub_binding_helper__mh_dylib_header/* Cocoa.h Cocoa Framework Copyright (c) 2000-2004, Apple Computer, Inc. All rights reserved. This file should be included by all Cocoa application source files for easy building. Using this file is preferred over importing individual files because it will use a precompiled version. Tools with no UI and no AppKit dependencies may prefer to include just . */ #import #import #import CFBundleIdentifier com.apple.Cocoa CFBundleName Cocoa CFBundleShortVersionString 6.4 NOTE Please, do NOT change this file -- It was generated by ProjectBuilder. NSExecutable Cocoa BuildVersion 706 CFBundleShortVersionString 6.4 ProjectName Cocoa SourceVersion 110000 AVersions/Current/HeadersVersions/Current/OmniBaseVersions/Current/Resources// Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/assertions.h,v 1.26 2003/07/09 17:20:13 bungi Exp $ #ifndef _OmniBase_assertions_h_ #define _OmniBase_assertions_h_ #import #import #if defined(DEBUG) || defined(OMNI_FORCE_ASSERTIONS) #define OMNI_ASSERTIONS_ON #endif // This allows you to turn off assertions when debugging #if defined(OMNI_FORCE_ASSERTIONS_OFF) #undef OMNI_ASSERTIONS_ON #warning Forcing assertions off! #endif // Make sure that we don't accidentally use the ASSERT macro instead of OBASSERT #ifdef ASSERT #undef ASSERT #endif typedef void (*OBAssertionFailureHandler)(const char *type, const char *expression, const char *file, unsigned int lineNumber); #if defined(OMNI_ASSERTIONS_ON) OmniBase_EXTERN void OBSetAssertionFailureHandler(OBAssertionFailureHandler handler); OmniBase_EXTERN void OBAssertFailed(const char *type, const char *expression, const char *file, unsigned int lineNumber); #define OBPRECONDITION(expression) \ do { \ if (!(expression)) \ OBAssertFailed("PRECONDITION", #expression, __FILE__, __LINE__); \ } while (NO) #define OBPOSTCONDITION(expression) \ do { \ if (!(expression)) \ OBAssertFailed("POSTCONDITION", #expression, __FILE__, __LINE__); \ } while (NO) #define OBINVARIANT(expression) \ do { \ if (!(expression)) \ OBAssertFailed("INVARIANT", #expression, __FILE__, __LINE__); \ } while (NO) #define OBASSERT(expression) \ do { \ if (!(expression)) \ OBAssertFailed("ASSERT", #expression, __FILE__, __LINE__); \ } while (NO) #define OBASSERT_NOT_REACHED(reason) \ do { \ OBAssertFailed("NOTREACHED", #reason, __FILE__, __LINE__); \ } while (NO) #else // else insert blank lines into the code #define OBPRECONDITION(expression) #define OBPOSTCONDITION(expression) #define OBINVARIANT(expression) #define OBASSERT(expression) #define OBASSERT_NOT_REACHED(reason) #endif #endif // _OmniBase_assertions_h_ // Copyright 1997-2000 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // DO NOT MODIFY THIS FILE -- IT IS AUTOGENERATED! // // Platform specific defines for marking data and code // as 'extern'. // #ifndef _OmniBaseDEFINES_H #define _OmniBaseDEFINES_H // // OpenStep/Mach or Rhapsody // #if defined(__MACH__) #ifdef __cplusplus #define OmniBase_EXTERN extern #define OmniBase_PRIVATE_EXTERN __private_extern__ #else #define OmniBase_EXTERN extern #define OmniBase_PRIVATE_EXTERN __private_extern__ #endif // // OpenStep/NT, YellowBox/NT, and YellowBox/95 // #elif defined(WIN32) #ifndef _NSBUILDING_OmniBase_DLL #define _OmniBase_WINDOWS_DLL_GOOP __declspec(dllimport) #else #define _OmniBase_WINDOWS_DLL_GOOP __declspec(dllexport) #endif #ifdef __cplusplus #define OmniBase_EXTERN _OmniBase_WINDOWS_DLL_GOOP extern #define OmniBase_PRIVATE_EXTERN extern #else #define OmniBase_EXTERN _OmniBase_WINDOWS_DLL_GOOP extern #define OmniBase_PRIVATE_EXTERN extern #endif // // Standard UNIX: PDO/Solaris, PDO/HP-UX, GNUstep // #elif defined(sun) || defined(hpux) || defined(GNUSTEP) #ifdef __cplusplus # define OmniBase_EXTERN extern # define OmniBase_PRIVATE_EXTERN extern #else # define OmniBase_EXTERN extern # define OmniBase_PRIVATE_EXTERN extern #endif #else #error Do not know how to define extern on this platform #endif #endif // _OmniBaseDEFINES_H // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/macros.h,v 1.22 2003/07/08 15:53:01 bungi Exp $ #import #import #if !defined(SWAP) #define SWAP(A, B) do { __typeof__(A) __temp = (A); (A) = (B); (B) = __temp;} while(0) #endif // On Solaris, when _TS_ERRNO is defined defines errno as the thread-safe ___errno() function. // On NT, errno is defined to be '(*_errno())' and presumably this function is also thread safe. // On MacOS X, errno is defined to be '(*__error())', which is also presumably thread safe. #import #define OMNI_ERRNO() errno // It might be good to put some exception handling in this. #define OMNI_POOL_START \ do { \ NSAutoreleasePool *__pool; \ __pool = [[NSAutoreleasePool alloc] init]; \ { #define OMNI_POOL_END \ } \ [__pool release]; \ } while(0) // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/mallocmap.h,v 1.11 2003/01/15 22:51:48 kc Exp $ #import // We should NEVER use the BSD malloc functions since they don't // report zone allocation statistics. Typically, this is verified // by OmniMake, but for third-party libraries that we don't want to // make extensive source changes to, we can import this file. #define malloc(size) NSZoneMalloc(NULL, size) #define calloc(numElems, elemSize) NSZoneCalloc(NULL, numElems, elemSize) #define realloc(oldPointer, newSize) NSZoneRealloc(NULL, oldPointer, newSize) #define free(pointer) NSZoneFree(NULL, pointer) // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/NSData-OBObjectCompatibility.h,v 1.10 2003/01/15 22:51:46 kc Exp $ #import @interface NSData (OBObjectCompatibility) - (NSString *)shortDescription; @end // Copyright 2001-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/NSException-OBExtensions.h,v 1.5 2003/05/07 19:55:02 wiml Exp $ #import @interface NSException (OBExtensions) + (void)raise:(NSString *)exceptionName posixErrorNumber:(int)posixErrorNumber format:(NSString *)format, ...; + (NSException *)exceptionWithName:(NSString *)exceptionName posixErrorNumber:(int)posixErrorNumber format:(NSString *)format, ...; - (int)posixErrorNumber; @end #import OmniBase_EXTERN NSString *OBExceptionPosixErrorNumberKey; OmniBase_EXTERN NSString *OBExceptionCarbonErrorNumberKey; // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/NSObject-OBObjectCompatibility.h,v 1.10 2003/01/15 22:51:47 kc Exp $ #import @class NSMutableDictionary; @interface NSObject (OBObjectCompatibility) - (NSMutableDictionary *)debugDictionary; // See also: - debugDictionary (OBObject) - (NSString *)shortDescription; // See also: - shortDescription (OBObject) @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/OBObject.h,v 1.26 2003/07/08 15:53:00 bungi Exp $ /* $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/OBObject.h,v 1.26 2003/07/08 15:53:00 bungi Exp $ */ /* $Id: OBObject.h,v 1.26 2003/07/08 15:53:00 bungi Exp $ */ #ifndef _OmniBase_OBObject_h_ #define _OmniBase_OBObject_h_ #import // OBObject.h // @interface OBObject : NSObject // Creation and destruction #if defined(DEBUG_INITIALIZE) || defined(DEBUG_ALLOC) + allocWithZone:(NSZone *)zone; #endif - (void)dealloc; @end @class NSDictionary; @class NSMutableDictionary; @interface OBObject (Debug) // Debugging methods - (NSMutableDictionary *)debugDictionary; - (NSString *)descriptionWithLocale:(NSDictionary *)locale indent:(unsigned)level; - (NSString *)description; - (NSString *)shortDescription; @end #import // OmniBase Functions /*" This method returns the original description for anObject, as implemented on NSObject. This allows you to get the original description even if the normal description methods have been overridden. See also: - description (NSObject), - description (OBObject), - shortDescription (OBObject) "*/ OmniBase_EXTERN NSString *OBShortObjectDescription(id anObject); // OmniBase Symbols #import // Defines OBOperatingSystem{Major,Minor}Version #endif // _OmniBase_OBObject_h_ // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/OBPostLoader.h,v 1.17 2003/01/15 22:51:47 kc Exp $ #import @interface OBPostLoader : OBObject + (void)processClasses; + (void) processSelector: (SEL) selectorToCall initialize: (BOOL) shouldInitialize; + (BOOL) isMultiThreaded; @end @interface NSObject (OBPostLoader) /*" This method will be called on every class (or category) which implements it. "*/ + (void) performPosing; /*" This method will be called on every class (or category) which implements it. "*/ + (void) didLoad; /*" This is called on each class implementation with this selector name the first time the application is about to become multi-threaded. Classes can implement this method to allocate locks that will be necessary to arbitrate access to shared data owned by the class. This method is NOT automatically called on instances -- they will need to manually subscribe to NSWillBecomeMultiThreadedNotification. "*/ + (void) becomingMultiThreaded; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/OBUtilities.h,v 1.33 2003/07/17 20:10:29 kc Exp $ #import #import #import #import #import OmniBase_EXTERN void OBRequestConcreteImplementation(id self, SEL _cmd); OmniBase_EXTERN void OBRejectUnusedImplementation(id self, SEL _cmd); OmniBase_EXTERN NSString *OBAbstractImplementation; OmniBase_EXTERN NSString *OBUnusedImplementation; OmniBase_EXTERN IMP OBRegisterInstanceMethodWithSelector(Class aClass, SEL oldSelector, SEL newSelector); /*.doc. Provides the same functionality as +[NSObject registerInstanceMethod:withMethodTypes:forSelector: but does it without provoking +initialize on the target class. Returns the original implementation. */ OmniBase_EXTERN IMP OBReplaceMethodImplementation(Class aClass, SEL oldSelector, IMP newImp); /*.doc. Replaces the given method implementation in place. Returns the old implementation. */ OmniBase_EXTERN IMP OBReplaceMethodImplementationWithSelector(Class aClass, SEL oldSelector, SEL newSelector); /*.doc. Calls the above, but determines newImp by looking up the instance method for newSelector. Returns the old implementation. */ OmniBase_EXTERN IMP OBReplaceMethodImplementationWithSelectorOnClass(Class destClass, SEL oldSelector, Class sourceClass, SEL newSelector); /*.doc. Calls OBReplaceMethodImplementation. Derives newImp from newSelector on sourceClass and changes method implementation for oldSelector on destClass. */ // This returns YES if the given pointer is a class object static inline BOOL OBPointerIsClass(id object) { if (object) return CLS_GETINFO((struct objc_class *)(object->isa), CLS_META); return NO; } // This returns the class object for the given pointer. For an instance, that means getting the class. But for a class object, that means returning the pointer itself static inline Class OBClassForPointer(id object) { if (!object) return object; if (OBPointerIsClass(object)) return object; else return object->isa; } static inline BOOL OBClassIsSubclassOfClass(Class subClass, Class superClass) { while (subClass) { if (subClass == superClass) return YES; else subClass = subClass->super_class; } return NO; } // This macro ensures that we call [super initialize] in our +initialize (since this behavior is necessary for some classes in Cocoa), but it keeps custom class initialization from executing more than once. #define OBINITIALIZE \ do { \ static BOOL hasBeenInitialized = NO; \ [super initialize]; \ if (hasBeenInitialized) \ return; \ hasBeenInitialized = YES;\ } while (0); #ifdef USING_BUGGY_CPP_PRECOMP // Versions of cpp-precomp released before April 2002 have a bug that makes us have to do this #define NSSTRINGIFY(name) @ ## '"' ## name ## '"' #elif defined(__GNUC__) #if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 3) // GCC before 3.3 requires this format #define NSSTRINGIFY(name) @ ## #name #else // GCC 3.3 requires this format #define NSSTRINGIFY(name) @#name #endif #endif // An easy way to define string constants. For example, "NSSTRINGIFY(foo)" produces @"foo" and "DEFINE_NSSTRING(foo);" produces: NSString *foo = @"foo"; #define DEFINE_NSSTRING(name) \ NSString *name = NSSTRINGIFY(name) // Emits a warning indicating that an obsolete method has been called. #define OB_WARN_OBSOLETE_METHOD do { static BOOL warned = NO; if (!warned) { warned = YES; NSLog(@"Warning: obsolete method %c[%@ %s] invoked", OBPointerIsClass(self)?'+':'-', OBClassForPointer(self), _cmd); } } while(0) // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/OmniBase.h,v 1.16 2003/01/15 22:51:47 kc Exp $ #import #import #import #import #import #import #import #import #import // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/rcsid.h,v 1.13 2003/01/15 22:51:48 kc Exp $ // // Define a wrapper macro for rcs_id generation that doesn't produce warnings on any platform. The old hack of rcs_id = (rcs_id, string) is no longer warning free. #define RCS_ID(rcsIdString) \ static const void *rcs_id = rcsIdString; \ static const void *__rcs_id_hack() { __rcs_id_hack(); return rcs_id; } #define NAMED_RCS_ID(name, rcsIdString) \ static const void *rcs_id_ ## name = rcsIdString; \ static const void *__rcs_id_ ## name ## _hack() { __rcs_id_ ## name ## _hack(); return rcs_id_ ## name; } // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/system.h,v 1.35 2003/07/08 15:53:01 bungi Exp $ // // This file contains stuff that isn't necessarily portable between operating systems. #import // For OBOperatingSystemMajorVersion #if defined(__APPLE__) && defined(__MACH__) // // Mac OS X // #import #import #import #import #import #import #import #import #import #import #import #import #import #if (OBOperatingSystemMajorVersion == 10) && !defined(MAC_OS_X_VERSION_MAX_ALLOWED) // On pre-Jaguar systems (identified using the above #if condition), defines true and false, but so does . We'd like 's definition, since it actually typedefs the enum as 'bool', but unfortunately that would break the Foundation precompiled header (which prebuilds ), so we'll use Carbon's version instead. Unfortunately, this means the 'bool' type won't actually be declared, since Carbon's true/false enum isn't named. C'est la vie! #import // defines true and false #define bool bool // So won't try to define the 'bool' type (with true and false) // OK, now it's safe to #import . #endif #import // For MIN(), etc. #import #import // For floor(), etc. #import #else // // Unknown system // #error Unknown system! #endif // Default to using BSD socket API. #ifndef OBSocketRead #define OBSocketRead(socketFD, buffer, byteCount) read(socketFD, buffer, byteCount) #endif #ifndef OBSocketWrite #define OBSocketWrite(socketFD, buffer, byteCount) write(socketFD, buffer, byteCount) #endif #ifndef OBSocketWriteVectors #define OBSocketWriteVectors(socketFD, buffers, bufferCount) writev(socketFD, buffers, bufferCount) #endif #ifndef OBSocketClose #define OBSocketClose(socketFD) close(socketFD) #endif // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniBase/SystemType.h,v 1.16 2003/07/08 15:53:01 bungi Exp $ // We only support Mac OS X currently but we'll keep the macros defined here. #import #define OBOperatingSystemMajorVersion KERNEL_MAJOR_VERSION #define OBOperatingSystemMinorVersion KERNEL_MINOR_VERSION ўэњЮ 8…H__TEXT00__text__TEXT ьш ь€__picsymbol_stub__TEXT!д!д€$__cstring__TEXT!д Œ!д__picsymbolstub1__TEXT,` ,`€ Œ__DATA00__data__DATA0T0__dyld__DATA0T0T__la_symbol_ptr__DATA0\t0\__nl_symbol_ptr__DATA0а0а:__bss__DATA0ф М__OBJC@@__cat_cls_meth__OBJC@@@__cat_inst_meth__OBJC@@€@@__string_object__OBJC@Р@Р__cstring_object__OBJC@Р„@Р__message_refs__OBJCADЄAD__sel_fixup__OBJCAшAш__cls_refs__OBJCAш0Aш__class__OBJCBB__meta_class__OBJCBЈBЈ__cls_meth__OBJCC8lC8__inst_meth__OBJCCЄCЄ__protocol__OBJCCИCИ__category__OBJCCИdCИ__class_vars__OBJCDD__instance_vars__OBJCDD__module_info__OBJCDpD__symbols__OBJCDŒhDŒ8__LINKEDITPјPј dCИљž@executable_path/../Frameworks/OmniBase.framework/Versions/2001A/OmniBase `?O[Ю,/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation 4?2›C?/usr/lib/libSystem.B.dylibW@~a< М P88O/_8_№`$F^<?]ф Pш](/|ІBŸ}ˆІ|І}€cx=ŒŒ"`}‰І| x=ŒŒ" N€ }‹cxKџџЬ|ІBŸ}hІ|І=kk",}iІN€ |І“сџќ”!џ BŸшІ<8c|8@KџџН@, AЂ<€c"x}‰ІN€!€h8!`|ІƒсџќN€ |ІBŸ“сџќшІ”!џАKџџщ€X<8!P€c!`|ІƒсџќN€ |ІПЁџє<Œ”!џА}Ÿcx€„2pHq<Ÿ|~x€„2tHa<_€Ђ!4ƒ(@@8<ŸУѓx€„2xHA€X<Ÿ<П8!P€„2||І8Ѕ1ьЛЁџєH€X8!PУѓxЛЁџє|ІN€ |ІBŸ“сџќшІ”!џАKџџщ€X<8!P€c Є|ІƒсџќN€ |ІПџ№<Œ”!џА||xl”!џ€<Œ|ux€„-8€s}Ÿcx|Ж+x|з3xHе>Ÿ:”-<8`8€Ha;˜@;`@М„|~xcлxWФ:H!Фѓx|{xH5ž@Aœџр/›AžX;@š№@@œL~™Ѓx|лxƒМЃыxHХ€™Іыx~ЃЋx~ХГx~чЛxHM/ƒAž;;Z;œš№@AœџФcлxHi/˜@žџX€ˆ<Ÿ€s8!€€„-@|ІКAџШH<Œ€„,HєEGIctƒЗGUa=Wnqrx3LSn‹“–wЌ@РiP@ЬiP@иiP@фiP@№iPA iPAiPAiP@ќiPA8iPA,iPz^s{bev}jkohrag`tfwn|y]puxmq_z^s{bev}jkohrag`tfwn|y]puxmq_€ld\c9L:=@<?B>8DCMNEFGHIJA;Kќ8F8 Dp98PQiz:TW=<>;?^s{@OUXZ\]`abcdefghjklnortvwy|}BCA[puxDEFGHIJKS_mqLMNRVY_NSDataShortDescriptionLength.objc_category_name_NSData_OBObjectCompatibility.objc_category_name_NSObject_OBObjectCompatibility_OBShortObjectDescription.objc_class_name_OBObject.objc_category_name_OBObject_Debug_MaxDebugDepth.objc_class_name_OBPostLoader.objc_category_name_OBPostLoader_PrivateAPI_OBSetAssertionFailureHandler.objc_class_name__OBAssertionWarning_OBAssertFailed_OBAbstractImplementation_OBRegisterInstanceMethodWithSelector_OBRejectUnusedImplementation_OBReplaceMethodImplementation_OBReplaceMethodImplementationWithSelector_OBReplaceMethodImplementationWithSelectorOnClass_OBRequestConcreteImplementation_OBUnusedImplementation.objc_category_name_NSException_OBExtensions_OBExceptionCarbonErrorNumberKey_OBExceptionPosixErrorNumberKey.objc_class_name_NSAutoreleasePool.objc_class_name_NSConstantString.objc_class_name_NSData.objc_class_name_NSDictionary.objc_class_name_NSException.objc_class_name_NSMutableDictionary.objc_class_name_NSNotificationCenter.objc_class_name_NSNumber.objc_class_name_NSObject.objc_class_name_NSRecursiveLock.objc_class_name_NSString.objc_class_name_NSThread.objc_class_name_NSUserDefaults_NSBundleDidLoadNotification_NSCreateHashTable_NSDeallocateObject_NSDefaultMallocZone_NSHashGet_NSHashInsertKnownAbsent_NSLog_NSNonOwnedPointerHashCallBacks_NSWillBecomeMultiThreadedNotification_NSZoneFree_NSZoneMalloc_NSZoneRealloc__NSAddHandler2__NSConstantStringClassReference__NSExceptionObjectFromHandler2__NSRemoveHandler2___sF__objc_flush_caches__objc_resolve_categories_for_class__setjmp_abort_class_addMethods_class_getClassMethod_class_getInstanceMethod_class_nextMethodList_fflush_fprintf_free_fwrite_objc_getClassList_objc_msgSend_objc_msgSendSuper_realloc_sel_getNamesingle moduledyld_lazy_symbol_binding_entry_pointdyld__mh_dylib_headerdyld_func_lookup_pointer___initialize_Cplusplus__dyld_func_lookupcfm_stub_binding_helperdyld_stub_binding_helper_rcs_id___rcs_id_hack-[NSData(OBObjectCompatibility) shortDescription]_rcs_id___rcs_id_hack-[NSObject(OBObjectCompatibility) debugDictionary]-[NSObject(OBObjectCompatibility) shortDescription]_rcs_id___rcs_id_hack_initialized.0+[OBObject initialize]_nsObjectDescription-[OBObject dealloc]-[OBObject(Debug) debugDictionary]-[OBObject(Debug) descriptionWithLocale:indent:]-[OBObject(Debug) description]-[OBObject(Debug) shortDescription]_rcs_id___rcs_id_hack_lock_calledImplementations_isMultiThreaded_isSendingBecomingMultiThreaded_hasBeenInitialized.0+[OBPostLoader initialize]+[OBPostLoader processClasses]+[OBPostLoader processSelector:initialize:]+[OBPostLoader bundleDidLoad:]+[OBPostLoader isMultiThreaded]+[OBPostLoader(PrivateAPI) _processSelector:inClass:initialize:]+[OBPostLoader(PrivateAPI) _becomingMultiThreaded:]_rcs_id___rcs_id_hack_OBLogAssertionFailure_OBAbort_OBShouldAbortOnAssertFailureEnabled_currentAssertionHandler+[_OBAssertionWarning didLoad]_rcs_id___rcs_id_hack__OBRegisterMethod_rcs_id___rcs_id_hack+[NSException(OBExtensions) raise:posixErrorNumber:format:]+[NSException(OBExtensions) exceptionWithName:posixErrorNumber:format:]-[NSException(OBExtensions) posixErrorNumber]restFPsaveFP__mh_dylib_header CFBundleDevelopmentRegion English CFBundleExecutable OmniBase CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType FMWK CFBundleSignature ???? CFBundleVersion 2001A PBXProjectSourcePath /Users/chulbert/Desktop/OmniBase/OmniBase.pbproj 2001AVersions/Current/HeadersVersions/Current/OmniFoundationVersions/Current/Resources// Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/CoreFoundationExtensions/CFDictionary-OFExtensions.h,v 1.10 2003/01/15 22:51:52 kc Exp $ #import extern const CFDictionaryKeyCallBacks OFCaseInsensitiveStringKeyDictionaryCallbacks; extern const CFDictionaryKeyCallBacks OFNonOwnedPointerDictionaryKeyCallbacks; extern const CFDictionaryValueCallBacks OFNonOwnedPointerDictionaryValueCallbacks; extern const CFDictionaryKeyCallBacks OFIntegerDictionaryKeyCallbacks; extern const CFDictionaryValueCallBacks OFIntegerDictionaryValueCallbacks; extern const CFDictionaryKeyCallBacks OFNSObjectDictionaryKeyCallbacks; extern const CFDictionaryValueCallBacks OFNSObjectDictionaryValueCallbacks; // Convenience functions @class NSMutableDictionary; extern NSMutableDictionary *OFCreateCaseInsensitiveKeyMutableDictionary(); // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/CoreFoundationExtensions/CFSet-OFExtensions.h,v 1.5 2003/01/15 22:51:52 kc Exp $ #import extern const CFSetCallBacks OFCaseInsensitiveStringSetCallbacks; extern const CFSetCallBacks OFNonOwnedPointerSetCallbacks; extern const CFSetCallBacks OFIntegerSetCallbacks; extern const CFSetCallBacks OFNSObjectSetCallbacks; // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/CoreFoundationExtensions/CFString-OFExtensions.h,v 1.7 2003/07/30 20:28:37 wiml Exp $ #import typedef struct _OFCaseConversionBuffer { CFMutableStringRef string; UniChar *buffer; CFIndex bufferSize; } OFCaseConversionBuffer; extern void OFCaseConversionBufferInit(OFCaseConversionBuffer *caseBuffer); extern void OFCaseConversionBufferDestroy(OFCaseConversionBuffer *caseBuffer); extern CFStringRef OFCreateStringByLowercasingCharacters(OFCaseConversionBuffer *caseBuffer, const UniChar *characters, CFIndex count); extern CFHashCode OFCaseInsensitiveHash(const UniChar *characters, CFIndex length); /* A simple convenience function which calls CFStringGetBytes() for the specified range and appends the bytes to the CFMutableData buffer. Returns the number of characters of "range" converted, which should always be the same as range.length. */ CFIndex OFAppendStringBytesToBuffer(CFMutableDataRef buffer, CFStringRef source, CFRange range, CFStringEncoding encoding, UInt8 lossByte, Boolean isExternalRepresentation); // Copyright 1997-2000 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // DO NOT MODIFY THIS FILE -- IT IS AUTOGENERATED! // // Platform specific defines for marking data and code // as 'extern'. // #ifndef _OmniFoundationDEFINES_H #define _OmniFoundationDEFINES_H // // OpenStep/Mach or Rhapsody // #if defined(__MACH__) #ifdef __cplusplus #define OmniFoundation_EXTERN extern #define OmniFoundation_PRIVATE_EXTERN __private_extern__ #else #define OmniFoundation_EXTERN extern #define OmniFoundation_PRIVATE_EXTERN __private_extern__ #endif // // OpenStep/NT, YellowBox/NT, and YellowBox/95 // #elif defined(WIN32) #ifndef _NSBUILDING_OmniFoundation_DLL #define _OmniFoundation_WINDOWS_DLL_GOOP __declspec(dllimport) #else #define _OmniFoundation_WINDOWS_DLL_GOOP __declspec(dllexport) #endif #ifdef __cplusplus #define OmniFoundation_EXTERN _OmniFoundation_WINDOWS_DLL_GOOP extern #define OmniFoundation_PRIVATE_EXTERN extern #else #define OmniFoundation_EXTERN _OmniFoundation_WINDOWS_DLL_GOOP extern #define OmniFoundation_PRIVATE_EXTERN extern #endif // // Standard UNIX: PDO/Solaris, PDO/HP-UX, GNUstep // #elif defined(sun) || defined(hpux) || defined(GNUSTEP) #ifdef __cplusplus # define OmniFoundation_EXTERN extern # define OmniFoundation_PRIVATE_EXTERN extern #else # define OmniFoundation_EXTERN extern # define OmniFoundation_PRIVATE_EXTERN extern #endif #else #error Do not know how to define extern on this platform #endif #endif // _OmniFoundationDEFINES_H // Copyright 1999-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/md5.h,v 1.9 2003/03/24 23:05:06 neo Exp $ // // Most of the contents of this file are owned by RSA Data Security, and // are thus subject to RSA's license (see copyright below). // This is an implementation of the MD5 Message Digest Algorithm (derived, somewhat indirectly, from the reference implementation in RFC 1321). #import #import // These redefinitions keep our symbols from clashing with other peoples' inclusions of MD5 into applications, bundles, etc. #define MD5Init OFMD5Init #define MD5Update OFMD5Update #define MD5Final OFMD5Final /* MD5.H - header file for MD5C.C */ /* Copyright (C) 1991, RSA Data Security, Inc. All rights reserved. License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing this software or this function. License is also granted to make and use derivative works provided that such works are identified as "derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing the derived work. RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind. These notices must be retained in any copies of any part of this documentation and/or software. */ /* POINTER defines a generic pointer type */ typedef unsigned char *POINTER; /* UINT2 defines a two byte word */ typedef unsigned short int UINT2; /* UINT4 defines a four byte word */ #ifdef __alpha typedef unsigned int UINT4; #else typedef unsigned long int UINT4; #endif /* MD5 context. */ typedef struct { UINT4 state[4]; /* state (ABCD) */ UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */ unsigned char buffer[64]; /* input buffer */ } MD5_CTX; OmniFoundation_EXTERN void MD5Init(MD5_CTX *); OmniFoundation_EXTERN void MD5Update(MD5_CTX *, const unsigned char *, unsigned int); OmniFoundation_EXTERN void MD5Final(unsigned char [16], MD5_CTX *); // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSArray-OFExtensions.h,v 1.26 2003/07/16 19:12:08 bungi Exp $ #import #import @class NSDecimalNumber, OFMultiValueDictionary; @interface NSArray (OFExtensions) - (id)anyObject; // Returns any object from the array. - (NSArray *)elementsAsInstancesOfClass:(Class)aClass withContext:(id)context; #ifndef WINNT - (id)randomObject; // Returns a random object from the array. #endif // These are safe to use on mixed-content arrays. // The first two call -indexOfString:options:range: with default values. - (int)indexOfString:(NSString *)aString; - (int)indexOfString:(NSString *)aString options:(unsigned int)someOptions; - (int)indexOfString:(NSString *)aString options:(unsigned int)someOptions range:(NSRange)aRange; - (NSString *)componentsJoinedByComma; - (NSString *)componentsJoinedByCommaAndAnd; // (x) -> "x"; (x, y) -> "x and y"; (x, y, z) -> "x, y, and z", and so on - (unsigned)indexOfObject: (id) anObject inArraySortedUsingSelector: (SEL) selector; - (NSDecimalNumber *)decimalNumberSumForSelector:(SEL)aSelector; - (NSArray *)numberedArrayDescribedBySelector:(SEL)aSelector; - (NSArray *)objectsDescribedByIndexesString:(NSString *)indexesString; - (NSArray *)arrayByRemovingObject:(id)anObject; - (NSArray *)arrayByRemovingObjectIdenticalTo:(id)anObject; - (OFMultiValueDictionary *)groupBySelector:(SEL)aSelector; - (OFMultiValueDictionary *)groupBySelector:(SEL)aSelector withObject:(id)anObject; - (NSDictionary *)indexBySelector:(SEL)aSelector; - (NSArray *)arrayByPerformingSelector:(SEL)aSelector; - (NSArray *)arrayByPerformingSelector:(SEL)aSelector withObject:(id)anObject; - (NSArray *)objectsSatisfyingCondition:(SEL)aSelector; - (NSArray *)objectsSatisfyingCondition:(SEL)aSelector withObject:(id)anObject; // Returns an array of objects that return true when tested by aSelector. - (id)deepMutableCopy; - (NSArray *)reversedArray; - (NSArray *)deepCopyWithReplacementFunction:(id (*)(id, void *))funct context:(void *)context; - (BOOL)containsObjectsInOrder:(NSArray *)orderedObjects; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSAttributedString-OFExtensions.h,v 1.8 2003/01/15 22:51:58 kc Exp $ #import @interface NSAttributedString (OFExtensions) - initWithString:(NSString *)str attributeName:(NSString *)attributeName attributeValue:(id)attributeValue; // This can be used to initialize an attributed string when you only want to set one attribute: this way, you don't have to build an NSDictionary of attributes yourself. - (NSArray *)componentsSeparatedByString:(NSString *)aString; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSCalendarDate-OFExtensions.h,v 1.15 2003/07/08 15:46:41 bungi Exp $ #import @interface NSCalendarDate (OFExtensions) + (NSCalendarDate *)unixReferenceDate; - (void)setToUnixDateFormat; - initWithTime_t:(int)time; - (NSCalendarDate *)safeReferenceDate; - (NSCalendarDate *)firstDayOfMonth; - (NSCalendarDate *)lastDayOfMonth; - (int)numberOfDaysInMonth; - (int)weekOfMonth; // Returns 1 through 6. Weeks are Sunday-Saturday. - (BOOL)isInSameWeekAsDate:(NSCalendarDate *)otherDate; - (NSCalendarDate *)dateByRoundingToDayOfWeek:(int)desiredDayOfWeek; - (NSCalendarDate *)dateByRoundingToHourOfDay:(int)desiredHour minute:(int)desiredMinute; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSData-OFExtensions.h,v 1.22 2003/01/15 22:51:59 kc Exp $ #import @interface NSData (OFExtensions) + (NSData *)randomDataOfLength:(unsigned int)length; // Returns a new autoreleased instance that contains the number of requested random bytes. + (id)dataWithHexString:(NSString *)hexString; - initWithHexString:(NSString *)hexString; - (NSString *)lowercaseHexString; /* has a leading 0x (sigh) */ - (NSString *)unadornedLowercaseHexString; /* no 0x */ - initWithASCII85String:(NSString *)ascii85String; - (NSString *)ascii85String; + (id)dataWithBase64String:(NSString *)base64String; - initWithBase64String:(NSString *)base64String; - (NSString *)base64String; // This is our own coding method, not a standard. This is good // for NSData strings that users have to type in. - initWithASCII26String:(NSString *)ascii26String; - (NSString *)ascii26String; - (unsigned long)indexOfFirstNonZeroByte; // Returns the index of the first non-zero byte in the receiver, or NSNotFound if if all the bytes in the data are zero. - (NSData *)sha1Signature; // Uses the SHA-1 algorithm to compute a signature for the receiver. Obviously, due to the dynamic nature of ObjC, and due to the fact that users will get access to the binary, this cannot be depended upon as an absolutely secure licensing mechanism, but this will prevent users from accidentally breaking the licensing agreement, which is really all we can hope for. - (NSData *)md5Signature; // Computes an MD5 digest of the receiver and returns it. (Derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm.) - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile createDirectories:(BOOL)shouldCreateDirectories; // Will raise an exception if it can't create the required directories. - (NSData *)dataByAppendingData:(NSData *)anotherData; // Returns the catenation of this NSData and the argument - (BOOL)hasPrefix:(NSData *)data; - (BOOL)containsData:(NSData *)data; - propertyList; // a cover for the CoreFoundation function call @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSDate-OFExtensions.h,v 1.9 2003/03/12 00:53:31 wiml Exp $ #import @interface NSDate (OFExtensions) - (NSString *)descriptionWithHTTPFormat; // rfc1123 format with TZ forced to GMT - (void)sleepUntilDate; - (BOOL)isAfterDate: (NSDate *) otherDate; - (BOOL)isBeforeDate: (NSDate *) otherDate; @end // Copyright 1999-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSDecimalNumber-OFExtensions.h,v 1.10 2003/01/15 22:51:59 kc Exp $ #import #define OF_IS_POSITIVE(value) (value != nil && [value doubleValue] > 0.0) @interface NSDecimalNumber (OFExtensions) - (NSDecimalNumber *)decimalNumberByConvertingFromAnnualizedPercentageRateToMonthlyRate; - (NSDecimalNumber *)decimalNumberByConvertingFromMonthlyRateToAnnualizedPercentageRate; - (NSDecimalNumber *)decimalNumberByRoundingToScale:(short)scale roundingMode:(NSRoundingMode)roundingMode; - (NSDecimalNumber *)decimalNumberByRoundingToScale:(short)scale withFactor:(NSDecimalNumber *)factor roundingMode:(NSRoundingMode)roundingMode; - (NSDecimalNumber *)decimalNumberBySafelyAdding:(NSDecimalNumber *)decimalNumber; - (NSDecimalNumber *)decimalNumberBySafelySubtracting:(NSDecimalNumber *)decimalNumber; - (NSDecimalNumber *)decimalNumberBySafelyMultiplyingBy:(NSDecimalNumber *)decimalNumber; + (BOOL)decimalNumberIsEqualToZero:(NSDecimalNumber *)decimalNumber; // Returns YES if the number is equal to zero or is nil + (BOOL)decimalNumberIsNotEqualToZero:(NSDecimalNumber *)decimalNumber; // Returns YES if the number is not equal to zero or is nil + (BOOL)decimalNumberIsGreaterThanZero:(NSDecimalNumber *)decimalNumber; + (BOOL)decimalNumberIsGreaterThanOrEqualToZero:(NSDecimalNumber *)decimalNumber; + (BOOL)numberIsLessThanZero:(NSDecimalNumber *)decimalNumber; - (BOOL)isGreaterThanDecimalNumber:(NSDecimalNumber *)aDecimalNumber; - (BOOL)isLessThanDecimalNumber:(NSDecimalNumber *)aDecimalNumber; - (BOOL)isGreaterThanOrEqualToDecimalNumber:(NSDecimalNumber *)aDecimalNumber; - (BOOL)isLessThanOrEqualToDecimalNumber:(NSDecimalNumber *)aDecimalNumber; - (BOOL)isNotANumber; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSDictionary-OFExtensions.h,v 1.14 2003/01/15 22:51:59 kc Exp $ #import #import #import OmniFoundation_EXTERN NSString *OmniDictionaryElementNameKey; @interface NSDictionary (OFExtensions) - (NSDictionary *)dictionaryWithObject:anObj forKey:(NSString *)key; - (id)anyObject; - (NSDictionary *)elementsAsInstancesOfClass:(Class)aClass withContext:(id)context; - (NSString *)keyForObjectEqualTo:(id)anObj; // ObjC doesn't return 0.0 if you send a message returning float or double to a nil - (float)floatForKey:(NSString *)key defaultValue:(float)defaultValue; - (float)floatForKey:(NSString *)key; - (double)doubleForKey:(NSString *)key defaultValue:(double)defaultValue; - (double)doubleForKey:(NSString *)key; // Returns YES iff the value is YES, Y, yes, y, or 1. - (BOOL)boolForKey:(NSString *)key defaultValue:(BOOL)defaultValue; - (BOOL)boolForKey:(NSString *)key; // Just to make life easier - (int)intForKey:(NSString *)key defaultValue:(int)defaultValue; - (int)intForKey:(NSString *)key; // This seems more convenient than having to write your own if statement a zillion times - (id)objectForKey:(NSString *)key defaultObject:(id)defaultObject; - (id)deepMutableCopy; - (NSDictionary *)deepCopyWithReplacementFunction:(id (*)(id, void *))funct context:(void *)context; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSException-OFExtensions.h,v 1.7 2003/01/15 22:51:59 kc Exp $ #import @interface NSException (OFExtensions) - (NSString *)displayName; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSFileManager-OFExtensions.h,v 1.38 2003/07/11 04:22:10 wjs Exp $ #import #import // For NSRange #import #import @class NSNumber; @interface NSFileManager (OFExtensions) - (NSString *)tempFilenameFromTemplate:(NSString *)inputString andRange:(NSRange)replaceRange; // Create a unique temp filename from a template filename, given a range within the template filename which identifies where the unique portion of the filename is to lie. - (NSString *)tempFilenameFromTemplate:(NSString *)inputString andPosition:(int)position; // Create a unique temp filename from a template string, given a position within the template filename which identifies where the unique portion of the filename is to begin. - (NSString *)tempFilenameFromTemplate:(NSString *)inputString andSubstring:(NSString *)substring; // Create a unique temp filename from a template string, given a substring within the template filename which is to be replaced by the unique portion of the filename. - (NSString *)tempFilenameFromHashesTemplate:(NSString *)inputString; // Create a unique temp filename from a template string which contains a substring of six hash marks which are to be replaced by the unique portion of the filename. - (NSString *)uniqueFilenameFromName:(NSString *)suggestedName; // Generate a unique filename based on a suggested name // Note: Does not work properly on Windows at the moment because it is hardcoded to use forward slashes rather than using the native path separator. // Scratch files - (NSString *)scratchDirectoryPath; - (NSString *)scratchFilenameNamed:(NSString *)aName; - (void)removeScratchDirectory; // Changing file access/update timestamps. - (void)touchFile:(NSString *)filePath; // Directory manipulations - (BOOL)directoryExistsAtPath:(NSString *)path; - (BOOL)directoryExistsAtPath:(NSString *)path traverseLink:(BOOL)traverseLink; - (void)createPathToFile:(NSString *)path attributes:(NSDictionary *)attributes; // Creates any directories needed to be able to create a file at the specified path. Raises an exception on failure. - (void)createPath:(NSString *)path attributes:(NSDictionary *)attributes; - (NSString *)existingPortionOfPath:(NSString *)path; - (BOOL)atomicallyCreateFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr; - (NSArray *) directoryContentsAtPath: (NSString *) path havingExtension: (NSString *) extension; // File locking // Note: these are *not* industrial-strength robust file locks, but will do for occasional use. - (NSDictionary *)lockFileAtPath:(NSString *)path overridingExistingLock:(BOOL)override; // Returns nil if the lock was successful. Otherwise, returns a dictionary with information about the current holder of the lock. - (void)unlockFileAtPath:(NSString *)path; // - (NSNumber *)posixPermissionsForMode:(unsigned int)mode; - (NSNumber *)defaultFilePermissions; - (NSNumber *)defaultDirectoryPermissions; - (unsigned long long)sizeOfFileAtPath:(NSString *)path; - (NSString *)networkMountPointForPath:(NSString *)path returnMountSource:(NSString **)mountSource; - (NSString *)fileSystemTypeForPath:(NSString *)path; - (int)getType:(unsigned long *)typeCode andCreator:(unsigned long *)creatorCode forPath:(NSString *)path; - (int)setType:(unsigned long)typeCode andCreator:(unsigned long)creatorCode forPath:(NSString *)path; - (NSString *)resolveAliasAtPath:(NSString *)path; // Returns the original path if it isn't an alias, or the path pointed to by the alias (paths are all in POSIX form). Returns nil if an error occurs, such as not being able to resolve the alias. Note that this will not resolve aliases in the middle of the path (e.g. if /foo/bar is an alias to a directory, resolving /foo/bar/baz will fail and return nil). - (NSString *)resolveAliasesInPath:(NSString *)path; // As -resolveAliasAtPath:, but will resolve aliases in the middle of the path as well, returning a path that can be used by POSIX APIs. Unlike -resolveAliasAtPath:, this can return non-nil for nonexistent paths: if the path can be resolved up to a directory which does not contain the next component, it will do so. As a side effect, -resolveAliasesInPath: will often resolve symlinks as well, but this should not be relied upon. Note that resolving aliases can incur some time-consuming operations such as mounting volumes, which can cause the user to be prompted for a password or to insert a disk, etc. @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSHost-OFExtensions.h,v 1.7 2003/01/15 22:52:00 kc Exp $ #import @class NSNumber; @interface NSHost (OFExtensions) - (NSNumber *)addressNumber; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSInvocation-OFExtensions.h,v 1.7 2003/01/15 22:52:00 kc Exp $ #import @interface NSInvocation (OFExtensions) - (BOOL)isDefinedByProtocol:(Protocol *)aProtocol; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSMutableArray-OFExtensions.h,v 1.9 2003/02/20 05:30:51 wiml Exp $ #import @class NSSet; @interface NSMutableArray (OFExtensions) - (void)insertObjectsFromArray:(NSArray *)anArray atIndex:(unsigned)anIndex; - (void)removeIdenticalObjectsFromArray:(NSArray *)removeArray; - (void)addObjectsFromSet:(NSSet *)aSet; // Maintaining sorted arrays - (void)insertObject:(id)anObject inArraySortedUsingSelector:(SEL)selector; - (void)removeObject:(id)anObject fromArraySortedUsingSelector:(SEL)selector; // Sorting on an object's attribute - (void)sortOnAttribute:(SEL)fetchAttributeSelector usingSelector:(SEL)comparisonSelector; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSMutableData-OFExtensions.h,v 1.8 2003/01/15 22:52:00 kc Exp $ #import @interface NSMutableData (OFExtensions) - (void) andWithData: (NSData *) aData; /*.doc. Sets each byte of the receiver to be the bitwise and of that byte and the corresponding byte in aData. PRECONDITION(aData); PRECONDITION([self length] == [aData length]); */ - (void) orWithData: (NSData *) aData; /*.doc. Sets each byte of the receiver to be the bitwise and of that byte and the corresponding byte in aData. PRECONDITION(aData); PRECONDITION([self length] == [aData length]); */ - (void) xorWithData: (NSData *) aData; /*.doc. Sets each byte of the receiver to be the bitwise and of that byte and the corresponding byte in aData. PRECONDITION(aData); PRECONDITION([self length] == [aData length]); */ @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSMutableDictionary-OFExtensions.h,v 1.8 2003/01/15 22:52:00 kc Exp $ #import @interface NSMutableDictionary (OFExtensions) - (void)setObject:(id)anObject forKeys:(NSArray *)keys; // These are nice for ease of use - (void)setFloatValue:(float)value forKey:(NSString *)key; - (void)setDoubleValue:(double)value forKey:(NSString *)key; - (void)setIntValue:(int)value forKey:(NSString *)key; - (void)setBoolValue:(BOOL)value forKey:(NSString *)key; // Setting with defaults - (void)setObject:(id)object forKey:(id)key defaultObject:(id)defaultObject; - (void)setFloatValue:(float)value forKey:(id)key defaultValue:(float)defaultValue; - (void)setDoubleValue:(double)value forKey:(id)key defaultValue:(double)defaultValue; - (void)setIntValue:(int)value forKey:(id)key defaultValue:(int)defaultValue; - (void)setBoolValue:(BOOL)value forKey:(id)key defaultValue:(BOOL)defaultValue; @end // Copyright 2002-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSMutableSet-OFExtensions.h,v 1.3 2003/01/15 22:52:00 kc Exp $ #import @interface NSMutableSet (OFExtensions) - (void) removeObjectsFromArray: (NSArray *) objects; /*" Removes all objects from the receiver which are in the specified array. "*/ - (void) exclusiveDisjoinSet: (NSSet *) otherSet; /*" Modifies the receiver to contain only those objects in the receiver or the argument but not the objects originally in both sets. The odd name is for parallelism with Apple's -intersectSet:, -unionSet:, etc. "*/ @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSMutableString-OFExtensions.h,v 1.12 2003/05/22 20:02:28 neo Exp $ #import @interface NSMutableString (OFExtensions) - (void)replaceAllOccurrencesOfCharactersInSet:(NSCharacterSet *)set withString:(NSString *)replaceString; - (void)collapseAllOccurrencesOfCharactersInSet:(NSCharacterSet *)set toString:(NSString *)replaceString; - (BOOL)replaceAllOccurrencesOfString:(NSString *)oldString withString:(NSString *)newString; - (void)replaceAllLineEndingsWithString:(NSString *)newString; - (void)appendCharacter:(unichar)aCharacter; - (void)appendStrings: (NSString *)first, ...; - (void)removeSurroundingWhitespace; @end // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSNotificationCenter-OFExtensions.h,v 1.8 2003/01/15 22:52:00 kc Exp $ #import @class NSArray; @interface NSNotificationCenter (OFExtensions) - (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName objects:(NSArray *)objects; // Convenience method for registering an observer for the same notification from many objects - (void)removeObserver:(id)observer name:(NSString *)aName objects:(NSArray *)objects; // Convenience method for removing an observer for the same notification from many objects - (void)mainThreadPostNotificationName:(NSString *)aName object:(id)anObject; // Asynchronously post a notification in the main thread - (void)mainThreadPostNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo; // Asynchronously post a notification in the main thread @end // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSNotificationQueue-OFExtensions.h,v 1.8 2003/01/15 22:52:00 kc Exp $ #import @class NSDictionary; @interface NSNotificationQueue (OFExtensions) + (void)enqueueNotificationInMainThread:(NSNotification *)aNote postingStyle:(NSPostingStyle)aStyle; - (void) enqueueNotificationName: (NSString *) name object: (id) object postingStyle: (NSPostingStyle) postingStyle; - (void) enqueueNotificationName: (NSString *) name object: (id) object userInfo: (NSDictionary *) userInfo postingStyle: (NSPostingStyle) aStyle; - (void) enqueueNotificationName: (NSString *) name object: (id) object userInfo: (NSDictionary *) userInfo postingStyle: (NSPostingStyle) aStyle coalesceMask: (unsigned) coalesceMask forModes: (NSArray *) modes; - (void) dequeueNotificationsMatching: (NSString *) name object: (id) object coalesceMask: (unsigned) coalesceMask; - (void) firePendingNotifications; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSNumber-OFExtensions.h,v 1.8 2003/01/15 22:52:00 kc Exp $ #import @interface NSNumber (OFExtensions) - initWithString:(NSString *)aString; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSObject-OFExtensions.h,v 1.18 2003/01/22 00:58:20 wiml Exp $ #import #import @class NSArray, NSMutableArray, NSDictionary; @class NSBundle, NSScriptObjectSpecifier; @interface NSObject (OFExtensions) + (void)initializeAllClasses; + (Class)classImplementingSelector:(SEL)aSelector; + (NSBundle *)bundle; - (NSBundle *)bundle; @end @interface NSObject (OFAppleScriptExtensions) + (void)registerConversionFromRecord; - (BOOL)ignoreAppleScriptValueForKey:(NSString *)key; // implement for keys to ignore for 'make' and record coercion // or implement -(BOOL)ignoreAppleScriptValueFor - (NSDictionary *)appleScriptAsRecord; - (void)appleScriptTakeAttributesFromRecord:(NSDictionary *)record; - (NSString *)appleScriptMakeProperties; - (NSString *)appleScriptMakeCommandAt:(NSString *)aLocationSpecifier; - (NSString *)appleScriptMakeCommandAt:(NSString *)aLocationSpecifier withIndent:(int)indent; - (NSScriptObjectSpecifier *)objectSpecifierByProperty:(NSString *)propertyKey inRelation:(NSString *)myLocation toContainer:(NSObject *)myContainer; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSProcessInfo-OFExtensions.h,v 1.7 2003/01/15 22:52:00 kc Exp $ #import @class NSNumber; @interface NSProcessInfo (OFExtensions) - (NSNumber *)processNumber; // Returns a number uniquely identifying the current process among those running on the same host. Assumes that this number can be described in a short. While this may or may not be true on a particular system, it is generally true. @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSScanner-OFExtensions.h,v 1.7 2003/01/15 22:52:00 kc Exp $ #import @interface NSScanner (OFExtensions) - (BOOL)scanStringOfLength:(unsigned int)length intoString:(NSString **)result; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSString-OFExtensions.h,v 1.56 2003/07/31 20:56:33 wiml Exp $ #import #import #import #import // For NSTimeInterval #import // for CFStringEncoding @class OFCharacterSet; /* A note on deferred string decoding. A recurring problem in OmniWeb is dealing with strings whose encoding is unknown. Usually this is because a protocol or format was originally specified in terms of 7-bit ASCII, and has later been extended to support larger character sets by adding a character encoding field (in ASCII). This shows up in HTML (the tag is often used to specify its own file's interpretation), FTP (the MLST/MLSD response includes a charset field, possibly different for each line of the response), XML (the charset attribute in the declaration element), etc. One way to handle this would be to treat these as octet-strings rather than character-strings, until their encoding is known. However, keeping octet-strings in NSDatas would keep us from using the large library of useful routines which manipulate NSStrings. Instead, OmniFoundation sets aside a range of 256 code points in the Supplementary Private Use Area A to represent bytes which have not yet been converted into characters. OFStringDecoder understands a new encoding, OFDeferredASCIISupersetStringEncoding, which interprets ASCII as ASCII but maps all apparently non-ASCII bytes into the private use area. Later, the original byte sequence can be recovered (including interleaved high-bit-clear bytes, since the ASCII->Unicode->ASCII roundtrip is lossless) and the correct string encoding can be applied. It's intended that strings containing these private-use code points have as short a lifetime and as limited a scope as possible. We don't want our private-use characters getting out into the rest of the world and gumming up glyph generation or being mistaken for someone else's private-use characters. As soon as the correct string encoding is known, all strings should be re-encoded using -stringByApplyingDeferredCFEncoding: or an equivalent function. Low-level functions for dealing with NSStrings containing "deferred" bytes/characters can be found in OFStringDecoder. In general, searching, splitting, and combining strings containing deferred characters can be done safely, as long as you don't split up any deferred multibyte characters. In addition, the following methods in this file understand deferred-encoding strings and will do the right thing: -stringByApplyingDeferredCFEncoding: -dataUsingCFEncoding: -dataUsingCFEncoding:allowLossyConversion: -dataUsingCFEncoding:allowLossyConversion:hexEscapes: -encodeURLString:asQuery:leaveSlashes:leaveColons: -encodeURLString:encoding:asQuery:leaveSlashes:leaveColons: -fullyEncodeAsIURI: Currently the only way to create strings with deferred bytes/characters is using OFStringDecoder (possibly via OWDataStreamCharacterCursor/Scanner). */ @interface NSString (OFExtensions) + (NSString *)stringWithData:(NSData *)data encoding:(NSStringEncoding)encoding; + (NSString *)abbreviatedStringForBytes:(unsigned long long)bytes; + (NSString *)humanReadableStringForTimeInterval:(NSTimeInterval)timeInterval; + (NSString *)spacesOfLength:(unsigned int)aLength; + (NSString *)stringWithCharacter:(unsigned int)aCharacter; /* Returns a string containing the given Unicode character. Will generate a surrogate pair for characters > 0xFFFF (which cannot be represented by a single unichar). */ + (NSString *)stringWithStrings:(NSString *)first, ... ; + (NSString *)stringWithFourCharCode:(FourCharCode)code; // These methods return strings containing the indicated character + (NSString *)horizontalEllipsisString; // '...' + (NSString *)leftPointingDoubleAngleQuotationMarkString; // '<<' + (NSString *)rightPointingDoubleAngleQuotationMarkString; // '>>' + (NSString *)emdashString; // '---' + (NSString *)endashString; // '--' + (NSString *)commandKeyIndicatorString; + (NSString *)alternateKeyIndicatorString; + (NSString *)shiftKeyIndicatorString; + (BOOL)isEmptyString:(NSString *)string; // Returns YES if the string is nil or equal to @"" - (BOOL)containsCharacterInSet:(NSCharacterSet *)searchSet; - (BOOL)containsString:(NSString *)searchString options:(unsigned int)mask; - (BOOL)containsString:(NSString *)searchString; - (BOOL)isEqualToCString:(const char *)cString; - (BOOL)hasLeadingWhitespace; - (BOOL)isPercentage; - (BOOL)boolValue; - (long long int)longLongValue; - (unsigned int)unsignedIntValue; - (NSDecimal)decimalValue; - (NSDecimalNumber *)decimalNumberValue; - (NSNumber *)numberValue; - (NSArray *)arrayValue; - (NSDictionary *)dictionaryValue; - (NSData *)dataValue; - (NSCalendarDate *)dateValue; - (FourCharCode)fourCharCodeValue; - (unsigned int)hexValue; - (NSString *)stringByUppercasingAndUnderscoringCaseChanges; - (NSString *)stringByRemovingSurroundingWhitespace; - (NSString *)stringByCollapsingWhitespaceAndRemovingSurroundingWhitespace; - (NSString *)stringByRemovingWhitespace; - (NSString *)stringByRemovingCharactersInOFCharacterSet:(OFCharacterSet *)removeSet; - (NSString *)stringByRemovingReturns; - (NSString *)stringByRemovingString:(NSString *)removeString; - (NSString *)stringByPaddingToLength:(unsigned int)aLength; - (NSString *)stringByNormalizingPath; // Normalizes a path like /a/b/c/../../d to /a/d. // Note: Does not work properly on Windows at the moment because it is hardcoded to use forward slashes rather than using the native path separator. - (unichar)firstCharacter; - (unichar)lastCharacter; - (NSString *)lowercaseFirst; - (NSString *)uppercaseFirst; - (NSString *)stringByApplyingDeferredCFEncoding:(CFStringEncoding)newEncoding; - (NSString *)stringByReplacingCharactersInSet:(NSCharacterSet *)set withString:(NSString *)replaceString; - (NSString *)stringByReplacingKeysInDictionary:(NSDictionary *)keywordDictionary startingDelimiter:(NSString *)startingDelimiterString endingDelimiter:(NSString *)endingDelimiterString removeUndefinedKeys: (BOOL) removeUndefinedKeys; // Useful for turning $(NEXT_ROOT)/LocalLibrary into C:/Apple/LocalLibrary. If removeUndefinedKeys is YES and there is no key in the source dictionary, then @"" will be used to replace the variable substring. - (NSString *)stringByReplacingKeysInDictionary:(NSDictionary *)keywordDictionary startingDelimiter:(NSString *)startingDelimiterString endingDelimiter:(NSString *)endingDelimiterString; // Calls -stringByReplacingKeysInDictionary:startingDelimiter:endingDelimiter:removeUndefinedKeys: with removeUndefinedKeys NO. - (NSString *)stringByReplacingOccurancesOfString:(NSString *)targetString withObjectsFromArray:(NSArray *)sourceArray; - (NSString *)stringBySeparatingSubstringsOfLength:(unsigned int)substringLength withString:(NSString *)separator startingFromBeginning:(BOOL)startFromBeginning; - (NSString *)substringStartingWithString:(NSString *)startString; - (NSString *)substringStartingAfterString:(NSString *)startString; - (NSString *)stringByRemovingPrefix:(NSString *)prefix; - (NSString *)stringByRemovingSuffix:(NSString *)suffix; - (NSString *)stringByIndenting:(int)spaces; - (NSString *)stringByWordWrapping:(int)columns; - (NSString *)stringByIndenting:(int)spaces andWordWrapping:(int)columns; - (NSString *)stringByIndenting:(int)spaces andWordWrapping:(int)columns withFirstLineIndent:(int)firstLineSpaces; - (NSRange)findString:(NSString *)string selectedRange:(NSRange)selectedRange options:(unsigned int)options wrap:(BOOL)wrap; - (NSRange)rangeOfCharactersAtIndex:(unsigned)pos delimitedBy:(NSCharacterSet *)delim; - (NSRange)rangeOfWordContainingCharacter:(unsigned)pos; - (NSRange)rangeOfWordsIntersectingRange:(NSRange)range; - (unsigned)indexOfCharacterNotRepresentableInCFEncoding:(CFStringEncoding)anEncoding; - (unsigned)indexOfCharacterNotRepresentableInCFEncoding:(CFStringEncoding)anEncoding range:(NSRange)aRange; - (NSRange)rangeOfCharactersNotRepresentableInCFEncoding:(CFStringEncoding)anEncoding; /* Covers for the C functions in CoreFoundation */ - (NSData *)dataUsingCFEncoding:(CFStringEncoding)anEncoding; - (NSData *)dataUsingCFEncoding:(CFStringEncoding)anEncoding allowLossyConversion:(BOOL)lossy; - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile createDirectories:(BOOL)shouldCreateDirectories; #define OF_CHARACTER_BUFFER_SIZE (1024u) #define OFStringStartLoopThroughCharacters(string, ch) \ { \ unichar characterBuffer[OF_CHARACTER_BUFFER_SIZE]; \ unsigned int charactersProcessed, length; \ \ charactersProcessed = 0; \ length = [string length]; \ while (charactersProcessed < length) { \ unsigned int charactersInThisBuffer; \ unichar *input; \ \ charactersInThisBuffer = MIN(length - charactersProcessed, OF_CHARACTER_BUFFER_SIZE); \ [string getCharacters:characterBuffer range:NSMakeRange(charactersProcessed, charactersInThisBuffer)]; \ charactersProcessed += charactersInThisBuffer; \ input = characterBuffer; \ \ while (charactersInThisBuffer--) { \ unichar ch = *input++; #define OFStringEndLoopThroughCharacters \ } \ } \ } /* URL encoding */ + (void)setURLEncoding:(CFStringEncoding)newURLEncoding; + (CFStringEncoding)urlEncoding; + (NSString *)decodeURLString:(NSString *)encodedString encoding:(CFStringEncoding)thisUrlEncoding; + (NSString *)decodeURLString:(NSString *)encodedString; - (NSData *)dataUsingCFEncoding:(CFStringEncoding)anEncoding allowLossyConversion:(BOOL)lossy hexEscapes:(NSString *)escapePrefix; + (NSString *)encodeURLString:(NSString *)unencodedString asQuery:(BOOL)asQuery leaveSlashes:(BOOL)leaveSlashes leaveColons:(BOOL)leaveColons; + (NSString *)encodeURLString:(NSString *)unencodedString encoding:(CFStringEncoding)thisUrlEncoding asQuery:(BOOL)asQuery leaveSlashes:(BOOL)leaveSlashes leaveColons:(BOOL)leaveColons; - (NSString *)fullyEncodeAsIURI; // This takes a string which is already in %-escaped URI format and fully escapes any characters which are not safe. Slashes, question marks, etc. are unaffected. - (NSString *)htmlString; /* Regular expression encoding */ - (NSString *)regularExpressionForLiteralString; /* Mail header encoding according to RFCs 822 and 2047 */ - (NSString *)asRFC822Word; /* Returns an 'atom' or 'quoted-string', or nil if not possible */ - (NSString *)asRFC2047EncodedWord; /* Returns an 'encoded-word' representing the receiver */ - (NSString *)asRFC2047Phrase; /* Returns a sequence of atoms, quoted-strings, and encoded-words, as appropriate to represent the receiver in the syntax defined by RFC822 and RFC2047. */ @end // Copyright 1999-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSString-OFPathExtensions.h,v 1.7 2003/01/27 05:51:16 rick Exp $ #import @interface NSString (OFPathExtensions) - (NSString *) fileSystemSafeNonLossyPathComponent; // When called on a path component, this returns a new path component that can be safely stored in any relevant filesystem. This eliminates special chararacters by encoding them in a recoverable fashion. This does NOT eliminate case issues. That is, it is still not safe to store two files with differing cases. - (NSString *) decodedFileSystemSafeNonLossyPathComponent; // Returns the original string used to generate this string via -fileSystemSafeNonLossyPathComponent. - (NSString *) prettyPathString; // Reformats a path as 'lastComponent emdash stringByByRemovingLastPathComponent. + (NSString *)pathSeparator; // Whatever character constitutes the platform-specific path separator used by NSString's path utilities. Unless your on another planet or something, this should return @"/". Thanks to this method, the methods below should be mostly system-independent. Not that we're running on Windows anytime soon... + (NSString *)commonRootPathOfFilename:(NSString *)filename andFilename:(NSString *)otherFilename; // Given absolute file paths like "/applications/omniweb/screenshots/index.html" and "/applications/omniweb/faq/content.html", returns a the common ancestor of both paths, "/applications/omniweb/". Returns nil if the paths have no common root (well, other than the root of the filesystem). - (NSString *)relativePathToFilename:(NSString *)otherFilename; // Given absolute file paths like "/applications/omniweb/screenshots/index.html" and "/applications/omniweb/faq/content.html", returns a relative path, "../../faq/content.html". If no relative path is possible (i.e. the paths have no common root), returns otherFilename. @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSThread-OFExtensions.h,v 1.12 2003/07/08 15:46:41 bungi Exp $ #import @interface NSThread (OFExtensions) + (void)setMainThread; + (NSThread *)mainThread; + (BOOL)inMainThread; + (BOOL)mainThreadOpsOK; // returns true if we are the main thread *or* if we have locked the main thread // For putting appkit stuff into subthreads without shipping data back and forth. If you don't need the return value, then queuing a selector is much more efficient than this. + (void)lockMainThread; + (void)unlockMainThread; - (void)yield; // Causes the thread to possibly stop executing and cause another thread to start executing. Has no effect if not multithreaded. - (BOOL)yieldMainThreadLock; // If we're the main thread and another thread is waiting to lock the main thread, yield the lock to them and return YES @end #define ASSERT_IN_MAIN_THREAD(reason) NSAssert([NSThread inMainThread], reason) #define ASSERT_MAIN_THREAD_OPS_OK(reason) NSAssert([NSThread mainThreadOpsOK], reason) // Copyright 2001-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSUndoManager-OFExtensions.h,v 1.4 2003/01/15 22:52:01 kc Exp $ #import @interface NSUndoManager (OFExtensions) - (BOOL)isUndoingOrRedoing; // Sometimes you just don't care which it is, just that whatever is currently happening is because of the NSUndoManager. - (id)topUndoObject; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSUserDefaults-OFExtensions.h,v 1.5 2003/01/15 22:52:01 kc Exp $ // Don't try to read defaults in +didLoad, they might not be registered yet. In +didLoad, register for OFControllerDidInitNotification, then read defaults when that's posted. #import @class NSBundle, NSDictionary, NSString; @interface NSUserDefaults (OFExtensions) + (void)registerItemName:(NSString *)itemName bundle:(NSBundle *)bundle description:(NSDictionary *)description; - (void)autoSynchronize; @end // Copyright 2000-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFAbbreviationMatch.h,v 1.5 2003/01/15 22:51:48 kc Exp $ #import @class NSNumber; // Foundation @interface OFAbbreviationMatch : OFObject { id match; NSNumber *score; } - (id)initWithMatch:(id)aMatch score:(NSNumber *)aScore; // API - (id)match; - (NSNumber *)score; - (NSComparisonResult)compare:(OFAbbreviationMatch *)aMatch; @end // Copyright 2000-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFAbbreviationMatcher.h,v 1.6 2003/01/15 22:51:48 kc Exp $ #import // Forward declarations @class NSArray, NSMutableArray; // Foundation @interface OFAbbreviationMatcher : OFObject { NSArray *objects; NSMutableArray *asciiRepresentations; unsigned int matchedCharPoints; unsigned int matchedFirstCharPoints; unsigned int matchedUpperCharPoints; unsigned int consecutiveMatchBonus; unsigned int minimumConsecutiveMatchesForBonus; unsigned int missingCharPenalty; BOOL shouldUseNonlinearConsecutiveMatchPoints; } // Please note that the descriptions and abbreviations must be convertable to NSASCIIStringEncoding (lossily if necessary) - (id)initWithObjects:(NSArray *)targetObjects descriptionSelector:(SEL)aSEL; // Designated initializer - (id)initWithObjects:(NSArray *)targetObjects descriptions:(NSArray *)targetDescriptions; // API // Returns an array of matching objects, sorted in descending order (best match is last) - (NSArray *)matchesForAbbreviation:(NSString *)anAbbreviation; // Returns an array of OFAbbreviationMatch objects, sorted in descending order (best match is last) - (NSArray *)scoredMatchesForAbbreviation:(NSString *)anAbbreviation; - (void)setMatchedCharPoints:(unsigned int)points; - (unsigned int)matchedCharPoints; - (void)setMatchedFirstCharPoints:(unsigned int)points; - (unsigned int)matchedFirstCharPoints; - (void)setMatchedUpperCharPoints:(unsigned int)points; - (unsigned int)matchedUpperCharPoints; - (void)setConsecutiveMatchBonus:(unsigned int)points; - (unsigned int)consecutiveMatchBonus; - (void)setMiniumConsecutiveMatchesForBonus:(unsigned int)min; - (unsigned int)minimumConsecutiveMatchesForBonus; - (void)setMissingCharPenalty:(unsigned int)penalty; - (unsigned int)missingCharPenalty; - (void)shouldUseNonlinearConsecutiveMatchPoints:(BOOL)shouldUseNonlinear; - (BOOL)shouldUseNonlinearConsecutiveMatchPoints; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DistributedObjects.subproj/OFAsynchronousDOServer.h,v 1.4 2003/01/15 22:51:56 kc Exp $ #import @class NSConnection, NSDistantObjectRequest; @class OFMessageQueue; #define OMNI_ASYNCHRONOUS_SERVER_DEFAULT_INITIAL_PROCESSORS 10 @interface OFAsynchronousDOServer : OFDOServer { OFMessageQueue *asyncQueue; } // // Subclasses may implement the following three methods. // + (Class)messageQueueClass; - (BOOL)shouldProcessInvocationAsynchronously:(NSInvocation *)invocation; // The default is to return NO, and process all invocations synchronously. Subclasses can test if the invocation is a member of some protocol, or similiar, to determine if it should be processed asynchronously. - (int)initialProcessorCount; // Number of OmniQueueProcessors to start the OFMessageQueue with. Default is defined by OMNI_ASYNCHRONOUS_SERVER_DEFAULT_INITIAL_PROCESSORS. // // OFDOServer subclass methods. // - (BOOL)connection:(NSConnection *)connection handleRequest:(NSDistantObjectRequest *)doreq; // // Private methods. Should probably put this in a seperate file, OFAsynchronousServer-private.h, sometime. // - (void)_processDistantObjectRequestAsynchronously:(NSDistantObjectRequest *)doreq; @end #import // // OFAsynchronousDOServer exception names. // OmniFoundation_EXTERN NSString *OFAsynchonrousDOServerAlreadyStartedException; OmniFoundation_EXTERN NSString *OFAsynchonrousDOServerCouldNotCreateMessageQueueException; // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFAutoreleasedMemory.h,v 1.9 2003/01/15 22:51:48 kc Exp $ #import @interface OFAutoreleasedMemory : NSObject { } + (void *)mallocMemoryWithCapacity:(unsigned long)length; - (void)release; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFBitField.h,v 1.11 2003/01/15 22:51:52 kc Exp $ #import @class NSData, NSMutableData, NSNumber, NSString; @interface OFBitField : OFObject { NSMutableData *data; // This ivar stores the actual bitfield data (as it is returned from Sybase, for example). } - initWithLength:(unsigned int)newLength; // Initializes the newly alloc'ed instance to be of length newLength. - initWithData:(NSData *)someData type:(NSString *)string; // Initializes the new instance with someData and type string. This method is used internally by EOF and should not be called externally. - (NSData *)dataForType:(NSString *)typeString; // Returns an NSData representation of data in typeString format. This method is used internally by EOF and is not intended for public use. - (NSNumber *)valueAtIndex:(unsigned int)anIndex; // Returns the value stored at position index in the bit field. - (void)setValue:(NSNumber *)aBooleanNumber atIndex:(unsigned int)anIndex; // Sets the value of the bit field to aBooleanNumber at position index. - (BOOL)boolValueAtIndex:(unsigned int)anIndex; // Returns the value stored at position index in the bit field. - (void)setBoolValue:(BOOL)aBool atIndex:(unsigned int)anIndex; // Sets the value of the bit field to aBool at position index. - (unsigned int)length; // Returns the number of positions in the receiver. - (void)setLength:(unsigned)aLength; // Sets the number of positions in the receiver. Added positions are initially set to NO. - copy; // Returns a mutable copy of the receiver. - (BOOL)isEqual:(id)anObject; // Returns YES if anObject is considered equal to the receiver. anObject will be equal if its data and the receiver's data ivars are equal. - (BOOL)isEqualToBitField:(OFBitField *)aBitField; // Returns YES if aBitField is considered equal to the receiver. aBitField is assumed to be an instance of OFBitField, so be sure to pass an OFBitField if you're calling this method. If you're not sure what you have, call isEqual:. - (unsigned int) firstBitSet; // Returns the index of the first bit that is set. If no bit is set, returns NSNotFound. - (unsigned int) numberOfBitsSet; // Returns the total count of the bits set - (void)resetBitsTo:(BOOL)aBool; // Sets the whole field to the value of aBool. - (NSData *)deltaValue:(OFBitField *)aBitField; // If the receiver differs from aBitField, returns an NSData that contains the xor of the values of the two objects at each index. // // PRECONDITION(aBitField != nil); // PRECONDITION([aBitField isKindOfClass:[OFBitField class]]); // PRECONDITION([aBitField length] == [self length]); - (void)andWithData:(NSData *)aData; // Changes bits i the receiver to be the logical and of bit i in the receiver and bit i of aData for all valid i. // // PRECONDITION(data && [data length] == [aData length]); - (void)orWithData:(NSData *)data; // Changes bits i the receiver to be the logical or of bit i in the receiver and bit i of aData for all valid i. // // PRECONDITION(data && [data length] == [aData length]); - (void)xorWithData:(NSData *)data; // Changes bits i the receiver to be the logical xor of bit i in the receiver and bit i of aData for all valid i. // // PRECONDITION(data && [data length] == [aData length]); @end // Copyright 2001-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFBTree.h,v 1.6 2003/01/15 22:51:52 kc Exp $ #import // For BOOL #import // For size_t typedef struct _OFBTree OFBTree; typedef void *(*OFBTreeNodeAllocator)(struct _OFBTree *tree); typedef void (*OFBTreeNodeDeallocator)(struct _OFBTree *tree, void *node); typedef int (*OFBTreeElementComparator)(struct _OFBTree *tree, const void *elementA, const void *elementB); typedef void (*OFBTreeEnumeratorCallback)(struct _OFBTree *tree, void *element, void *arg); struct _OFBTree { // None of these fields should be written to (although they can be read if you like) void *nodeStack[10]; void *selectionStack[10]; int nodeStackDepth; struct _OFBTreeNode *root; size_t nodeSize; size_t elementSize; unsigned int elementsPerNode; OFBTreeNodeAllocator nodeAllocator; OFBTreeNodeDeallocator nodeDeallocator; OFBTreeElementComparator elementCompare; // This can be modified at will void *userInfo; }; extern void OFBTreeInit(OFBTree *tree, size_t nodeSize, size_t elementSize, OFBTreeNodeAllocator allocator, OFBTreeNodeDeallocator deallocator, OFBTreeElementComparator compare); extern void OFBTreeDestroy(OFBTree *tree); extern void OFBTreeInsert(OFBTree *tree, void *value); extern BOOL OFBTreeDelete(OFBTree *tree, void *value); extern void *OFBTreeFind(OFBTree *tree, void *value); extern void OFBTreeEnumerate(OFBTree *tree, OFBTreeEnumeratorCallback callback, void *arg); // This is not a terribly efficient API but it is reliable and does what I need extern void *OFBTreePrevious(OFBTree *tree, void *value); extern void *OFBTreeNext(OFBTree *tree, void *value); // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFBulkBlockPool.h,v 1.15 2003/01/15 22:51:53 kc Exp $ #import #import #import #ifdef OMNI_ASSERTIONS_ON // Uncomment this (or define this) to turn on more stringent (and costly) assertions // #define OF_BULK_BLOCK_POOL_AGGRESSIVE_ASSERTIONS #endif #ifdef OF_BULK_BLOCK_POOL_AGGRESSIVE_ASSERTIONS #warning OF_BULK_BLOCK_POOL_AGGRESSIVE_ASSERTIONS enabled #endif // // OFBulkBlockPool provides an optimized way to allocate a large number of fixed size blocks quickly and with very little overhead. Currently, only double-word alignment is guaranteed (so you shouldn't attempt to store doubles or long longs in your blocks). This works best for small blocks. The amount of wasted space goes up proportionally to the size of the block. The block size must be at least the size of a pointer. In order to maximize performance, OFBulkBlockPool is not thread-safe. The caller is responsible for providing this functionality should it be needed. // // Allocation is slightly faster than deallocation. Free pages are not deallocated when all of the contained blocks on that pages are deallocated. This could be implemented without too much trouble, but it would take up some small amount of space and time. typedef struct _OFBulkBlockPage { void *freeList; // the head of a linked list of free blocks struct _OFBulkBlockPool *pool; // this backpointer allow us to free stuff w/o knowing the pool void *data[0]; // the rest of the page; } OFBulkBlockPage; typedef struct _OFBulkBlockPool { void *freeList; // A cache of the freeList of the current page OFBulkBlockPage *currentPage; OFBulkBlockPage **pages; unsigned int pageCount; unsigned int blockSize; unsigned int allocationSize; // blockSize rounded up to a multiple of sizeof(unsigned int) } OFBulkBlockPool; OmniFoundation_EXTERN void OFBulkBlockPoolInitialize(OFBulkBlockPool *pool, unsigned int blockSize); // Initializes the pool to be able to allocate blocks of the given size. No memory is allocated. OmniFoundation_EXTERN void OFBulkBlockPoolDeallocateAllBlocks(OFBulkBlockPool *pool); // Frees all of the memory associated with the pool. This does NOT deallocate the pool itself. The caller is responsible for doing this. OmniFoundation_EXTERN void OFBulkBlockPoolReportStatistics(OFBulkBlockPool *pool); // Prints out a list of pages that are in use, how many blocks are used on each page and other interesting information OmniFoundation_PRIVATE_EXTERN void _OFBulkBlockPoolGetPage(OFBulkBlockPool *pool); // A private function used to get another page when the free list on the current page has been exhausted. #ifdef OF_BULK_BLOCK_POOL_AGGRESSIVE_ASSERTIONS OmniFoundation_EXTERN BOOL OFBulkBlockPoolCheckFreeLists(OFBulkBlockPool *pool); #endif static inline void *OFBulkBlockPoolAllocate(OFBulkBlockPool *pool) // Allocates and returns a new block of memory. The contents of the memory are indeterminant -- the caller must set any bytes to their proper value. { void *block; #ifdef OMNI_ASSERTIONS_ON OmniFoundation_PRIVATE_EXTERN unsigned int _OFBulkBlockPageSize; #endif OBPRECONDITION(pool); // Either the free list should be empty or it should point to something in the current page OBPRECONDITION(!pool->freeList || (unsigned int)((void *)pool->freeList - (void *)pool->currentPage) < _OFBulkBlockPageSize); #ifdef OF_BULK_BLOCK_POOL_AGGRESSIVE_ASSERTIONS OBPRECONDITION(OFBulkBlockPoolCheckFreeLists(pool)); #endif if (!pool->freeList) _OFBulkBlockPoolGetPage(pool); block = pool->freeList; pool->freeList = *(void **)pool->freeList; // Either the free list should be empty or it should point to something in the current page OBPOSTCONDITION(!pool->freeList || (unsigned int)((void *)pool->freeList - (void *)pool->currentPage) < _OFBulkBlockPageSize); #ifdef OF_BULK_BLOCK_POOL_AGGRESSIVE_ASSERTIONS OBPOSTCONDITION(OFBulkBlockPoolCheckFreeLists(pool)); #endif return block; } static inline OFBulkBlockPool *OFBulkBlockPoolForBlock(void *block) // Returns the bulk block pool for the given block which must have been allocated with OFBulkBlockPoolAllocate() (and not have been deallocated yet). { OFBulkBlockPage *page; OFBulkBlockPool *pool; OmniFoundation_PRIVATE_EXTERN unsigned int _OFBulkBlockPageSize; page = (OFBulkBlockPage *)((unsigned int)block & ~(_OFBulkBlockPageSize-1)); pool = page->pool; return pool; } static inline void OFBulkBlockPoolDeallocate(void *block) { OFBulkBlockPage *page; OFBulkBlockPool *pool; OmniFoundation_PRIVATE_EXTERN unsigned int _OFBulkBlockPageSize; page = (OFBulkBlockPage *)((unsigned int)block & ~(_OFBulkBlockPageSize-1)); pool = page->pool; #ifdef OF_BULK_BLOCK_POOL_AGGRESSIVE_ASSERTIONS OBASSERT(OFBulkBlockPoolCheckFreeLists(pool)); #endif if (page == pool->currentPage) { // Either the free list should be empty or it should point to something in the current page OBASSERT(!pool->freeList || (unsigned int)((void *)pool->freeList - (void *)pool->currentPage) < _OFBulkBlockPageSize); // Update our local cached freeList *(void **)block = pool->freeList; pool->freeList = block; // Either the free list should be empty or it should point to something in the current page OBPOSTCONDITION(!pool->freeList || (unsigned int)((void *)pool->freeList - (void *)pool->currentPage) < _OFBulkBlockPageSize); } else { // Either the free list should be empty or it should point to something in the current page OBASSERT(!page->freeList || (unsigned int)((void *)page->freeList - (void *)page) < _OFBulkBlockPageSize); // Update the freeList on the appropriate page *(void **)block = page->freeList; page->freeList = block; // Either the free list should be empty or it should point to something in the current page OBPOSTCONDITION(!page->freeList || (unsigned int)((void *)page->freeList - (void *)page) < _OFBulkBlockPageSize); } #ifdef OF_BULK_BLOCK_POOL_AGGRESSIVE_ASSERTIONS OBPOSTCONDITION(OFBulkBlockPoolCheckFreeLists(pool)); #endif } // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFBundledClass.h,v 1.13 2003/01/15 22:51:48 kc Exp $ #import @class NSArray, NSBundle, NSMutableArray; @interface OFBundledClass : OFObject { Class bundleClass; NSString *className; NSBundle *bundle; NSDictionary *descriptionDictionary; NSMutableArray *dependencyClassNames; NSMutableArray *modifyingBundledClasses; BOOL loaded; } + (Class)classNamed:(NSString *)aClassName; + (NSBundle *)bundleForClassNamed:(NSString *)aClassName; + (OFBundledClass *)bundledClassNamed:(NSString *)aClassName; + (OFBundledClass *)createBundledClassWithName:(NSString *)aClassName bundle:(NSBundle *)aBundle description:(NSDictionary *)aDescription; + (NSString *)didLoadNotification; + (void)processImmediateLoadClasses; // Access methods - (NSString *)className; - (Class)bundledClass; - (NSBundle *)bundle; - (NSDictionary *) descriptionDictionary; - (NSArray *)dependencyClassNames; - (NSArray *)modifyingBundledClasses; // Actions - (void)loadBundledClass; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFBundleRegistry.h,v 1.14 2003/01/15 22:51:48 kc Exp $ // OFBundleRegistry searches for loadable bundles, then processes the OFRegistrations for all software components (i.e. frameworks, the application, and any loadable bundles). #import @class NSArray, NSBundle; extern NSString *OFBundleRegistryDisabledBundlesDefaultsKey; extern NSString *OFBundleRegistryChangedNotificationName; @interface OFBundleRegistry : OFObject { } + (NSDictionary *)softwareVersionDictionary; // Returns a dictionary of the registered software versions + (NSArray *)knownBundles; // Returns the known bundle descriptions (see comments in the implementation for details) + (void)noteAdditionalBundles:(NSArray *)additionalBundles owner:bundleOwner; // Objects that maintain bundles or plugins that are not known to OFBundleRegistry can note their descriptions here and they will be included in +knownBundles @end // OFBundleRegistryTarget informal protocol @interface NSObject (OFBundleRegistryTarget) + (void)registerItemName:(NSString *)itemName bundle:(NSBundle *)bundle description:(NSDictionary *)description; @end // Copyright 2000-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFByte.h,v 1.6 2003/01/15 22:51:53 kc Exp $ /*" "OFByte" is a common basic type which we use throughout our frameworks. $_{}\@ "*/ typedef unsigned char OFByte; // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFByteOrder.h,v 1.14 2003/07/08 15:46:40 bungi Exp $ #import typedef enum _NSByteOrder OFByteOrder; // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFByteSet.h,v 1.11 2003/01/15 22:51:53 kc Exp $ #import @class NSData; #import // For unichar and NSStringEncoding #import #define OFByteSetBitmapRepLength ((1 << 8) >> 3) @interface OFByteSet : OFObject { @public OFByte bitmapRep[OFByteSetBitmapRepLength]; } - (BOOL)byteIsMember:(OFByte)aByte; - (void)addByte:(OFByte)aByte; - (void)removeByte:(OFByte)aByte; - (void)addAllBytes; - (void)removeAllBytes; - (void)addBytesFromData:(NSData *)data; - (void)addBytesFromString:(NSString *)string encoding:(NSStringEncoding)encoding; - (void)removeBytesFromData:(NSData *)data; - (void)removeBytesFromString:(NSString *)string encoding:(NSStringEncoding)encoding; - (NSData *)data; - (NSString *)stringUsingEncoding:(NSStringEncoding)encoding; @end @interface OFByteSet (PredefinedSets) + (OFByteSet *)whitespaceByteSet; @end static inline BOOL isByteInByteSet(OFByte aByte, OFByteSet *byteSet) { return byteSet->bitmapRep[aByte >> 3] & (((unsigned)1) << (aByte & 7)); } static inline BOOL isCharacterInByteSet(unichar ch, OFByteSet *byteSet) { if (ch & 0xff00) return NO; return isByteInByteSet(ch, byteSet); } static inline void addByteToByteSet(OFByte aByte, OFByteSet *byteSet) { byteSet->bitmapRep[aByte >> 3] |= (((unsigned)1) << (aByte & 7)); } static inline void removeByteFromByteSet(OFByte aByte, OFByteSet *byteSet) { byteSet->bitmapRep[aByte >> 3] &= ~(((unsigned)1) << (aByte & 7)); } // Copyright 2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/FileManagement.subproj/OFCacheFile.h,v 1.1 2003/02/18 22:30:18 wiml Exp $ #import #import #import @class NSData, NSString; @interface OFCacheFile : OFObject { NSString *filename; NSData *contentData; struct { unsigned int contentDataIsValid: 1; unsigned int contentDataIsDirty: 1; } flags; } // API + (OFCacheFile *)cacheFileNamed:(NSString *)aName; + (OFCacheFile *)cacheFileNamed:(NSString *)aName inDirectory:(NSString *)cacheFileDirectory; + (NSString *)applicationSupportPath; - (NSString *)filename; - (NSData *)contentData; - (void)setContentData:(NSData *)newData; - (id)propertyList; - (void)setPropertyList:newPlist; // You must call this method in order to write any changes back to disk. // If a failure occurs, the OFCacheFile remains "dirty". Currently there's no way to check whether it's dirty, but if you want one, you know how to add it. - (void)writeIfNecessary; // TODO: Allow writes to occur automatically when the cache is modified. // - (void)setWritesAfterDelay:(NSTimeInterval)autoWriteDelay; /* TODO: Allow to configure contention mechanisms: no locking (the current behavior) atomic writes / last-change-wins lockfiles, etc. */ /* TODO: Allow to set the attributes of the file on disk (e.g. permissions) */ @end // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Formatters.subproj/OFCapitalizeFormatter.h,v 1.6 2003/01/15 22:51:57 kc Exp $ #import @interface OFCapitalizeFormatter : OFSimpleStringFormatter { } @end // Copyright 2002-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/CoreFoundationExtensions/OFCFCallbacks.h,v 1.2 2003/01/15 22:51:52 kc Exp $ #import // Callbacks for NSObjects extern const void *OFNSObjectRetain(CFAllocatorRef allocator, const void *value); extern void OFNSObjectRelease(CFAllocatorRef allocator, const void *value); CFStringRef OFNSObjectCopyDescription(const void *value); extern Boolean OFNSObjectIsEqual(const void *value1, const void *value2); extern CFHashCode OFNSObjectHash(const void *value1); // Callbacks for CFTypeRefs (should usually be interoperable with NSObject, but not always) extern const void *OFCFTypeRetain(CFAllocatorRef allocator, const void *value); extern void OFCFTypeRelease(CFAllocatorRef allocator, const void *value); extern CFStringRef OFCFTypeCopyDescription(const void *value); extern Boolean OFCFTypeIsEqual(const void *value1, const void *value2); extern CFHashCode OFCFTypeHash(const void *value); // Special purpose callbacks extern CFStringRef OFPointerCopyDescription(const void *ptr); extern CFStringRef OFIntegerCopyDescription(const void *ptr); extern Boolean OFCaseInsensitiveStringIsEqual(const void *value1, const void *value2); extern CFHashCode OFCaseInsensitiveStringHash(const void *value); // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFCharacterScanner.h,v 1.18 2003/01/15 22:51:49 kc Exp $ #import #import // For unichar #import #import @class OFTrie, OFTrieBucket; #define OFMaximumRewindMarks (8) @interface OFCharacterScanner : OFObject { unsigned int rewindMarkOffsets[OFMaximumRewindMarks]; // rewindMarkOffsets[0] is always the earliest mark, by definition unsigned short rewindMarkCount; unsigned int firstNonASCIIOffset; @public unichar *inputBuffer; // A buffer of unichars, in which we are scanning unichar *scanLocation; // Pointer to next unichar unichar *scanEnd; // Pointer to position after end of valid characters unsigned int inputStringPosition; // This is the position (in a possibly notional string buffer) of the first character in inputBuffer BOOL freeInputBuffer; // Whether we should deallocate inputBuffer when we're done with it OFCaseConversionBuffer caseBuffer; } - init; // Designated initializer // - (NSString *)string; /* TODO: Add an interface for guessing encodings, using TECSniffTextEncoding() */ /* Implemented by subclasses */ - (BOOL)fetchMoreData; - (void)_rewindCharacterSource; /* -fetchMoreData should make scanLocation point to a valid character, but should leave the value of (scanLocation -inputBuffer+inputStringPosition) unchanged. If the scan location is past EOF, it should return NO. OFCharacterScanner's implementation returns NO. */ /* -_rewindCharacterSource is called to indicate that the subsequent -fetchMoreData call will be requesting a buffer other than the one immediately following the previous call. It doesn't actually have to do anything. OFCharacterScanner's implementation raises an exception. */ /* Used by subclasses to implement the above */ - (BOOL)fetchMoreDataFromString:(NSString *)inputString; - (BOOL)fetchMoreDataFromCharacters:(unichar *)characters length:(unsigned int)length offset:(unsigned int)offset freeWhenDone:(BOOL)doFreeWhenDone; // #warning the following method is obsolete; remove all references and delete it // - (BOOL)fetchMoreDataFromCharacters:(unichar *)characters length:(unsigned int)length freeWhenDone:(BOOL)doFreeWhenDone; - (unichar)peekCharacter; - (void)skipPeekedCharacter; - (unichar)readCharacter; - (void)setRewindMark; // We only have so much room for marks. In particular, don't try to call this method recursively, it's just not designed for that. // ALWAYS call one of the following to match up with calling the previous, or you'll corrupt the mark array - (void)rewindToMark; - (void)discardRewindMark; - (unsigned int)scanLocation; - (void)setScanLocation:(unsigned int)aLocation; - (void)skipCharacters:(int)anOffset; - (BOOL)hasScannedNonASCII; // returns YES if scanner has passed any non-ASCII characters - (BOOL)scanUpToCharacter:(unichar)aCharacter; - (BOOL)scanUpToCharacterInSet:(NSCharacterSet *)delimiterCharacterSet; - (BOOL)scanUpToString:(NSString *)delimiterString; - (BOOL)scanUpToStringCaseInsensitive:(NSString *)delimiterString; // NB: Most delimited-token-reading functions will return nil if there is a zero-length token. - (NSString *)readTokenFragmentWithDelimiterCharacter:(unichar)character; - (NSString *)readTokenFragmentWithDelimiterOFCharacterSet:(OFCharacterSet *)delimiterOFCharacterSet; - (NSString *)readTokenFragmentWithDelimiters:(NSCharacterSet *)delimiterSet; - (NSString *)readFullTokenWithDelimiterOFCharacterSet:(OFCharacterSet *)delimiterOFCharacterSet forceLowercase:(BOOL)forceLowercase; - (NSString *)readFullTokenWithDelimiterOFCharacterSet:(OFCharacterSet *)delimiterOFCharacterSet; - (NSString *)readFullTokenWithDelimiterCharacter:(unichar)delimiterCharacter forceLowercase:(BOOL)forceLowercase; - (NSString *)readFullTokenWithDelimiterCharacter:(unichar)delimiterCharacter; - (NSString *)readFullTokenWithDelimiters:(NSCharacterSet *)delimiterCharacterSet forceLowercase:(BOOL)forceLowercase; - (NSString *)readFullTokenOfSet:(NSCharacterSet *)tokenSet; - (NSString *)readFullTokenUpToString:(NSString *)delimiterString; // Relatively slow! Inverts tokenSet and calls -readFullTokenWithDelimiters: - (NSString *)readLine; - (NSString *)readCharacterCount:(unsigned int)count; - (unsigned int)scanHexadecimalNumberMaximumDigits:(unsigned int)maximumDigits; - (unsigned int)scanUnsignedIntegerMaximumDigits:(unsigned int)maximumDigits; - (int)scanIntegerMaximumDigits:(unsigned int)maximumDigits; - (BOOL)scanDouble:(double *)outValue maximumLength:(unsigned int)maximumLength exponentLength:(unsigned int)maximumExponentLength; - (BOOL)scanString:(NSString *)string peek:(BOOL)doPeek; - (BOOL)scanStringCaseInsensitive:(NSString *)string peek:(BOOL)doPeek; - (OFTrieBucket *)readLongestTrieElement:(OFTrie *)trie; - (OFTrieBucket *)readLongestTrieElement:(OFTrie *)trie delimiterOFCharacterSet:(OFCharacterSet *)delimiterOFCharacterSet; - (OFTrieBucket *)readShortestTrieElement:(OFTrie *)trie; @end #import // For OBPRECONDITION #import "FrameworkDefines.h" // For OmniFoundation_EXTERN // Here's a list of the inline functions: // // BOOL scannerHasData(OFCharacterScanner *scanner); // unsigned int scannerScanLocation(OFCharacterScanner *scanner); // unichar scannerPeekCharacter(OFCharacterScanner *scanner); // void scannerSkipPeekedCharacter(OFCharacterScanner *scanner); // unichar scannerReadCharacter(OFCharacterScanner *scanner); // BOOL scannerScanUpToCharacter(OFCharacterScanner *scanner, unichar scanCharacter); // BOOL scannerScanUpToCharacterInOFCharacterSet(OFCharacterScanner *scanner, OFCharacterSet *delimiterBitmapRep); // BOOL scannerScanUpToCharacterNotInOFCharacterSet(OFCharacterScanner *scanner, OFCharacterSet *memberBitmapRep) // BOOL scannerScanUpToCharacterInSet(OFCharacterScanner *scanner, NSCharacterSet *delimiterCharacterSet); // OmniFoundation_EXTERN const unichar OFCharacterScannerEndOfDataCharacter; // This character is returned when a scanner is asked for a character past the end of its input. (For backwards compatibility with earlier versions of OFCharacterScanner, this is currently '\0'--but you shouldn't rely on that behavior.) static inline BOOL scannerHasData(OFCharacterScanner *scanner) { return scanner->scanLocation < scanner->scanEnd || [scanner fetchMoreData]; } static inline unsigned int scannerScanLocation(OFCharacterScanner *scanner) { if (!scannerHasData(scanner)) { // Don't return an offset which is longer than our input. scanner->scanLocation = scanner->scanEnd; } return scanner->inputStringPosition + (scanner->scanLocation - scanner->inputBuffer); } static inline unichar scannerPeekCharacter(OFCharacterScanner *scanner) { if (!scannerHasData(scanner)) return OFCharacterScannerEndOfDataCharacter; return *scanner->scanLocation; } static inline void scannerSkipPeekedCharacter(OFCharacterScanner *scanner) { // NOTE: It's OK for scanLocation to go past scanEnd scanner->scanLocation++; } static inline unichar scannerReadCharacter(OFCharacterScanner *scanner) { unichar character; if (!scannerHasData(scanner)) return OFCharacterScannerEndOfDataCharacter; character = *scanner->scanLocation; scannerSkipPeekedCharacter(scanner); return character; } static inline BOOL scannerScanUpToCharacter(OFCharacterScanner *scanner, unichar scanCharacter) { while (scannerHasData(scanner)) { while (scanner->scanLocation < scanner->scanEnd) { if (*scanner->scanLocation == scanCharacter) return YES; scanner->scanLocation++; } } return NO; } static inline BOOL scannerScanUntilNotCharacter(OFCharacterScanner *scanner, unichar scanCharacter) { while (scannerHasData(scanner)) { while (scanner->scanLocation < scanner->scanEnd) { if (*scanner->scanLocation != scanCharacter) return YES; scanner->scanLocation++; } } return NO; } static inline BOOL scannerScanUpToCharacterInOFCharacterSet(OFCharacterScanner *scanner, OFCharacterSet *delimiterBitmapRep) { while (scannerHasData(scanner)) { while (scanner->scanLocation < scanner->scanEnd) { if (OFCharacterSetHasMember(delimiterBitmapRep, *scanner->scanLocation)) return YES; scanner->scanLocation++; } } return NO; } static inline BOOL scannerScanUpToCharacterNotInOFCharacterSet(OFCharacterScanner *scanner, OFCharacterSet *memberBitmapRep) { while (scannerHasData(scanner)) { while (scanner->scanLocation < scanner->scanEnd) { if (!OFCharacterSetHasMember(memberBitmapRep, *scanner->scanLocation)) return YES; scanner->scanLocation++; } } return NO; } static inline BOOL scannerScanUpToCharacterInSet(OFCharacterScanner *scanner, NSCharacterSet *delimiterCharacterSet) { OFCharacterSet *delimiterOFCharacterSet; if (!scannerHasData(scanner)) return NO; delimiterOFCharacterSet = [[[OFCharacterSet alloc] initWithCharacterSet:delimiterCharacterSet] autorelease]; return scannerScanUpToCharacterInOFCharacterSet(scanner, delimiterOFCharacterSet); } static inline BOOL scannerPeekString(OFCharacterScanner *scanner, NSString *string) { return [scanner scanString:string peek:YES]; } static inline BOOL scannerReadString(OFCharacterScanner *scanner, NSString *string) { return [scanner scanString:string peek:NO]; } // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFCharacterSet.h,v 1.7 2003/01/15 22:51:53 kc Exp $ #import @class NSCharacterSet; #import // For unichar #import #define OFCharacterSetBitmapRepLength ((1 << 16) >> 3) @interface OFCharacterSet : OFObject { @public OFByte bitmapRep[OFCharacterSetBitmapRepLength]; } + (OFCharacterSet *)characterSetWithString:(NSString *)string; + (OFCharacterSet *)whitespaceOFCharacterSet; // - initWithCharacterSet:(NSCharacterSet *)characterSet; - initWithOFCharacterSet:(OFCharacterSet *)ofCharacterSet; - initWithString:(NSString *)string; // API - (BOOL)characterIsMember:(unichar)character; - (void)addCharacter:(unichar)character; - (void)removeCharacter:(unichar)character; - (void)addCharactersInRange:(NSRange)characterRange; - (void)removeCharactersInRange:(NSRange)characterRange; - (void)addCharactersFromOFCharacterSet:(OFCharacterSet *)ofCharacterSet; - (void)removeCharactersFromOFCharacterSet:(OFCharacterSet *)ofCharacterSet; - (void)addCharactersFromCharacterSet:(NSCharacterSet *)characterSet; - (void)removeCharactersFromCharacterSet:(NSCharacterSet *)characterSet; - (void)addCharactersInString:(NSString *)string; - (void)removeCharactersInString:(NSString *)string; - (void)addAllCharacters; - (void)removeAllCharacters; - (void)invert; @end static inline BOOL OFCharacterSetHasMember(OFCharacterSet *unicharSet, unichar character) { return unicharSet->bitmapRep[character >> 3] & (((unsigned)1) << (character & 7)); } static inline void OFCharacterSetAddCharacter(OFCharacterSet *unicharSet, unichar character) { unicharSet->bitmapRep[character >> 3] |= (((unsigned)1) << (character & 7)); } static inline void OFCharacterSetRemoveCharacter(OFCharacterSet *unicharSet, unichar character) { unicharSet->bitmapRep[character >> 3] &= ~(((unsigned)1) << (character & 7)); } // Copyright 2001-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFClobberDetectionZone.h,v 1.3 2003/01/15 22:51:53 kc Exp $ #import extern malloc_zone_t *OFClobberDetectionZoneCreate(); extern void OFUseClobberDetectionZoneAsDefaultZone(); // Copyright 2000-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/CoreServicesExtensions/OFCodeFragment.h,v 1.3 2003/01/15 22:51:52 kc Exp $ #import #import // For CFragConnectionID, Ptr #import #import #import @interface OFCodeFragment : OFObject { NSString *path; CFragConnectionID connectionID; Ptr mainAddress; OFSimpleLockType lock; OFBulkBlockPool locked_functionBlockPool; NSMapTable *locked_functionTable; NSArray *locked_symbolNames; } - initWithContentsOfFile: (NSString *) aPath; - (NSString *) path; - (NSArray *) symbolNames; - (void (*)()) mainAddress; - (void (*)()) functionNamed: (NSString *) symbolName; - (void (*)()) wrapperFunctionForCFMTVector: (void *) tvector; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Locks.subproj/OFCondition.h,v 1.5 2003/01/15 22:51:58 kc Exp $ #import @class NSConditionLock; @interface OFCondition : OFObject { NSConditionLock *lock; struct { unsigned int cleared:1; } flags; } - init; - (void)waitForCondition; - (void)signalCondition; - (void)broadcastCondition; - (void)clearCondition; @end // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFController.h,v 1.7 2003/01/15 22:51:49 kc Exp $ #import @class NSMutableArray, NSNotification; typedef enum _OFControllerStatus { OFControllerNotInitializedStatus, OFControllerInitializedStatus, OFControllerRunningStatus, OFControllerRequestingTerminateStatus, OFControllerTerminatingStatus } OFControllerStatus; #import @interface OFController : OFObject { OFControllerStatus status; NSMutableArray *observers; } + (id)sharedController; - (OFControllerStatus)status; - (void)addObserver:(id )observer; - (void)removeObserver:(id )observer; - (void)didInitialize; - (void)startedRunning; - (BOOL)requestTermination; - (void)cancelTermination; - (void)willTerminate; @end @interface NSObject (OFControllerObserver) /*" The OFControllerObserver informal protocol describes the methods that will be called on an object if it subscribes to OFController notifications by calling -addObserver: on OFController. */ - (void)controllerDidInitialize:(OFController *)controller; /*" Called when -[OFController didInitialize] is called. This notification is for setting up a class (reading defaults, etc.). At this point it shouldn't rely on any other classes (except OFUserDefaults) being set up yet. "*/ - (void)controllerStartedRunning:(OFController *)controller; /*" Called when -[OFController startedRunning] is called. This notification is for resetting the state of a class to the way it was when the user last left the program: for instance, popping up a window that was open. "*/ - (void)controllerRequestsTerminate:(OFController *)controller; /*" Called when -[OFController requestTermination] is called. This notification gives objects an opportunity to save documents, etc., when an application is considering terminating. If the application does not wish to terminate (maybe the user cancelled the terminate request), it should call -cancelTermination on the OFController. "*/ - (void)controllerWillTerminate:(OFController *)controller; /*" Called when -[OFController willTerminate] is called. This notification is posted by the OFController just before the application terminates, when there's no chance that the termination will be cancelled). This may be used to wait for a particular activity (e.g. an asynchronous document save) before the application finally terminates. "*/ @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFDataBuffer.h,v 1.23 2003/05/15 15:13:16 bungi Exp $ #import #import #import #import #import #import #import #import #import #import #import #import #import typedef struct { /*" The full contents of the buffer "*/ NSMutableData *data; /*" The current pointer of the data object "*/ OFByte *buffer; /*" The current start of the writable area "*/ OFByte *writeStart; /*" The end of the buffer (buffer + bufferSize) "*/ OFByte *bufferEnd; /*" The endianness in which to write host data types "*/ OFByteOrder byteOrder; } OFDataBuffer; static inline void OFDataBufferInit(OFDataBuffer *dataBuffer) { dataBuffer->data = [[NSMutableData alloc] init]; dataBuffer->buffer = NULL; dataBuffer->writeStart = NULL; dataBuffer->bufferEnd = NULL; dataBuffer->byteOrder = NS_UnknownByteOrder; } static inline void OFDataBufferRelease(OFDataBuffer *dataBuffer) { [dataBuffer->data release]; dataBuffer->data = nil; dataBuffer->buffer = NULL; dataBuffer->writeStart = NULL; dataBuffer->bufferEnd = NULL; dataBuffer->byteOrder = NS_UnknownByteOrder; } static inline size_t OFDataBufferSpaceOccupied(OFDataBuffer *dataBuffer) { return dataBuffer->writeStart - dataBuffer->buffer; } static inline size_t OFDataBufferSpaceAvailable(OFDataBuffer *dataBuffer) { return dataBuffer->bufferEnd - dataBuffer->writeStart; } static inline size_t OFDataBufferSpaceCapacity(OFDataBuffer *dataBuffer) { return dataBuffer->bufferEnd - dataBuffer->buffer; } static inline void OFDataBufferSetCapacity(OFDataBuffer *dataBuffer, size_t capacity) { size_t occupied; occupied = OFDataBufferSpaceOccupied(dataBuffer); [dataBuffer->data setLength: capacity]; dataBuffer->buffer = [dataBuffer->data mutableBytes]; dataBuffer->writeStart = dataBuffer->buffer + occupied; dataBuffer->bufferEnd = dataBuffer->buffer + capacity; } static inline void OFDataBufferSizeToFit(OFDataBuffer *dataBuffer) { OFDataBufferSetCapacity(dataBuffer, OFDataBufferSpaceOccupied(dataBuffer)); } static inline NSData * OFDataBufferData(OFDataBuffer *dataBuffer) { // For backwards compatibility (and just doing what the caller expects) // this must size the buffer to the expected size. OFDataBufferSizeToFit(dataBuffer); return dataBuffer->data; } // Backwards compatibility static inline void OFDataBufferFlush(OFDataBuffer *dataBuffer) { OFDataBufferSizeToFit(dataBuffer); } static inline OFByte * OFDataBufferGetPointer(OFDataBuffer *dataBuffer, size_t spaceNeeded) { size_t newSize; size_t occupied; if (OFDataBufferSpaceAvailable(dataBuffer) >= spaceNeeded) return dataBuffer->writeStart; // Otherwise, we have to grow the internal data and reset all our pointers occupied = OFDataBufferSpaceOccupied(dataBuffer); newSize = 2 * OFDataBufferSpaceCapacity(dataBuffer); if (newSize < occupied + spaceNeeded) newSize = 2 * (occupied + spaceNeeded); OFDataBufferSetCapacity(dataBuffer, newSize); return dataBuffer->writeStart; } static inline void OFDataBufferDidAppend(OFDataBuffer *dataBuffer, size_t spaceUsed) { OBPRECONDITION(spaceUsed <= OFDataBufferSpaceAvailable(dataBuffer)); dataBuffer->writeStart += spaceUsed; } static inline char OFDataBufferHexCharacterForDigit(int digit) { if (digit < 10) return digit + '0'; else return digit + 'a' - 10; } static inline void OFDataBufferAppendByte(OFDataBuffer *dataBuffer, OFByte aByte) { OFByte *ptr; ptr = OFDataBufferGetPointer(dataBuffer, sizeof(OFByte)); *ptr = aByte; OFDataBufferDidAppend(dataBuffer, sizeof(OFByte)); } static inline void OFDataBufferAppendHexForByte(OFDataBuffer *dataBuffer, OFByte aByte) { OFByte *ptr; ptr = OFDataBufferGetPointer(dataBuffer, 2 *sizeof(OFByte)); ptr[0] = OFDataBufferHexCharacterForDigit((aByte & 0xf0) >> 4); ptr[1] = OFDataBufferHexCharacterForDigit(aByte & 0x0f); OFDataBufferDidAppend(dataBuffer, 2 * sizeof(OFByte)); } static inline void OFDataBufferAppendCString(OFDataBuffer *dataBuffer, const char *cString) { const char *characterPtr; for (characterPtr = cString; *characterPtr; characterPtr++) OFDataBufferAppendByte(dataBuffer, *characterPtr); } static inline void OFDataBufferAppendBytes(OFDataBuffer *dataBuffer, const OFByte *bytes, unsigned int length) { OFByte *ptr; unsigned int byteIndex; ptr = OFDataBufferGetPointer(dataBuffer, length); // The compiler is smart enough to optimize this for (byteIndex = 0; byteIndex < length; byteIndex++) ptr[byteIndex] = bytes[byteIndex]; OFDataBufferDidAppend(dataBuffer, length); } #define OFDataBufferSwapBytes(value, swapType) \ switch (dataBuffer->byteOrder) { \ case NS_UnknownByteOrder: \ break; \ case NS_LittleEndian: \ value = NSSwapHost ## swapType ## ToLittle(value); \ break; \ case NS_BigEndian: \ value = NSSwapHost ## swapType ## ToBig(value); \ break; \ } #define OFDataBufferAppendOfType(cType, nameType, swapType) \ static inline void OFDataBufferAppend ## nameType \ (OFDataBuffer *dataBuffer, cType value) \ { \ OFDataBufferSwapBytes(value, swapType); \ OFDataBufferAppendBytes(dataBuffer, (void *)&value, sizeof(cType)); \ } OFDataBufferAppendOfType(long int, LongInt, Long) OFDataBufferAppendOfType(short int, ShortInt, Short) OFDataBufferAppendOfType(unichar, Unichar, Short) OFDataBufferAppendOfType(long long int, LongLongInt, LongLong) #undef OFDataBufferAppendOfType #undef OFDataBufferSwapBytes static inline void OFDataBufferAppendFloat(OFDataBuffer *dataBuffer, float value) { NSSwappedFloat swappedValue; switch (dataBuffer->byteOrder) { case NS_UnknownByteOrder: swappedValue = NSConvertHostFloatToSwapped(value); break; case NS_LittleEndian: swappedValue = NSSwapHostFloatToLittle(value); break; case NS_BigEndian: swappedValue = NSSwapHostFloatToBig(value); break; } OFDataBufferAppendBytes(dataBuffer, (void *)&swappedValue, sizeof(float)); } static inline void OFDataBufferAppendDouble(OFDataBuffer *dataBuffer, double value) { NSSwappedDouble swappedValue; switch (dataBuffer->byteOrder) { case NS_UnknownByteOrder: swappedValue = NSConvertHostDoubleToSwapped(value); break; case NS_LittleEndian: swappedValue = NSSwapHostDoubleToLittle(value); break; case NS_BigEndian: swappedValue = NSSwapHostDoubleToBig(value); break; } OFDataBufferAppendBytes(dataBuffer, (const void *)&swappedValue, sizeof(double)); } #define OF_COMPRESSED_INT_BITS_OF_DATA 7 #define OF_COMPRESSED_INT_CONTINUE_MASK 0x80 #define OF_COMPRESSED_INT_DATA_MASK 0x7f static inline void OFDataBufferAppendCompressedLongInt(OFDataBuffer *dataBuffer, unsigned long int value) { do { OFByte sevenBitsPlusContinueFlag = 0; sevenBitsPlusContinueFlag = value & OF_COMPRESSED_INT_DATA_MASK; value >>= OF_COMPRESSED_INT_BITS_OF_DATA; if (value != 0) sevenBitsPlusContinueFlag |= OF_COMPRESSED_INT_CONTINUE_MASK; OFDataBufferAppendByte(dataBuffer, sevenBitsPlusContinueFlag); } while (value != 0); } static inline void OFDataBufferAppendCompressedLongLongInt(OFDataBuffer *dataBuffer, unsigned long long int value) { do { OFByte sevenBitsPlusContinueFlag = 0; sevenBitsPlusContinueFlag = value & OF_COMPRESSED_INT_DATA_MASK; value >>= OF_COMPRESSED_INT_BITS_OF_DATA; if (value != 0) sevenBitsPlusContinueFlag |= OF_COMPRESSED_INT_CONTINUE_MASK; OFDataBufferAppendByte(dataBuffer, sevenBitsPlusContinueFlag); } while (value != 0); } static inline void OFDataBufferAppendHexWithReturnsForBytes(OFDataBuffer *dataBuffer, const OFByte *bytes, unsigned int length) { unsigned int byteIndex; byteIndex = 0; while (byteIndex < length) { OFDataBufferAppendHexForByte(dataBuffer, bytes[byteIndex]); byteIndex++; if ((byteIndex % 40) == 0) OFDataBufferAppendByte(dataBuffer, '\n'); } } static inline void OFDataBufferAppendInteger(OFDataBuffer *dataBuffer, int integer) { int divisor; if (integer < 0) { integer *= -1; OFDataBufferAppendByte(dataBuffer, '-'); } divisor = log10(integer); if (divisor < 0) divisor = 0; divisor = pow(10, divisor); while (1) { OFDataBufferAppendByte(dataBuffer, (integer / divisor) + '0'); if (divisor <= 1) break; integer %= divisor; divisor /= 10; } } static inline void OFDataBufferAppendData(OFDataBuffer *dataBuffer, NSData *data) { OFDataBufferAppendBytes(dataBuffer, (const OFByte *)[data bytes], [data length]); } static inline void OFDataBufferAppendHexWithReturnsForData(OFDataBuffer *dataBuffer, NSData *data) { OFDataBufferAppendHexWithReturnsForBytes(dataBuffer, (const OFByte *)[data bytes], [data length]); } static inline void OFDataBufferAppendString(OFDataBuffer *dataBuffer, CFStringRef string, CFStringEncoding encoding) { OFByte *ptr; CFIndex characterCount, index, usedBufLen; OBPRECONDITION(string); characterCount = CFStringGetLength(string); // In UTF-8, characters can take up to 4 bytes. We'll assume the worst case here. ptr = OFDataBufferGetPointer(dataBuffer, 4 * characterCount); index = CFStringGetBytes(string, CFRangeMake(0, characterCount), encoding, 0/*lossByte*/, false/*isExternalRepresentation*/, ptr, 4 * characterCount, &usedBufLen); if (index != characterCount) { [NSException raise: NSInternalInconsistencyException format: @"OFDataBufferAppendString was supposed to write %d characters but only wrote %d", characterCount, index]; } OFDataBufferDidAppend(dataBuffer, usedBufLen); } static inline void OFDataBufferAppendBytecountedUTF8String(OFDataBuffer *dataBuffer, OFDataBuffer *scratchBuffer, CFStringRef string) { UInt8 *bytePointer; CFIndex charactersWritten, stringLength, maximumLength, stringLengthInBuffer; stringLength = CFStringGetLength(string); maximumLength = 4 * stringLength; // In UTF-8, characters can take up to 4 bytes. We'll assume the worst case here. bytePointer = OFDataBufferGetPointer(scratchBuffer, maximumLength); charactersWritten = CFStringGetBytes(string, CFRangeMake(0, stringLength), kCFStringEncodingUTF8, 0/*lossByte*/, false/*isExternalRepresentation*/, bytePointer, maximumLength, &stringLengthInBuffer); if (charactersWritten != stringLength) [NSException raise: NSInternalInconsistencyException format: @"OFDataBufferAppendBytecountedUTF8String was supposed to write %d characters but only wrote %d", stringLength, charactersWritten]; OFDataBufferAppendCompressedLongInt(dataBuffer, stringLengthInBuffer); OFDataBufferAppendBytes(dataBuffer, bytePointer, stringLengthInBuffer); } static inline void OFDataBufferAppendUnicodeString(OFDataBuffer *dataBuffer, CFStringRef string) { OFByte *ptr; CFIndex characterCount, index, usedBufLen; characterCount = CFStringGetLength(string); ptr = OFDataBufferGetPointer(dataBuffer, sizeof(unichar) * characterCount); index = CFStringGetBytes(string, CFRangeMake(0, characterCount), kCFStringEncodingUnicode, 0/*lossByte*/, false/*isExternalRepresentation*/, ptr, sizeof(unichar) * characterCount, &usedBufLen); if (index != characterCount) { [NSException raise: NSInternalInconsistencyException format: @"OFDataBufferAppendUnicodeString was supposed to write %d characters but only wrote %d", characterCount, index]; } OFDataBufferDidAppend(dataBuffer, usedBufLen); } static inline void OFDataBufferAppendUnicodeByteOrderMark(OFDataBuffer *dataBuffer) { unichar BOM = 0xFEFF; /* zero width non breaking space a.k.a. byte-order mark */ // We don't use OFDataBufferAppendUnichar() here because that will byteswap the value, and the point of this routine is to indicate the byteorder of a buffer we're writing to with OFDataBufferAppendUnicodeString(), which does *not* byteswap. OFDataBufferAppendBytes(dataBuffer, (const OFByte *)&BOM, sizeof(BOM)); } // // XML Support // OmniFoundation_EXTERN void OFDataBufferAppendXMLQuotedString(OFDataBuffer *dataBuffer, CFStringRef string); // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFDataCursor.h,v 1.15 2003/01/15 22:51:53 kc Exp $ #import // OFDataCursor assumes an immutable data object. @class NSData; @class OFByteSet; typedef enum { OFDataCursorSeekFromCurrent, OFDataCursorSeekFromEnd, OFDataCursorSeekFromStart } OFDataCursorSeekPosition; #import // For NSStringEncoding #import #import @interface OFDataCursor : OFObject { NSData *data; OFByteOrder byteOrder; NSStringEncoding stringEncoding; unsigned int dataLength; const OFByte *startPosition, *endPosition; const OFByte *currentPosition; } - initWithData:(NSData *)someData; - (void)setByteOrder:(OFByteOrder)newByteOrder; - (OFByteOrder)byteOrder; - (BOOL)hasMoreData; - (unsigned int)seekToOffset:(int)offset fromPosition:(OFDataCursorSeekPosition)position; - (unsigned int)currentOffset; - (void)rewind; - (void)readBytes:(unsigned int)byteCount intoBuffer:(void *)buffer; - (void)peekBytes:(unsigned int)byteCount intoBuffer:(void *)buffer; - (void)skipBytes:(unsigned int)byteCount; - (unsigned int)readMaximumBytes:(unsigned int)byteCount intoBuffer:(void *)buffer; - (unsigned int)peekMaximumBytes:(unsigned int)byteCount intoBuffer:(void *)buffer; - (unsigned int)skipMaximumBytes:(unsigned int)byteCount; - (unsigned int)offsetToByte:(OFByte)aByte; - (unsigned int)offsetToByteInSet:(OFByteSet *)aByteSet; - (long int)readLongInt; - (long int)peekLongInt; - (void)skipLongInt; - (short int)readShortInt; - (short int)peekShortInt; - (void)skipShortInt; - (long long int)readLongLongInt; - (long long int)peekLongLongInt; - (void)skipLongLongInt; - (float)readFloat; - (float)peekFloat; - (void)skipFloat; - (double)readDouble; - (double)peekDouble; - (void)skipDouble; - (OFByte)readByte; - (OFByte)peekByte; - (void)skipByte; - (long int)readCompressedLongInt; - (long int)peekCompressedLongInt; - (void)skipCompressedLongInt; - (long long int)readCompressedLongLongInt; - (long long int)peekCompressedLongLongInt; - (void)skipCompressedLongLongInt; - (NSData *)readDataOfLength:(unsigned int)aLength; - (NSData *)peekDataOfLength:(unsigned int)aLength; - (NSData *)readDataUpToByte:(OFByte)aByte; - (NSData *)peekDataUpToByte:(OFByte)aByte; - (NSData *)readDataUpToByteInSet:(OFByteSet *)aByteSet; - (NSData *)peekDataUpToByteInSet:(OFByteSet *)aByteSet; - (NSString *)readStringOfLength:(unsigned int)aLength; - (NSString *)peekStringOfLength:(unsigned int)aLength; - (NSString *)readStringUpToByte:(OFByte)aByte; - (NSString *)peekStringUpToByte:(OFByte)aByte; - (NSString *)readStringUpToByteInSet:(OFByteSet *)aByteSet; - (NSString *)peekStringUpToByteInSet:(OFByteSet *)aByteSet; - (NSData *)readAllData; - (NSString *)readLine; - (NSString *)peekLine; - (void)skipLine; @end // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFDatedMutableDictionary.h,v 1.12 2003/01/31 18:06:46 andrew Exp $ #import @class NSArray, NSDate; @interface OFDatedMutableDictionary : OFObject { NSMutableDictionary *_dictionary; } - (id)init; - (void)dealloc; - (void)setObject:(id)anObject forKey:(NSString *)aKey; - (id)objectForKey:(NSString *)aKey; - (void)removeObjectForKey:(NSString *)aKey; - (NSDate *)lastAccessForKey:(NSString *)aKey; - (NSArray *)objectsOlderThanDate:(NSDate *)aDate; - (void)removeObjectsOlderThanDate:(NSDate *)aDate; // Debugging - (NSMutableDictionary *)debugDictionary; @end // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Formatters.subproj/OFDateFormatter.h,v 1.5 2003/01/15 22:51:57 kc Exp $ #import @interface OFDateFormatter : NSFormatter { } @end // Copyright 1999-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Scheduling.subproj/OFDedicatedThreadScheduler.h,v 1.5 2003/01/15 22:52:02 kc Exp $ #import @class NSConditionLock, NSLock; @interface OFDedicatedThreadScheduler : OFScheduler { NSConditionLock *scheduleConditionLock; NSConditionLock *mainThreadSynchronizationLock; NSDate *wakeDate; NSLock *wakeDateLock; struct { unsigned int invokesEventsInMainThread:1; } flags; } + (OFDedicatedThreadScheduler *)dedicatedThreadScheduler; - (void)setInvokesEventsInMainThread:(BOOL)shouldInvokeEventsInMainThread; - (void)runScheduleForeverInNewThread; - (void)runScheduleForeverInCurrentThread; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Scheduling.subproj/OFDelayedEvent.h,v 1.4 2003/01/15 22:52:02 kc Exp $ #import #import @class NSLock; @class OFInvocation, OFScheduler, OFScheduledEvent; @interface OFDelayedEvent : OFObject { NSLock *lock; OFInvocation *invocation; NSTimeInterval delayInterval; BOOL fireOnTermination; OFScheduler *scheduler; OFScheduledEvent *scheduledEvent; } - initWithInvocation:(OFInvocation *)anInvocation delayInterval:(NSTimeInterval)aDelayInterval scheduler:(OFScheduler *)aScheduler fireOnTermination:(BOOL)shouldFireOnTermination; - initWithInvocation:(OFInvocation *)anInvocation delayInterval:(NSTimeInterval)aDelayInterval; - initForObject:(id)anObject selector:(SEL)aSelector withObject:(id)aWithObject delayInterval:(NSTimeInterval)aDelayInterval scheduler:(OFScheduler *)aScheduler fireOnTermination:(BOOL)shouldFireOnTermination; - initForObject:(id)anObject selector:(SEL)aSelector withObject:(id)aWithObject delayInterval:(NSTimeInterval)aDelayInterval; - (OFInvocation *)invocation; - (NSTimeInterval)delayInterval; - (OFScheduler *)scheduler; - (BOOL) fireOnTermination; - (BOOL) isPending; - (BOOL) invokeIfPending; - (BOOL) cancelIfPending; - (void) invokeLater; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFDictionaryInitialization.h,v 1.8 2003/01/15 22:51:49 kc Exp $ #import @class NSDictionary; @interface NSObject (DictionaryInitialization) - initWithDictionary:(NSDictionary *)aDict context:(id)context; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/FileManagement.subproj/OFDirectory.h,v 1.9 2003/01/15 22:51:56 kc Exp $ #import @class NSArray; @class NSMutableArray; @class OFFile; @interface OFDirectory : OFObject { NSString *path; NSArray *sortedFiles; } + directoryWithPath:(NSString *)aDirectoryPath; + directoryWithFile:(OFFile *)aFile; - initWithPath:(NSString *)aDirectoryPath; - initWithFile:(OFFile *)aFile; - (NSString *)path; - (NSArray *)files; - (NSArray *)sortedFiles; - (BOOL)containsFileNamed:(NSString *)aName; @end @interface OFMutableDirectory : OFDirectory { NSMutableArray *files; } - (void)setPath:(NSString *)aPath; - (void)setFiles:(NSMutableArray *)someFiles; - (void)addFile:(OFFile *)aFile; @end // Copyright 1999-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DistributedObjects.subproj/OFDistributedNotificationCenter.h,v 1.5 2003/01/15 22:51:56 kc Exp $ #import @class NSConnection, NSDictionary; @interface OFDistributedNotificationCenter : NSObject { id server; } + (OFDistributedNotificationCenter *)defaultCenter; - (void)addObserver:(id)observer selector:(SEL)selector name:(NSString *)name object:(NSString *)object; - (void)postNotificationName:(NSString *)name object:(NSString *)object userInfo:(NSDictionary *)userInfo; - (void)postNotificationName:(NSString *)aName object:(NSString *)anObject; - (void)removeObserver:(id)observer name:(NSString *)aName object:(NSString *)anObject; - (void)removeObserver:(id)observer; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DistributedObjects.subproj/OFDOServer.h,v 1.4 2003/01/15 22:51:56 kc Exp $ #import @class NSConnection, NSDistantObjectRequest; #import @interface OFDOServer : OFObject { id _delegate; NSConnection *_defaultConnection; BOOL _shouldHandleAllInvocations; } // // Server creation methods. Can raise. // + serverWithRegisteredName:(NSString *)name; // Creates and returns an autoreleased instance of OFDOServer. During initialization it registers the server name, and sets the instance to be the root object of the default NSConnection. - initWithRegisteredName:(NSString *)name; // Initializes an allocated OFDOServer. During initialization it registers the server name, and sets the instance to be the root object of the default NSConnection. - (void)dealloc; // // Setting and accessing the delegate. // - (id )delegate; // Returns the delegate. See also: OFDOServerDelegateProtocol.h - (void)setDelegate:(id )delegate; // Sets the delegate. See also: OFDOServerDelegateProtocol.h // // Using the server. // - (void)enableGlobalExceptionHandling; // If global exception handling is enabled, the OFDOServer wraps each message received from a client in an exception handling block. If an exception occurs, it messages the delegate with the exception. The return value from the delegate method determines whether the server continues receiving messages, or terminates. Normally, uncaught exceptions in a DO server are lost in the NSRunLoop. - (void)run; // Calls [[NSRunLoop defaultRunLoop] run], which causes the server to run until killed, waiting for messages from clients. - (NSConnection *)connection; // Returns the NSConnection instance which the server used to register itself. Access to this instance allows you to enable independant conversation queueing, etc. // // NSConnection delegate methods. // - (BOOL)connection:(NSConnection *)connection handleRequest:(NSDistantObjectRequest *)doreq; // OFDOServer becomes the delegate of the default NSConnection, and implements this method, which it uses when global exception handling is enabled. @end #import // // OFDOServer exception names. // OmniFoundation_EXTERN NSString *OFDOServerFailedToRegisterName; // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DistributedObjects.subproj/OFDOServerDelegateProtocol.h,v 1.4 2003/01/15 22:51:56 kc Exp $ #import @class NSException; @protocol OFDOServerDelegateProtocol - (BOOL)terminateFromException:(NSException *)anException; // If global exception handling is enabled, the OFDOServer wraps each message received from a client in an exception handling block. If an exception occurs, it messages the delegate with the exception. The return value from the delegate method determines whether the server continues receiving messages, or terminates. Normally, uncaught exceptions in a DO server are lost in the NSRunLoop. @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFEnrichedTextReader.h,v 1.11 2003/01/15 22:51:49 kc Exp $ #import @class NSData; @class OFDataCursor, OFRTFGenerator; @interface OFEnrichedTextReader : OFObject { OFDataCursor *cursor; OFRTFGenerator *rtfGenerator; BOOL noFill; } + (NSData *)rtfDataFromEnrichedTextCursor:(OFDataCursor *)aCursor; - initWithDataCursor:(OFDataCursor *)aCursor; - (OFRTFGenerator *)rtfGenerator; @end // Copyright 2002-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFEnumNameTable.h,v 1.2 2003/01/15 22:51:53 kc Exp $ #import #import @interface OFEnumNameTable : NSObject { int _defaultEnumValue; CFMutableDictionaryRef _enumToName; CFMutableDictionaryRef _nameToEnum; } - initWithDefaultEnumValue: (int) defaultEnumValue; - (int) defaultEnumValue; - (void) setName: (NSString *) enumName forEnumValue: (int) enumValue; - (NSString *) nameForEnum: (int) enumValue; - (int) enumForName: (NSString *) name; @end // Copyright 1999-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFFastMutableData.h,v 1.5 2003/01/15 22:51:53 kc Exp $ #import @interface OFFastMutableData : NSMutableData { OFFastMutableData *_nextBlock; unsigned int _realLength; void *_realBytes; unsigned int _currentLength; void *_currentBytes; } + (OFFastMutableData *) newFastMutableDataWithLength: (unsigned) length; - (void) fillWithZeros; // NSData methods - (unsigned) length; - (const void *) bytes; // NSMutableData methods - (void *) mutableBytes; - (void) setStartingOffset: (unsigned) offset; - (unsigned) startingOffset; - (void) setLength: (unsigned) length; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/FileManagement.subproj/OFFile.h,v 1.10 2003/01/15 22:51:56 kc Exp $ #import @class NSCalendarDate, NSNumber, NSLock; @class OFDirectory; extern NSLock *fileOpsLock; @interface OFFile : OFObject { OFDirectory *directory; NSString *name; NSString *path; } + fileWithDirectory:(OFDirectory *)aDirectory name:(NSString *)aName; + fileWithPath:(NSString *)aPath; - initWithDirectory:(OFDirectory *)aDirectory name:(NSString *)aName; - initWithPath:(NSString *)aPath; - (NSString *)name; - (NSString *)path; - (BOOL)isDirectory; - (BOOL)isShortcut; - (NSNumber *)size; - (NSCalendarDate *)lastChanged; @end @interface OFMutableFile : OFFile { struct { unsigned int isDirectory:1; unsigned int isShortcut:1; } flags; NSNumber *size; NSCalendarDate *lastChanged; } - (void)setIsDirectory:(BOOL)shouldBeDirectory; - (void)setIsShortcut:(BOOL)shouldBeShortcut; - (void)setSize:(NSNumber *)aSize; - (void)setLastChanged:(NSCalendarDate *)aDate; - (void)setPath:(NSString *)aPath; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFForwardObject.h,v 1.9 2003/01/15 22:51:50 kc Exp $ #import @class NSInvocation; // // OFForwardObject simply turns calls to forward:: into calls to forwardInvocation: It implements forwardInvocation: to raise an exception, so subclasses must implement a version of their own. // // Note: This doesn't implement methodSignatureForSelector:which is necessary. this could probably be added later, but all the current subclasses of this have their own special implementations anyway. // @class NSInvocation; #import /* For marg_list */ @interface OFForwardObject : OFRetainableObject { } - forward:(SEL)sel :(marg_list)args; - (void)forwardInvocation:(NSInvocation *)invocation; @end // Copyright 2002-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFGeometry.h,v 1.5 2003/08/15 19:37:34 wiml Exp $ #import #import OmniFoundation_EXTERN NSPoint OFCenterOfCircleFromThreePoints(NSPoint point1, NSPoint point2, NSPoint point3); OmniFoundation_EXTERN NSRect OFRectFromPoints(NSPoint point1, NSPoint point2); /*" Returns a rect constrained to lie within boundary. This differs from NSIntersectionRect() in that it will adjust the rectangle's origin in order to place it within the boundary rectangle, and will only reduce the rectangle's size if necessary to make it fit. "*/ OmniFoundation_EXTERN NSRect OFConstrainRect(NSRect rect, NSRect boundary); /*" Returns a rectangle centered on the specified point, and with the specified size. "*/ static inline NSRect OFRectFromCenterAndSize(NSPoint center, NSSize size) { return (NSRect){ origin: { center.x - (size.width/2), center.y - (size.height/2) }, size: size }; } // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFHeap.h,v 1.12 2003/01/15 22:51:54 kc Exp $ #import #import // for NSComparisonResult @class OFHeap; // Functions used as the comparison in an OFHeap should return NSOrderedAscending if // object1 should be above the heap as compared to object2. That is, the 'least' // object will be returned from the heap first. typedef NSComparisonResult (*OFHeapComparisonFunction)(OFHeap *heap, void *userInfo, id object1, id object2); @interface OFHeap : OFObject { id *_objects; unsigned int _count, _capacity; OFHeapComparisonFunction _comparisonFunction; void *_userInfo; } - initWithCapacity: (unsigned int)newCapacity compareFunction: (OFHeapComparisonFunction) comparisonFunction userInfo: (void *) userInfo; - initWithCapacity: (unsigned int)newCapacity compareSelector: (SEL) comparisonSelector; - (unsigned int) count; - (void)addObject:(id) anObject; - (id) removeObject; - (id) removeObjectLessThanObject: (id) object; - (void) removeAllObjects; - (id) peekObject; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Scheduling.subproj/OFImplementationHolder.h,v 1.9 2003/01/15 22:52:03 kc Exp $ #import @class NSLock; typedef void (*voidIMP)(id, SEL, ...); #import @interface OFImplementationHolder : OFObject { SEL selector; OFSimpleLockType lock; Class objectClass; voidIMP implementation; } - initWithSelector:(SEL)aSelector; - (SEL)selector; - (void)executeOnObject:(id)anObject; - (void)executeOnObject:(id)anObject withObject:(id)withObject; - (void)executeOnObject:(id)anObject withObject:(id)withObject withObject:(id)anotherObject; - (id)returnObjectOnObject:(id)anObject withObject:(id)withObject; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Scheduling.subproj/OFInvocation.h,v 1.14 2003/01/15 22:52:03 kc Exp $ #import #import typedef enum { OFHighPriority = 100, OFMediumPriority = 800, OFLowPriority = 1600, } OFInvocationPriorityLevel; #define OFInvocationNoGroup 0 @interface OFInvocation : OFObject - (id )object; - (void)invoke; @end @interface OFInvocation (Inits) - initForObject:(id )targetObject nsInvocation:(NSInvocation *)anInvocation; - initForObject:(id )targetObject selector:(SEL)aSelector; - initForObject:(id )targetObject selector:(SEL)aSelector withBool:(BOOL)aBool; - initForObject:(id )targetObject selector:(SEL)aSelector withInt:(int)int1; - initForObject:(id )targetObject selector:(SEL)aSelector withInt:(int)int1 withInt:(int)int2; - initForObject:(id )targetObject selector:(SEL)aSelector withObject:(id )anObject; - initForObject:(id )targetObject selector:(SEL)aSelector withObject:(id )object1 withObject:(id )object2; - initForObject:(id )targetObject selector:(SEL)aSelector withObject:(id )object1 withObject:(id )object2 withObject:(id )object3; @end // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFKnownKeyDictionaryTemplate.h,v 1.8 2003/01/15 22:51:54 kc Exp $ #import @class NSArray, NSObject; @interface OFKnownKeyDictionaryTemplate : OFObject /*.doc. This class holds information common to a set of OFMutableKnownKeyDictionaries. This makes the space requirements for OFMutableKnownKeyDictionary smaller. Instances of this class are variable size, so this class cannot be subclassed easily. */ { @public // These should really only be accessed by OFMutableKnownKeyDictionary NSArray *_keyArray; unsigned int _keyCount; NSObject *_keys[0]; } + (OFKnownKeyDictionaryTemplate *) templateWithKeys: (NSArray *) keys; /*.doc. Returns a uniqued instance of OFKnownKeyDictionaryTemplate. */ - (NSArray *) keys; /*.doc. Returns the keys of this template. */ @end // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFLowercaseStringCache.h,v 1.7 2003/01/15 22:51:54 kc Exp $ #import #import #import @class NSLock; typedef struct _OFLowercaseStringCache { // This pointer should never be touched outside of the inlines below since it may change at any time (although the old value will be valid for a while). CFMutableSetRef set; NSLock *lock; } OFLowercaseStringCache; extern void OFLowercaseStringCacheInit(OFLowercaseStringCache *cache); extern void OFLowercaseStringCacheClear(OFLowercaseStringCache *cache); // THIS LOOKUP IS THREAD SAFE, at least within reasonable limits. If a new string is added, the internal dictionary is replaced atomically and the old dictionary is scheduled to be released some time in the future which is incredibly long compared to how long a lookup should take. If two threads attempt to add strings at the same time, they will lock against each other, but lookups need never lock. static inline NSString *OFLowercaseStringCacheGet(OFLowercaseStringCache *cache, NSString *string) { NSString *lower; CFMutableSetRef set; extern NSString *_OFLowercaseStringCacheAdd(OFLowercaseStringCache *cache, NSString *string); // Null string probably isn't valid OBPRECONDITION(string); // But we shouldn't crash either. if (!string) return string; // Get the set -- it should be valid for 60 seconds from now set = cache->set; // Check the set if ((lower = (NSString *)CFSetGetValue(set, string))) return lower; return _OFLowercaseStringCacheAdd(cache, string); } // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFMach.h,v 1.4 2003/01/15 22:51:50 kc Exp $ #import OmniFoundation_EXTERN unsigned int OFNumberOfProcessors(); // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFMatrix.h,v 1.9 2003/01/15 22:51:54 kc Exp $ #import @class NSMutableArray; @interface OFMatrix : OFObject { NSMutableArray *rows; unsigned int rowCount, columnCount; NSMutableArray *rowTemplate; } - (id)objectAtRowIndex:(unsigned int)rowIndex columnIndex:(unsigned int)columnIndex; - (void)setObject:(id)anObject atRowIndex:(unsigned int)rowIndex columnIndex:(unsigned int)columnIndex; - (void)setObject:(id)anObject atRowIndex:(unsigned int)rowIndex span:(unsigned int)rowSpan columnIndex:(unsigned int)columnIndex span:(unsigned int)columnSpan; - (unsigned int)rowCount; - (unsigned int)columnCount; - (void)expandColumnsToCount:(unsigned int)count; - (void)expandRowsToCount:(unsigned int)count; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Scheduling.subproj/OFMessageQueue.h,v 1.17 2003/01/15 22:52:03 kc Exp $ #import @class NSConditionLock, NSLock, NSMutableArray, NSMutableSet; @class OFInvocation; #import @interface OFMessageQueue : OFObject { NSMutableArray *queue; NSMutableSet *queueSet; NSConditionLock *queueLock; id delegate; NSLock *queueProcessorsLock; unsigned int idleProcessors; unsigned int uncreatedProcessors; NSMutableArray *queueProcessors; struct { unsigned int schedulesBasedOnPriority; } flags; } + (OFMessageQueue *)mainQueue; // The main message queue (often the one which is run from the appkit). By default, it doesn't schedule queued messages by priority (unlike other queues). // Configuration - (void)setDelegate:(id )aDelegate; - (void)startBackgroundProcessors:(unsigned int)processorCount; - (void)setSchedulesBasedOnPriority:(BOOL)shouldScheduleBasedOnPriority; - (BOOL)hasInvocations; - (OFInvocation *)nextRetainedInvocation; - (OFInvocation *)nextRetainedInvocationWithBlock:(BOOL)shouldBlock; - (void)addQueueEntry:(OFInvocation *)aQueueEntry; - (void)queueInvocation:(NSInvocation *)anInvocation forObject:(id )anObject; - (void)queueSelector:(SEL)aSelector forObject:(id )anObject; - (void)queueSelectorOnce:(SEL)aSelector forObject:(id )anObject; - (void)queueSelector:(SEL)aSelector forObject:(id )anObject withObject:(id )withObject; - (void)queueSelectorOnce:(SEL)aSelector forObject:(id )anObject withObject:(id )withObject; - (void)queueSelector:(SEL)aSelector forObject:(id )anObject withObject:(id )object1 withObject:(id )object2; - (void)queueSelectorOnce:(SEL)aSelector forObject:(id )anObject withObject:(id )object1 withObject:(id )object2; - (void)queueSelector:(SEL)aSelector forObject:(id )anObject withObject:(id )object1 withObject:(id )object2 withObject:(id )object3; - (void)queueSelector:(SEL)aSelector forObject:(id )anObject withBool:(BOOL)aBool; - (void)queueSelector:(SEL)aSelector forObject:(id )anObject withInt:(int)anInt; - (void)queueSelector:(SEL)aSelector forObject:(id )anObject withInt:(int)anInt withInt:(int)anotherInt; @end extern void OFQueueFunction(void (*func)(void *arg), void *arg); extern BOOL OFMainThreadPerformFunction(void (*func)(void *arg), void *arg); // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Scheduling.subproj/OFMessageQueueDelegateProtocol.h,v 1.7 2003/01/15 22:52:03 kc Exp $ @class OFMessageQueue; @protocol OFMessageQueueDelegate - (void)queueHasInvocations:(OFMessageQueue *)aQueue; @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Scheduling.subproj/OFMessageQueuePriorityProtocol.h,v 1.7 2003/01/15 22:52:03 kc Exp $ @protocol OFMessageQueuePriority - (unsigned int)priority; - (unsigned int)group; - (unsigned int)maximumSimultaneousThreadsInGroup; @end // Copyright 2002-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Formatters.subproj/OFMultipleNumberFormatter.h,v 1.2 2003/01/15 22:51:57 kc Exp $ #import @interface OFMultipleNumberFormatter : NSFormatter { } @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFMultiValueDictionary.h,v 1.16 2003/01/15 22:51:54 kc Exp $ #import @class NSArray; @interface OFMultiValueDictionary : OFObject { NSMutableDictionary *dictionary; } - initWithCaseInsensitiveKeys: (BOOL) caseInsensitivity; - (NSArray *)arrayForKey:(NSString *)aKey; - (id)firstObjectForKey:(NSString *)aKey; - (id)lastObjectForKey:(NSString *)aKey; - (void)addObject:(id)anObject forKey:(NSString *)aKey; - (void)addObjects:(NSArray *)moreObjects forKey:(NSString *)aKey; - (void)removeObject:(id)anObject forKey:(NSString *)aKey; - (NSEnumerator *)keyEnumerator; - (NSArray *)allKeys; - (NSArray *)allValues; - (NSMutableDictionary *)dictionary; @end // Copyright 1998-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFMutableKnownKeyDictionary.h,v 1.8 2003/01/15 22:51:54 kc Exp $ #import @class OFKnownKeyDictionaryTemplate; @interface OFMutableKnownKeyDictionary : NSMutableDictionary /*.doc. This subclass of NSMutableDictionary should be used when the set of possible keys is small and known ahead of time. Due to the variable size of instances, this class cannot be easily subclassed. */ { OFKnownKeyDictionaryTemplate *_template; NSObject *_values[0]; } + (OFMutableKnownKeyDictionary *) newWithTemplate: (OFKnownKeyDictionaryTemplate *) template zone: (NSZone *) zone; /*.doc. Returns a new, retained, empty instance. */ + (OFMutableKnownKeyDictionary *) newWithTemplate: (OFKnownKeyDictionaryTemplate *) template; /*.doc. Calls +newWithTemplate:zone: using the default zone. */ - (OFMutableKnownKeyDictionary *) mutableKnownKeyCopyWithZone: (NSZone *) zone; /*.doc. Returns a new retained mutable copy of the receive. This is named as it is so that -mutableCopyWithZone: will still return a vanilla NSMutableDictionary. */ @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/DataStructures.subproj/OFNull.h,v 1.13 2003/07/16 19:14:13 bungi Exp $ #import #import #define OFNOTNULL(ptr) ((ptr) != nil && ![ptr isNull]) #define OFISNULL(ptr) ((ptr) == nil || [ptr isNull]) #define OFISEQUAL(a, b) ((OFISNULL(a) && OFISNULL(b)) || [(a) isEqual: (b)]) #define OFNOTEQUAL(a, b) (!OFISEQUAL(a, b)) @interface OFNull : OFObject + (id)nullObject; + (NSString *)nullStringObject; @end @interface OFObject (Null) - (BOOL)isNull; @end #import @interface NSObject (Null) - (BOOL)isNull; @end OmniFoundation_EXTERN NSString *OFNullStringObject; // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/Scheduling.subproj/OFObject-Queue.h,v 1.10 2003/01/15 22:52:03 kc Exp $ #import @protocol OFObjectQueue + (void)queueSelectorOnce:(SEL)aSelector; - (void)queueSelector:(SEL)aSelector; - (void)queueSelectorOnce:(SEL)aSelector; - (void)queueSelector:(SEL)aSelector withObject:(id)anObject; - (void)queueSelectorOnce:(SEL)aSelector withObject:(id)anObject; - (void)queueSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2; - (void)queueSelectorOnce:(SEL)aSelector withObject:(id)object1 withObject:(id)object2; - (void)queueSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2 withObject:(id)object3; - (void)queueSelector:(SEL)aSelector withBool:(BOOL)aBool; - (void)queueSelector:(SEL)aSelector withInt:(int)anInt; - (void)queueSelector:(SEL)aSelector withInt:(int)anInt withInt:(int)anotherInt; + (void)mainThreadPerformSelectorOnce:(SEL)aSelector; - (void)mainThreadPerformSelector:(SEL)aSelector; - (void)mainThreadPerformSelectorOnce:(SEL)aSelector; - (void)mainThreadPerformSelector:(SEL)aSelector withObject:(id)anObject; - (void)mainThreadPerformSelectorOnce:(SEL)aSelector withObject:(id)anObject; - (void)mainThreadPerformSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2; - (void)mainThreadPerformSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2 withObject:(id)object3; - (void)mainThreadPerformSelector:(SEL)aSelector withBool:(BOOL)aBool; - (void)mainThreadPerformSelector:(SEL)aSelector withInt:(int)anInt; - (void)mainThreadPerformSelector:(SEL)aSelector withInt:(int)anInt withInt:(int)anInt2; - (void)invokeSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2 withObject:(id)object3; @end @interface NSObject (Queue) @end // Copyright 1997-2003 Omni Development, Inc. All rights reserved. // // This software may only be used and reproduced according to the // terms in the file OmniSourceLicense.html, which should be // distributed with this project and can also be found at // http://www.omnigroup.com/DeveloperResources/OmniSourceLicense.html. // // $Header: /Network/Source/CVS/OmniGroup/Frameworks/OmniFoundation/OFObject.h,v 1.21 2003/01/15 22:51:50 kc Exp $ #ifndef __OFObjectHeader__ #define __OFObjectHeader__ #import @interface OFObject : OBObject { unsigned int retainCount; /*" Inline retain count for faster -retain/-release. "*/ } @end #endif // __OFObjectHeader__