stx_libbasic2.st
author Claus Gittinger <cg@exept.de>
Sat, 02 May 2020 21:40:13 +0200
changeset 5476 7355a4b11cb6
parent 5427 c39bc9b6d6b0
permissions -rw-r--r--
#FEATURE by cg class: Socket class added: #newTCPclientToHost:port:domain:domainOrder:withTimeout: changed: #newTCPclientToHost:port:domain:withTimeout:

"{ Encoding: utf8 }"

"
 COPYRIGHT (c) 2006 Claus Gittinger / eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libbasic2' }"

"{ NameSpace: Smalltalk }"

LibraryDefinition subclass:#stx_libbasic2
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'* Projects & Packages *'
!

!stx_libbasic2 class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2006 Claus Gittinger / eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
!

documentation
"
    Package documentation:

    This library contains additional basic (nonGUI) classes.

    These are less fundamental as in libbasic and not required by many stand alone applications.
    Beside additional container classes, this includes URL support, Zip support,
    PTY, serial line, sockets and IP addresses, and other less frequently needed things.

    Most real world applications will include this, but it is possible to create
    small standAlone apps which do not need it.

    [author:]
	cg

    [primary maintainer:]
	cg
"
! !

!stx_libbasic2 class methodsFor:'description'!

excludedFromPreRequisites
    ^ #(
	#'exept:libcrypt'    "Rc4Cipher - referenced by RandomGenerator class>>new "
	#'stx:goodies/communication'    "FTPClient - referenced by FtpURI>>writeStreamDo:create:atomic: "
	#'stx:libtool'    "FileBrowser - referenced by Archiver::ArchiverOutputParser>>parseLine:forItemClass: "
	#'stx:libview2'    "MIMETypes - referenced by Archiver::ArchiverOutputParser>>parseLine:forItemClass: "
	#'stx:libwidg'    "DialogBox - referenced by Archiver::CompressedFile>>compressFile:to: "
	#'stx:libhtml'    "HTMLParser - referenced by HTMLUtilities class>>plainTextOfHTML: "
	#'stx:goodies/webServer/htmlTree'    "HTML::TreeBuilder - referenced by HTMLPrinterStream>>initialize"
    )
!

mandatoryPreRequisites
    "list packages which are mandatory as a prerequisite.
     This are packages containing superclasses of my classes and classes which
     are extended by myself.
     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
     When loading whole packages,
     mandatoryPreRequisites will be automatically loaded
     BEFORE this packet has been loaded.
     This method is generated automatically,
     by searching along the inheritance chain of all of my classes.
     Please take a look at the #referencedPreRequisites method as well."

    ^ #(
	#'stx:libbasic'    "AbstractMultidimensionalArray - superclass of Matrix"
    )
!

referencedPreRequisites
    "list packages which are a prerequisite, because they contain
     classes which are referenced by my classes.
     These packages are NOT needed as a prerequisite for compiling or loading,
     however, a class from it may be referenced during execution and having it
     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
     includes explicit checks for the package being present.
     When loading whole packages,
     referencedPreRequisites will be automatically loaded
     AFTER this packet has been loaded.
     This method is generated automatically,
     by searching all classes (and their packages) which are referenced by my classes.
     Please also take a look at the #mandatoryPreRequisites method"

    ^ #(
    )
!

subProjects
    "list packages which are known as subprojects.
     The generated makefile will enter those and make there as well.
     However: they are only built, not forced to be loaded when a package is loaded;
     for those, redefine #referencedPrerequisites or #mandatoryPreRequisites."

    ^ #(
    )
! !

!stx_libbasic2 class methodsFor:'description - compilation'!

additionalBaseAddressDefinition_bc_dot_mak
    "this is an optional definition, which (if present) may speed up the dll-loading a little
     on win32 systems."

    ^ '
# see stdHeader_bc for LIBBASIC2_BASE
LIB_BASE=$(LIBBASIC2_BASE)
'
!

additionalLinkLibraries_bc_dot_mak
    ^ '$(ZLIB_DIR)\$(ZLIB) $(BZ2LIB) $(WINSOCK_LIB)'
!

additionalLinkLibraries_make_dot_proto
    ^ '$(ZLIB_LD_ARG) $(BZ2LIB_LD_ARG) $(AUDIOLIB_LD_ARG)'
!

additionalRules_bc_dot_mak
    ^ '
$(ZLIB):
	cd $(ZLIB_DIR)
	$(MAKE_BAT)
	cd ..\..\libbasic2

$(BZ2LIB):
	cd $(BZ2LIB_DIR)
	$(MAKE_BAT)
	cd ..\..\libbasic2
'
!

additionalRules_make_dot_proto
    ^ '
zlib:
	cd $(ZLIB_DIR); $(MAKE) $(MAKE_ZLIB_ARG)

bz2lib:
	cd $(BZ2LIB_DIR); $(MAKE) $(MAKE_BZ2LIB_ARG) libbz2.a
'
!

additionalTargets_bc_dot_mak
    ^ '$(ZLIB) $(BZ2LIB)'
!

additionalTargets_make_dot_proto
    ^ 'bz2lib zlib'

    "Created: / 05-09-2006 / 16:05:12 / cg"
!

localIncludes
    ^ '-I$(ZLIB_DIR) -I$(BZ2LIB_DIR)'

    "Created: / 06-09-2006 / 18:18:15 / cg"
!

stcOptimizationOptions
    ^ '+optinline +optinline2 +inlinenew'

    "Modified: / 21-02-2011 / 14:13:24 / cg"
!

stcWarningOptions
    ^ '-warnNonStandard -warnUnused'
! !

!stx_libbasic2 class methodsFor:'description - contents'!

classNamesAndAttributes
    "lists the classes which are to be included in the project.
     Each entry in the list may be: a single class-name (symbol),
     or an array-literal consisting of class name and attributes.
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."

    ^ #(
	"<className> or (<className> attributes...) in load order"
	AVLTree
	AbstractBackgroundJob
	ActiveObject
	ActorStream
	Archiver
	AutoResizingOrderedCollection
	BIG5EncodedString
	BTree
	BaseNCoder
	Bezier
	BinaryTree
	BinaryTreeNode
	BloomFilter
	BoltLock
	CRCStream
	CacheDictionary
	CachedValue
	CharacterSet
	Circle
	CollectingReadStream
	CollectingSharedQueueStream
	CollectionBuilder
	ComplexDoubleArray
	ComplexFloatArray
	CompressionStream
	Cons
	ConsStream
	Curve
	DelayedValue
	DirectoryContents
	DoubleLink
	EllipticalArc
	ExternalInt
	ExternalLong
	FileSorter
	FileText
	FilteringStream
	FourByteString
	FuzzyMatcher
	GBEncodedString
	GeometricSeries
	HTMLUtilities
	HalfFloat
	HalfFloatArray
	HandlerCollection
	Heap
	IEEEFloat
	IdentityBag
	IncompatibleMatrixError
	IncrementNotification
	IndentStream
	InterestConverterWithParameters
	InternalPipeStream
	Iterator
	JISEncodedString
	KSCEncodedString
	KeywordInContextIndexBuilder
	Lazy
	LazyArray
	LazyValue
	LineSegment
	List
	LoggingStream
	MappedCollection
	Matrix
	MessageChannel
	Monitor
	MultiReadStream
	NameLookupError
	NumberSet
	OctaFloat
	OperationQueue
	PersistentFileHistory
	PhoneticStringUtilities
	PluggableDictionary
	PluggableSet
	Polygon
	PowerSet
	PrinterStream
	PrintfScanf
	PriorityQueue
	Promise
	QDouble
	QuadFloat
	Queue
	Random
	RandomBlumBlumShub
	RandomKISS
	RandomKISS2
	RandomMT19937
	RandomParkMiller
	RandomRDRand
	RandomTT800
	ReindexedCollection
	RunArray
	SegmentedOrderedCollection
	SelectingReadStream
	SequenceWithSentinel
	SequenceableCollectionSorter
	SerialPort
	SharedCollection
	Singleton
	SmallBag
	Socket
	SocketAddress
	SocketAddressInfo
	SocketErrorNotification
	SortedSet
	SoundStream
	Spline
	SplittingWriteStream
	Stack
	StringPattern
	StringUtilities
	TSTree
	TSTreeNode
	TableData
	TerminalSession
	Text
	TextClassifier
	TextStream
	TreeSet
	Trie
	URI
	UUID
	UndoSupport
	UnitConverter
	UnixPTYStream
	ValueLink
	VirtualArray
	VirtualDictionary
	WeakOrderedCollection
	ZipArchiveConstants
	#'stx_libbasic2'
	AATree
	AATreeNode
	AppletalkSocketAddress
	Arrow
	ArrowedSpline
	AutoResizingOrderedCollectionWithDefault
	BZip2Stream
	BackgroundJob
	BackgroundPeriodicalJob
	BackgroundQueueProcessingJob
	Base32Coder
	Base64Coder
	BayesClassifier
	Bezier2Segment
	CRC16Stream
	CRC32Stream
	CRC8Stream
	CacheDictionaryWithFactory
	DecNetSocketAddress
	EpsonFX1PrinterStream
	FilteringLineStream
	Future
	HPLjetIIPrinterStream
	HTMLPrinterStream
	HierarchicalURI
	HostAddressLookupError
	HostNameLookupError
	IPSocketAddress
	LazyCons
	LineNumberReadStream
	PostscriptPrinterStream
	RandomGNUSmalltalk
	RandomGenerator
	SharedQueue
	TSMultiTree
	TSMultiTreeNode
	TimedPromise
	TwoDimensionalMatrix
	UDSocketAddress
	Unicode32String
	ValueDoubleLink
	VirtualArrayWithCache
	ZipArchive
	ZipStream
	Base64UrlCoder
	FileURI
	FtpURI
	HttpURI
	IPv6SocketAddress
	SftpURI
	SquareMatrix
	UnlimitedSharedQueue
	HttpsURI
	#'Matrix2_2'
	#'Matrix3_3'
	(DoubleLinkedList autoload)
	(IdentitySkipList autoload)
	(IteratorStream autoload)
	(RecursiveSeriesStream autoload)
	(SkipList autoload)
	(SkipListNode autoload)
    )
!

extensionMethodNames
    "lists the extension methods which are to be included in the project.
     Entries are 2-element array literals, consisting of class-name and selector.
     A correponding method with real names must be present in my concrete subclasses
     if it has extensions."

    ^ #(
	ArithmeticValue asQDouble
	ArithmeticValue asQuadFloat
	ArithmeticValue differenceFromIEEEFloat:
	ArithmeticValue differenceFromQDouble:
	ArithmeticValue equalFromIEEEFloat:
	ArithmeticValue equalFromQDouble:
	ArithmeticValue lessFromIEEEFloat:
	ArithmeticValue lessFromQDouble:
	ArithmeticValue productFromIEEEFloat:
	ArithmeticValue productFromQDouble:
	ArithmeticValue quotientFromIEEEFloat:
	ArithmeticValue quotientFromQDouble:
	ArithmeticValue remainderFromQDouble:
	ArithmeticValue sumFromIEEEFloat:
	ArithmeticValue sumFromQDouble:
	Block deferredValue
	Block deferredValueAt:
	Block futureValue
	Block futureValue:
	Block futureValue:value:
	Block futureValue:value:value:
	Block futureValueWithArguments:
	Block lazyValue
	Block lazyValue:
	Block lazyValue:value:
	Block lazyValue:value:value:
	Block lazyValueWithArguments:
	Block promise
	Block promiseAt:
	CharacterArray asKoelnerPhoneticCode
	CharacterArray asSoundexCode
	CharacterArray printf:
	CharacterArray printf:on:
	CharacterArray printfWith:
	CharacterArray printfWith:with:
	CharacterArray printfWith:with:with:
	CharacterArray printfWith:with:with:with:
	CharacterArray printfWith:with:with:with:with:
	CharacterArray #'printf_formatArgCount'
	CharacterArray #'printf_printArgFrom:to:withData:'
	CharacterArray #'printf_printOn:withData:'
	CharacterArray scanf:
	CharacterArray #'scanf_scanArgFrom:to:format:'
	CharacterArray sscanf:
	CharacterArray urlDecoded
	CharacterArray urlEncoded
	Collection asHalfFloatArray
	Collection asIdentitySkipList
	Collection asList
	Collection asRunArray
	Collection asSharedCollection
	Collection asSkipList
	Collection asSkipList:
	Float absDecimalPrintOn:digits:
	Float absPrintOn:digits:
	Float absScientificPrintOn:digits:
	Float asIEEEFloat
	Float asOctaFloat
	Float asQDouble
	Float asQuadFloat
	Fraction asQuadFloat
	Integer asIEEEFloat
	Integer asOctaFloat
	Integer asQDouble
	Integer asQuadFloat
	Integer atRandom
	LimitedPrecisionReal asOctaFloat
	LimitedPrecisionReal asQuadFloat
	LongFloat asIEEEFloat
	LongFloat asQDouble
	LongFloat asQuadFloat
	MetaNumber asOctaFloat
	MetaNumber asQDouble
	MetaNumber asQuadFloat
	Object addInterest:
	Object asDoubleLink
	Object expressInterestIn:for:sendBack:
	Object interests
	Object interestsFor:
	Object onChange:evaluate:
	Object onChange:send:to:
	Object onChangeEvaluate:
	Object onChangeSend:to:
	Object removeActionsForEvent:
	Object removeActionsWithReceiver:
	Object removeAllActionsWithReceiver:
	Object removeDependentAndRetractInterestsFor:
	Object removeInterest:
	Object retractInterestIn:for:
	Object retractInterests
	Object retractInterestsFor:
	Object retractInterestsForWhich:
	Object retractInterestsIn:
	Object trigger:
	Object trigger:with:
	Object triggerEvent:
	Object triggerEvent:with:
	Object triggerEvent:withArguments:
	Object when:send:to:
	Object when:send:to:with:
	Object when:sendTo:
	ShortFloat asIEEEFloat
	ShortFloat asQuadFloat
	Stream collecting:
	Stream printf:
	Stream printf:arguments:
	Stream printf:with:
	Stream printf:with:with:
	Stream printf:with:with:with:
	Stream printf:with:with:with:with:
	Stream printf:with:with:with:with:with:
	Stream printf:withAll:
	Stream selecting:
    )
! !

!stx_libbasic2 class methodsFor:'description - project information'!

companyName
    "Return a companyname which will appear in <lib>.rc"

    ^ 'Claus Gittinger / eXept Software AG'

    "Modified: / 18-11-2016 / 11:48:36 / cg"
!

description
    "Return a description string which will appear in nt.def / bc.def"

    ^ 'Smalltalk/X Additional Basic Classes'

    "Modified: / 14-09-2006 / 10:57:15 / cg"
!

legalCopyright
    "Return a copyright string which will appear in <lib>.rc"

    ^ 'Copyright Claus Gittinger 1988\nCopyright eXept Software AG 2012'

    "Modified: / 18-11-2016 / 12:17:38 / cg"
!

productName
    "Return a product name which will appear in <lib>.rc"

    ^ 'Smalltalk/X'
! !

!stx_libbasic2 class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !