summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2005-01-04 13:19:50 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2005-01-04 13:19:50 +0000
commiteca3a8e60fd1d0d8bee3970520abc0e9afa7ad3d (patch)
treee202076891af98d85ff1a9232f21f5ae33d4d9e4
parent3e80b00bd4971a81ff47e7a1ff4d8edd4cf4d748 (diff)
downloadATCD-eca3a8e60fd1d0d8bee3970520abc0e9afa7ad3d.tar.gz
ChangeLogTag: Tue Jan 4 13:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r--ace/CLASSIX/CLASSIX_Addr.cpp13
-rw-r--r--ace/CLASSIX/CLASSIX_Addr.h99
-rw-r--r--ace/CLASSIX/CLASSIX_Addr.i56
-rw-r--r--ace/CLASSIX/CLASSIX_CLD_Connector.cpp116
-rw-r--r--ace/CLASSIX/CLASSIX_CLD_Connector.h134
-rw-r--r--ace/CLASSIX/CLASSIX_CLD_Connector.i24
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Acceptor.cpp197
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Acceptor.h146
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Acceptor.i31
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Connector.cpp118
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Connector.h118
-rw-r--r--ace/CLASSIX/CLASSIX_CO_Connector.i36
-rw-r--r--ace/CLASSIX/CLASSIX_Dgram_Mcast.cpp83
-rw-r--r--ace/CLASSIX/CLASSIX_Dgram_Mcast.h94
-rw-r--r--ace/CLASSIX/CLASSIX_Dgram_Mcast.i21
-rw-r--r--ace/CLASSIX/CLASSIX_Group.cpp89
-rw-r--r--ace/CLASSIX/CLASSIX_Group.h118
-rw-r--r--ace/CLASSIX/CLASSIX_Group.i89
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Dynamic.cpp22
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Dynamic.h63
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Dynamic.i16
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Stamp.cpp52
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Stamp.h90
-rw-r--r--ace/CLASSIX/CLASSIX_Group_Stamp.i32
-rw-r--r--ace/CLASSIX/CLASSIX_OS.cpp117
-rw-r--r--ace/CLASSIX/CLASSIX_OS.h134
-rw-r--r--ace/CLASSIX/CLASSIX_OS.i56
-rw-r--r--ace/CLASSIX/CLASSIX_Peer_SAP.cpp77
-rw-r--r--ace/CLASSIX/CLASSIX_Peer_SAP.h108
-rw-r--r--ace/CLASSIX/CLASSIX_Peer_SAP.i99
-rw-r--r--ace/CLASSIX/CLASSIX_Port.cpp129
-rw-r--r--ace/CLASSIX/CLASSIX_Port.h162
-rw-r--r--ace/CLASSIX/CLASSIX_Port.i113
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Core.cpp69
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Core.h103
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Core.i38
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Default.cpp26
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Default.h80
-rw-r--r--ace/CLASSIX/CLASSIX_Port_Default.i28
-rw-r--r--ace/CLASSIX/CLASSIX_SAP.cpp153
-rw-r--r--ace/CLASSIX/CLASSIX_SAP.h145
-rw-r--r--ace/CLASSIX/CLASSIX_SAP.i58
-rw-r--r--ace/CLASSIX/CLASSIX_Select_Reactor.cpp337
-rw-r--r--ace/CLASSIX/CLASSIX_Select_Reactor.h209
-rw-r--r--ace/CLASSIX/CLASSIX_Select_Reactor.i63
-rw-r--r--ace/CLASSIX/CLASSIX_Stream.cpp362
-rw-r--r--ace/CLASSIX/CLASSIX_Stream.h272
-rw-r--r--ace/CLASSIX/CLASSIX_Stream.i182
-rw-r--r--java/ChangeLog143
-rw-r--r--java/EAC/BoundsException.java13
-rw-r--r--java/EAC/Configuration.java220
-rw-r--r--java/EAC/Configurator.java58
-rw-r--r--java/EAC/ConnectionException.java14
-rw-r--r--java/EAC/Connector.java197
-rw-r--r--java/EAC/EACComponent.java460
-rw-r--r--java/EAC/EACFont.java21
-rw-r--r--java/EAC/EACLabel.java187
-rw-r--r--java/EAC/EACMenuBar.java198
-rw-r--r--java/EAC/EACPanel.java425
-rw-r--r--java/EAC/EACPrintStream.java16
-rw-r--r--java/EAC/EmptyQueueException.java13
-rw-r--r--java/EAC/File.java118
-rw-r--r--java/EAC/InputMode.java32
-rw-r--r--java/EAC/Intersection.java62
-rw-r--r--java/EAC/Operator.java206
-rw-r--r--java/EAC/Primitive.java121
-rw-r--r--java/EAC/Queue.java94
-rw-r--r--java/EAC/README6
-rw-r--r--java/EAC/ResourcePool.java46
-rw-r--r--java/EAC/Rubberband.java103
-rw-r--r--java/EAC/RubberbandLine.java28
-rw-r--r--java/EAC/Sink.java231
-rw-r--r--java/EAC/Source.java341
-rw-r--r--java/EAC/System_Manual.docbin83968 -> 0 bytes
-rw-r--r--java/EAC/TooManyPrimitivesException.java13
-rw-r--r--java/EAC/Union.java56
-rw-r--r--java/EAC/User_Manual.docbin95232 -> 0 bytes
-rw-r--r--java/ImageProcessing/filters/Assert.java33
-rw-r--r--java/ImageProcessing/filters/BleachFilter.java65
-rw-r--r--java/ImageProcessing/filters/BlurFilter.java95
-rw-r--r--java/ImageProcessing/filters/DarkenFilter.java48
-rw-r--r--java/ImageProcessing/filters/DeSpeckleFilter.java123
-rw-r--r--java/ImageProcessing/filters/DissolveFilter.java52
-rw-r--r--java/ImageProcessing/filters/EdgeDetectFilter.java250
-rw-r--r--java/ImageProcessing/filters/EmbossFilter.java86
-rw-r--r--java/ImageProcessing/filters/MedFilter.java6
-rw-r--r--java/ImageProcessing/filters/OilPaintFilter.java97
-rw-r--r--java/ImageProcessing/filters/PixelizeFilter.java117
-rw-r--r--java/ImageProcessing/filters/RandomizeFilter.java36
-rw-r--r--java/ImageProcessing/filters/RotateFilter.java358
-rw-r--r--java/ImageProcessing/filters/SharpenFilter.java272
-rw-r--r--java/ImageProcessing/filters/SpatialFilter.java213
-rw-r--r--java/ImageProcessing/filters/SpreadFilter.java130
-rw-r--r--java/ImageProcessing/filters/Timer.java23
-rw-r--r--java/ImageProcessing/framework/BaseButton.java234
-rw-r--r--java/ImageProcessing/framework/BenchmarkApplet.java622
-rw-r--r--java/ImageProcessing/framework/DialogManager.java277
-rw-r--r--java/ImageProcessing/framework/DialogType.java11
-rw-r--r--java/ImageProcessing/framework/FileBrowser.java173
-rw-r--r--java/ImageProcessing/framework/FilePanel.java161
-rw-r--r--java/ImageProcessing/framework/FilterTest.java62
-rw-r--r--java/ImageProcessing/framework/GIFHandler.java75
-rw-r--r--java/ImageProcessing/framework/GifEncoder.java693
-rw-r--r--java/ImageProcessing/framework/Hierarchy.java347
-rw-r--r--java/ImageProcessing/framework/HierarchyAdapter.java34
-rw-r--r--java/ImageProcessing/framework/Icon.java70
-rw-r--r--java/ImageProcessing/framework/ImageApp.java303
-rw-r--r--java/ImageProcessing/framework/ImageByteCounter.java94
-rw-r--r--java/ImageProcessing/framework/ImageCanvas.java166
-rw-r--r--java/ImageProcessing/framework/ImageEncoder.java271
-rw-r--r--java/ImageProcessing/framework/ImageProcessor.java111
-rw-r--r--java/ImageProcessing/framework/ImageSender.java128
-rw-r--r--java/ImageProcessing/framework/IntHashtable.java396
-rw-r--r--java/ImageProcessing/framework/ListFiles.java167
-rwxr-xr-xjava/ImageProcessing/framework/LoadURLFrame.java142
-rw-r--r--java/ImageProcessing/framework/MedJava.html15
-rw-r--r--java/ImageProcessing/framework/Options.java25
-rwxr-xr-xjava/ImageProcessing/framework/SaveURLFrame.java133
-rw-r--r--java/ImageProcessing/framework/Separator.java90
-rw-r--r--java/ImageProcessing/framework/ServerHandler.java50
-rw-r--r--java/ImageProcessing/framework/ServerTest.java67
-rw-r--r--java/ImageProcessing/framework/StatusDisplay.java23
-rw-r--r--java/ImageProcessing/framework/StatusIndicator.java70
-rw-r--r--java/ImageProcessing/framework/TestHandler.java149
-rw-r--r--java/ImageProcessing/framework/Tester.java148
-rw-r--r--java/ImageProcessing/framework/doc01.gifbin223 -> 0 bytes
-rw-r--r--java/ImageProcessing/framework/file03.gifbin267 -> 0 bytes
-rw-r--r--java/ImageProcessing/framework/filter.conf15
-rw-r--r--java/ImageProcessing/framework/help.conf216
-rw-r--r--java/ImageProcessing/framework/test.html20
-rw-r--r--java/ImageProcessing/framework/testFilter.conf15
-rw-r--r--java/JACE/ASX/IOCntlCmds.java38
-rw-r--r--java/JACE/ASX/IOCntlMsg.java124
-rw-r--r--java/JACE/ASX/MessageBlock.java447
-rw-r--r--java/JACE/ASX/MessageQueue.java633
-rw-r--r--java/JACE/ASX/MessageType.java102
-rw-r--r--java/JACE/ASX/Module.java246
-rw-r--r--java/JACE/ASX/Stream.java436
-rw-r--r--java/JACE/ASX/StreamHead.java123
-rw-r--r--java/JACE/ASX/StreamTail.java114
-rw-r--r--java/JACE/ASX/Task.java443
-rw-r--r--java/JACE/ASX/TaskFlags.java49
-rw-r--r--java/JACE/ASX/ThruTask.java44
-rw-r--r--java/JACE/ASX/TimeValue.java296
-rw-r--r--java/JACE/ASX/TimedWait.java157
-rw-r--r--java/JACE/ASX/TimeoutException.java37
-rw-r--r--java/JACE/ASX/package.html11
-rw-r--r--java/JACE/Concurrency/AbstractLock.java269
-rw-r--r--java/JACE/Concurrency/Condition.java124
-rw-r--r--java/JACE/Concurrency/LockAdapter.java262
-rw-r--r--java/JACE/Concurrency/LockException.java28
-rw-r--r--java/JACE/Concurrency/Mutex.java239
-rw-r--r--java/JACE/Concurrency/RWMutex.java268
-rw-r--r--java/JACE/Concurrency/RenewObject.java36
-rw-r--r--java/JACE/Concurrency/Semaphore.java263
-rw-r--r--java/JACE/Concurrency/ThreadManager.java113
-rw-r--r--java/JACE/Concurrency/Token.java301
-rw-r--r--java/JACE/Concurrency/WaitObject.java39
-rw-r--r--java/JACE/Concurrency/package.html15
-rw-r--r--java/JACE/Connection/AcceptStrategy.java87
-rw-r--r--java/JACE/Connection/Acceptor.java215
-rw-r--r--java/JACE/Connection/ActivateStrategy.java40
-rw-r--r--java/JACE/Connection/Blob.java114
-rw-r--r--java/JACE/Connection/BlobHandler.java35
-rw-r--r--java/JACE/Connection/BlobReader.java108
-rw-r--r--java/JACE/Connection/BlobWriter.java224
-rw-r--r--java/JACE/Connection/Connector.java148
-rw-r--r--java/JACE/Connection/CreationStrategy.java57
-rw-r--r--java/JACE/Connection/HTTPHelper.java182
-rw-r--r--java/JACE/Connection/StrategyAcceptor.java174
-rw-r--r--java/JACE/Connection/SvcHandler.java101
-rw-r--r--java/JACE/Connection/package.html7
-rw-r--r--java/JACE/Misc/GetOpt.java171
-rw-r--r--java/JACE/Misc/package.html6
-rw-r--r--java/JACE/makebat.zipbin1326 -> 0 bytes
-rw-r--r--java/JACE/netsvcs/Handler.java185
-rw-r--r--java/JACE/netsvcs/Logger/LogRecord.java290
-rw-r--r--java/JACE/netsvcs/Logger/LoggingStrategy.java35
-rw-r--r--java/JACE/netsvcs/Logger/ServerLoggingAcceptor.java147
-rw-r--r--java/JACE/netsvcs/Logger/ServerLoggingHandler.java60
-rw-r--r--java/JACE/netsvcs/Logger/StderrStrategy.java36
-rw-r--r--java/JACE/netsvcs/Logger/c.bat2
-rw-r--r--java/JACE/netsvcs/Logger/package.html17
-rw-r--r--java/JACE/netsvcs/Server.java356
-rw-r--r--java/JACE/netsvcs/package.html11
-rw-r--r--java/JACE/overview.html84
-rw-r--r--java/JACE/package.html32
-rw-r--r--java/MSVJProjects.zipbin35698 -> 0 bytes
-rw-r--r--java/README40
-rw-r--r--java/VERSION5
-rw-r--r--java/apps/NexusII/README58
-rw-r--r--java/apps/NexusII/classes/ClientHandler.classbin689 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/FrameHandler.classbin828 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/ImageCanvas.classbin1771 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/NexusClientApplet.classbin581 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/NexusIIserver.classbin1265 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/Room.classbin2049 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/RoomFactory.classbin751 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/RoomFrame.classbin186 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/RoomThread.classbin79 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CApplet.classbin29 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CApplet.java199
-rw-r--r--java/apps/NexusII/classes/awtCommand/CButton.classbin41 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CButton.java41
-rw-r--r--java/apps/NexusII/classes/awtCommand/CCanvas.classbin2249 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CCanvas.java381
-rw-r--r--java/apps/NexusII/classes/awtCommand/CFrame.classbin3543 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CFrame.java486
-rw-r--r--java/apps/NexusII/classes/awtCommand/CList.classbin825 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CList.java96
-rw-r--r--java/apps/NexusII/classes/awtCommand/CPanel.classbin2246 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CPanel.java381
-rw-r--r--java/apps/NexusII/classes/awtCommand/CTextArea.classbin57 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CTextArea.java93
-rw-r--r--java/apps/NexusII/classes/awtCommand/CTextField.classbin91 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CTextField.java110
-rw-r--r--java/apps/NexusII/classes/awtCommand/Command.classbin253 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/Command.java25
-rw-r--r--java/apps/NexusII/classes/commandHandler.classbin58 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/commandParser.classbin1430 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/connectionHandler.classbin248 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/joinHandler.classbin2048 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/roomHandler.classbin1837 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/textHandler.classbin1752 -> 0 bytes
-rw-r--r--java/apps/NexusII/src/Consumer.java74
-rw-r--r--java/apps/NexusII/src/MT_Bounded_Queue.java226
-rw-r--r--java/apps/NexusII/src/MT_Bounded_Queue_Group.java79
-rw-r--r--java/apps/NexusII/src/NexusClientApplet.java494
-rw-r--r--java/apps/NexusII/src/NexusIIserver.java280
-rw-r--r--java/apps/NexusII/src/Producer.java87
-rw-r--r--java/apps/NexusII/src/Room.java97
-rw-r--r--java/apps/NexusII/src/RoomFrame.java297
-rw-r--r--java/apps/NexusII/src/RoomSpace.java110
-rw-r--r--java/apps/NexusII/src/Timed_Wait.java86
-rw-r--r--java/apps/NexusII/src/Timer.java31
-rw-r--r--java/apps/NexusII/src/commandHandler.java44
-rw-r--r--java/apps/NexusII/src/commandParser.java124
-rw-r--r--java/apps/NexusII/src/connectionHandler.java236
-rw-r--r--java/apps/NexusII/src/consts.java40
-rw-r--r--java/apps/NexusII/src/dataPacket.java124
-rw-r--r--java/apps/NexusII/src/joinHandler.java181
-rw-r--r--java/apps/NexusII/src/makefile15
-rw-r--r--java/apps/NexusII/src/nexusDemuxThread.java97
-rw-r--r--java/apps/NexusII/src/roomHandler.java125
-rw-r--r--java/apps/NexusII/src/socketReaderThread.java126
-rw-r--r--java/apps/NexusII/src/socketWriterThread.java119
-rw-r--r--java/apps/NexusII/src/url_to_url.java33
-rwxr-xr-xjava/apps/NexusII/start27
-rw-r--r--java/apps/NexusII/start.html4
-rw-r--r--java/classes/README.TXT2
-rw-r--r--java/doc/images/GridBagEx.gifbin2453 -> 0 bytes
-rw-r--r--java/doc/images/OpenBookIcon.gifbin2241 -> 0 bytes
-rw-r--r--java/doc/images/blue-ball-small.gifbin255 -> 0 bytes
-rw-r--r--java/doc/images/blue-ball.gifbin925 -> 0 bytes
-rw-r--r--java/doc/images/class-index.gifbin1497 -> 0 bytes
-rw-r--r--java/doc/images/constructor-index.gifbin1711 -> 0 bytes
-rw-r--r--java/doc/images/constructors.gifbin1565 -> 0 bytes
-rw-r--r--java/doc/images/cyan-ball-small.gifbin255 -> 0 bytes
-rw-r--r--java/doc/images/cyan-ball.gifbin925 -> 0 bytes
-rw-r--r--java/doc/images/error-index.gifbin1438 -> 0 bytes
-rw-r--r--java/doc/images/exception-index.gifbin1707 -> 0 bytes
-rw-r--r--java/doc/images/green-ball-small.gifbin102 -> 0 bytes
-rw-r--r--java/doc/images/green-ball.gifbin886 -> 0 bytes
-rw-r--r--java/doc/images/interface-index.gifbin1648 -> 0 bytes
-rw-r--r--java/doc/images/magenta-ball-small.gifbin104 -> 0 bytes
-rw-r--r--java/doc/images/magenta-ball.gifbin896 -> 0 bytes
-rw-r--r--java/doc/images/method-index.gifbin1588 -> 0 bytes
-rw-r--r--java/doc/images/methods.gifbin1403 -> 0 bytes
-rw-r--r--java/doc/images/package-index.gifbin1607 -> 0 bytes
-rw-r--r--java/doc/images/red-ball-small.gifbin255 -> 0 bytes
-rw-r--r--java/doc/images/red-ball.gifbin527 -> 0 bytes
-rw-r--r--java/doc/images/variable-index.gifbin1576 -> 0 bytes
-rw-r--r--java/doc/images/variables.gifbin1380 -> 0 bytes
-rw-r--r--java/doc/images/yellow-ball-small.gifbin255 -> 0 bytes
-rw-r--r--java/doc/images/yellow-ball.gifbin925 -> 0 bytes
-rw-r--r--java/examples/Logger/README29
-rw-r--r--java/examples/Logger/simple-server/LogRecord.java145
-rw-r--r--java/examples/Logger/simple-server/LoggerConstants.java7
-rw-r--r--java/examples/Logger/simple-server/LoggingAcceptor.java33
-rw-r--r--java/examples/Logger/simple-server/LoggingClient.java108
-rw-r--r--java/examples/Logger/simple-server/LoggingHandler.java121
-rw-r--r--java/examples/Logger/simple-server/README25
-rw-r--r--java/examples/Logger/simple-server/SimpleLogger.java44
-rw-r--r--java/gjt/Assert.java33
-rw-r--r--java/gjt/Bargauge.java80
-rw-r--r--java/gjt/Border.java105
-rw-r--r--java/gjt/Box.java81
-rw-r--r--java/gjt/BulletinLayout.java100
-rw-r--r--java/gjt/ButtonPanel.java51
-rw-r--r--java/gjt/CardPanel.java48
-rw-r--r--java/gjt/ChoiceCardPanel.java53
-rw-r--r--java/gjt/ColumnLayout.java154
-rw-r--r--java/gjt/ComponentScroller.java42
-rw-r--r--java/gjt/DialogClient.java20
-rw-r--r--java/gjt/DrawingPanel.java72
-rw-r--r--java/gjt/DrawnRectangle.java136
-rw-r--r--java/gjt/EtchedBorder.java59
-rw-r--r--java/gjt/EtchedRectangle.java97
-rw-r--r--java/gjt/Etching.java22
-rw-r--r--java/gjt/ExclusiveImageButtonPanel.java47
-rw-r--r--java/gjt/FontDialog.java362
-rw-r--r--java/gjt/GJTDialog.java51
-rw-r--r--java/gjt/IconCardPanel.java55
-rw-r--r--java/gjt/ImageButton.java209
-rw-r--r--java/gjt/ImageButtonController.java79
-rw-r--r--java/gjt/ImageButtonEvent.java103
-rw-r--r--java/gjt/ImageButtonPanel.java106
-rw-r--r--java/gjt/ImageButtonPanelController.java47
-rw-r--r--java/gjt/ImageCanvas.java31
-rw-r--r--java/gjt/ImageScroller.java62
-rw-r--r--java/gjt/LabelCanvas.java93
-rw-r--r--java/gjt/MessageDialog.java77
-rw-r--r--java/gjt/MouseController.java32
-rw-r--r--java/gjt/Orientation.java87
-rw-r--r--java/gjt/ProgressDialog.java67
-rw-r--r--java/gjt/QuestionDialog.java130
-rw-r--r--java/gjt/RadioImageButtonPanelController.java45
-rw-r--r--java/gjt/RowLayout.java153
-rw-r--r--java/gjt/Scroller.java154
-rw-r--r--java/gjt/ScrollerLayout.java160
-rw-r--r--java/gjt/SelectionEvent.java82
-rw-r--r--java/gjt/Separator.java90
-rw-r--r--java/gjt/SpringyImageButtonController.java54
-rw-r--r--java/gjt/StateButton.java45
-rw-r--r--java/gjt/StateButtonController.java27
-rw-r--r--java/gjt/StickyImageButtonController.java87
-rw-r--r--java/gjt/Stopwatch.java94
-rw-r--r--java/gjt/StopwatchClient.java14
-rw-r--r--java/gjt/ThreeDBorder.java53
-rw-r--r--java/gjt/ThreeDBorderStyle.java24
-rw-r--r--java/gjt/ThreeDRectangle.java105
-rw-r--r--java/gjt/Toolbar.java58
-rw-r--r--java/gjt/Util.java69
-rw-r--r--java/gjt/YesNoDialog.java80
-rw-r--r--java/gjt/animation/CollisionArena.java39
-rw-r--r--java/gjt/animation/CollisionDetector.java24
-rw-r--r--java/gjt/animation/EdgeCollisionDetector.java53
-rw-r--r--java/gjt/animation/Playfield.java140
-rw-r--r--java/gjt/animation/Sequence.java119
-rw-r--r--java/gjt/animation/Sprite.java191
-rw-r--r--java/gjt/animation/SpriteCollisionDetector.java45
-rw-r--r--java/gjt/image/BleachImageFilter.java53
-rw-r--r--java/gjt/image/DissolveFilter.java48
-rw-r--r--java/gjt/image/ImageDissolver.java132
-rw-r--r--java/gjt/rubberband/Rubberband.java100
-rw-r--r--java/gjt/rubberband/RubberbandEllipse.java32
-rw-r--r--java/gjt/rubberband/RubberbandLine.java25
-rw-r--r--java/gjt/rubberband/RubberbandPanel.java38
-rw-r--r--java/gjt/rubberband/RubberbandRectangle.java29
-rw-r--r--java/gjt/test/AttributesPanel.java78
-rw-r--r--java/gjt/test/BargaugeTest.java130
-rw-r--r--java/gjt/test/BleachImageFilterTest.java86
-rw-r--r--java/gjt/test/BorderTest.java202
-rw-r--r--java/gjt/test/BoxTest.java100
-rw-r--r--java/gjt/test/BumpAnimationTest.java107
-rw-r--r--java/gjt/test/ChoiceCardPanelTest.java34
-rw-r--r--java/gjt/test/ColumnLayoutTest.java126
-rw-r--r--java/gjt/test/ComponentScrollerTest.java205
-rw-r--r--java/gjt/test/ConnectionsPanel.java9
-rw-r--r--java/gjt/test/DialogTest.java140
-rw-r--r--java/gjt/test/DrawnRectangleTest.java119
-rw-r--r--java/gjt/test/FontDialogTest.java95
-rw-r--r--java/gjt/test/IconCardPanelTest.java47
-rw-r--r--java/gjt/test/ImageButtonTest.java130
-rw-r--r--java/gjt/test/ImageDissolverTest.java69
-rw-r--r--java/gjt/test/ImageScrollerTest.java55
-rw-r--r--java/gjt/test/LabelCanvasTest.java75
-rw-r--r--java/gjt/test/MessageDialogTest.java50
-rw-r--r--java/gjt/test/OccupationOracle.java334
-rw-r--r--java/gjt/test/RowLayoutTest.java124
-rw-r--r--java/gjt/test/RubberbandTest.java112
-rw-r--r--java/gjt/test/SeparatorTest.java64
-rw-r--r--java/gjt/test/SimpleAnimationTest.java87
-rw-r--r--java/gjt/test/SimpleBargaugeTest.java61
-rw-r--r--java/gjt/test/StateButtonTest.java41
-rw-r--r--java/gjt/test/TenPixelBorder.java44
-rw-r--r--java/gjt/test/TitledPanel.java22
-rw-r--r--java/gjt/test/ToolbarTest.java111
-rw-r--r--java/gjt/test/TwoDrinkersAnimationTest.java130
-rw-r--r--java/gjt/test/UnitTest.java46
-rw-r--r--java/java-ace.gifbin11028 -> 0 bytes
-rw-r--r--tests/CLASSIX/CLASSIX_Addr_Test.cpp116
-rw-r--r--tests/CLASSIX/CLASSIX_CLD_Connector_Test.cpp392
-rw-r--r--tests/CLASSIX/CLASSIX_Con_Acc_Test.cpp365
-rw-r--r--tests/CLASSIX/CLASSIX_Con_Acc_Test.h81
-rw-r--r--tests/CLASSIX/CLASSIX_Group_Test.cpp85
-rw-r--r--tests/CLASSIX/CLASSIX_Notify_Test.cpp266
-rw-r--r--tests/CLASSIX/CLASSIX_OS_Test.cpp43
-rw-r--r--tests/CLASSIX/CLASSIX_Reactor_Test.cpp149
-rw-r--r--tests/CLASSIX/CLASSIX_Reactor_Test.h57
-rw-r--r--tests/CLASSIX/CLASSIX_Select_Reactor_Test.cpp166
-rw-r--r--tests/CLASSIX/CLASSIX_Select_Reactor_Test.h56
-rw-r--r--tests/CLASSIX/CLASSIX_Stream_Test.cpp111
-rw-r--r--tests/CLASSIX/CLASSIX_test_config.h277
-rw-r--r--tests/CLASSIX/Imakefile152
395 files changed, 0 insertions, 40344 deletions
diff --git a/ace/CLASSIX/CLASSIX_Addr.cpp b/ace/CLASSIX/CLASSIX_Addr.cpp
deleted file mode 100644
index faafc29109d..00000000000
--- a/ace/CLASSIX/CLASSIX_Addr.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Defines the ClassiX IPC address family address format.
-
-#define ACE_BUILD_DLL
-#include "ace/CLASSIX/CLASSIX_Addr.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Addr)
diff --git a/ace/CLASSIX/CLASSIX_Addr.h b/ace/CLASSIX/CLASSIX_Addr.h
deleted file mode 100644
index a5d929b5716..00000000000
--- a/ace/CLASSIX/CLASSIX_Addr.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// CLASSIX_Addr.h
-//
-// = AUTHOR
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_ADDR_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_ADDR_H
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Addr.h"
-
-#include <ipc/chIpc.h>
-#include <ace/CLASSIX/CLASSIX_OS.h>
-
-class ACE_Export ACE_CLASSIX_Addr : public ACE_Addr
-{
- // = TITLE
- // Defines the ClassiX IPC address format.
- //
- // = DESCRIPTION
- // This class defines basic interfaces for "ACE-like" address for
- // Chorus port.
-public:
- enum
- {
- ACE_CLASSIX_ADDR_UNKNOWN = ACE_INVALID_HANDLE, /* K_NONEPORT */
- ACE_CLASSIX_ADDR_DEFAULT = K_DEFAULTPORT,
- AF_CLASSIX = AF_MAX + 1
- };
-
- enum Addr_Type
- {
- PORT, // use Peer_Port
- GROUP, // use Peer_Group
- STAMP, // use peer_Stamp
- DYNAMIC, // use Peer_Group
- UNDEFINED
- };
-
-
- /* -----------------------------------------------------*/
- // = INITIALIZATION
- ACE_CLASSIX_Addr(int /* size of the underlying address structure*/);
- virtual ~ACE_CLASSIX_Addr (void);
-
-
- /* -----------------------------------------------------*/
- // = Direct initialization methods (useful after the object has been
- // constructed).
- // Returns 0 on success, -1 otherwise.
- //
-
- /* -----------------------------------------------------*/
- // = ACCESS
- //
- virtual const KnUniqueId& get_id (void) const;
- // Returns a reference to the unique identifier
-
- virtual ACE_HANDLE get_port_number(void) const;
- virtual ACE_HANDLE get_handle(void) const;
- // Returns the local port no( can be used as an ACE_HANDLE)
-
- virtual int is_configured(void) const;
- // Returns 1, if address information is proper; Returns 0 otherwise
- virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
- // returns the type of the address
-
- // = HELPER
- virtual void dump(void) const;
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declares the dynamic allocation hooks.
-
-private:
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_ADDR_H */
diff --git a/ace/CLASSIX/CLASSIX_Addr.i b/ace/CLASSIX/CLASSIX_Addr.i
deleted file mode 100644
index 13cc5fd48e3..00000000000
--- a/ace/CLASSIX/CLASSIX_Addr.i
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// CLASSIX_Addr.i
-
-ACE_INLINE
-ACE_CLASSIX_Addr::ACE_CLASSIX_Addr(int theSize)
- : ACE_Addr (AF_CLASSIX, theSize)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::~ACE_CLASSIX_Addr(void)
-{
-}
-
-ACE_INLINE
-const KnUniqueId&
-ACE_CLASSIX_Addr::get_id(void) const
-{
- return ACE_CLASSIX_OS::null_KnUniqueId();
-}
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_Addr::get_handle(void) const
-{
- return ACE_INVALID_HANDLE;
-}
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_Addr::get_port_number(void) const
-{
- return get_handle();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Addr::is_configured(void) const
-{
- return 0;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::Addr_Type
-ACE_CLASSIX_Addr::is_type(void) const
-{
- return ACE_CLASSIX_Addr::UNDEFINED;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Addr::dump(void) const
-{
-}
diff --git a/ace/CLASSIX/CLASSIX_CLD_Connector.cpp b/ace/CLASSIX/CLASSIX_CLD_Connector.cpp
deleted file mode 100644
index 1baf897b75b..00000000000
--- a/ace/CLASSIX/CLASSIX_CLD_Connector.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// $Id$
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_CLD_Connector.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-//
-// ============================================================================
-*/
-#define ACE_BUILD_DLL
-#include "ace/CLASSIX/CLASSIX_CLD_Connector.h"
-#include "ace/CLASSIX/CLASSIX_Addr.h"
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_CLD_Connector)
-
-#if !defined (__ACE_INLINE__)
-#include "CLASSIX_CLD_Connector.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-
-ACE_CLASSIX_CLD_Connector::ACE_CLASSIX_CLD_Connector (
- ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms,
- int protocol_family,
- int protocol)
-{
- ACE_TRACE ("ACE_CLASSIX_CLD_Connector::ACE_CLASSIX_CLD_Connector");
- if (this->connect (new_stream, remote_sap, timeout, local_sap,
- reuse_addr, flags, perms,
- protocol_family, protocol) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p\n"), ACE_TEXT
- ("ACE_CLASSIX_CLD_Connector::ACE_CLASSIX_CLD_Connector")));
-}
-
-// Set up remote port information
-int
-ACE_CLASSIX_CLD_Connector::connect (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr & theRemote,/* remote_sap */
- ACE_Time_Value *, /* timeout */
- const ACE_Addr & theLocal,
- int, /* reuse_addr */
- int theFlag, /* flags */
- int, /* perms */
- int theProtocolFamily,
- int /* protocol */)
-
-{
- ACE_TRACE ("ACE_CLASSIX_CLD_Connector::connect");
- //
- // Set up peer SAP
- //
- if (theRemote == ACE_Addr::sap_any ||
- new_stream.set_peer_sap(theRemote) != 0)
- ACE_ERROR_RETURN((LM_ERROR, "ACE_CLASSIX_CLD_Connector::connect()::"
- "Invalid Connector SAP\n"), -1);
-
- //
- // Set up local SAP
- //
- if (theLocal == ACE_Addr::sap_any)
- {
- // if local sap has not been configured
- // create a port and use it as the local SAP
- new_stream.open();
- }
- else
- {
- // replace the local SAP information
- new_stream.close();
- new_stream.open(theLocal);
- }
-
- //
- // Make the local SAP "selectable", if requested via the flag
- //
- if (new_stream.local_sap().is_configured() &&
- new_stream.peer_sap().is_configured() && /* remote sap info exist */
- theProtocolFamily == ACE_CLASSIX_Addr::AF_CLASSIX)
- {
- new_stream.control();
- // setup the default delivery mode, if applicable
- if (theFlag & ACE_CLASSIX_CLD_Connector::ENABLE)
- {
- if (new_stream.selectable() == 0)
- return 0;
- else
- return -1;
- }
- return 0;
- }
- else
- {
- return -1;
- }
-}
-
-void
-ACE_CLASSIX_CLD_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_CLASSIX_CLD_Connector::dump");
-}
-
-/* ------------------------------------------------------------------------- */
diff --git a/ace/CLASSIX/CLASSIX_CLD_Connector.h b/ace/CLASSIX/CLASSIX_CLD_Connector.h
deleted file mode 100644
index 4b1d7b0dca2..00000000000
--- a/ace/CLASSIX/CLASSIX_CLD_Connector.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_CLD_Connector.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-*/
-
-#ifndef ACE_CLASSIX_CLD_CONNECTOR_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_CLD_CONNECTOR_H
-
-#include "ace/CLASSIX/CLASSIX_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* ------------------------------------------------------------------------- */
-
-class ACE_CLASSIX_CLD_Connector
- // = TITLE
- // Defines an CLASSIX IPC connectionless connection factory for the
- // template methods in <ACE_Connector>.
- //
- // = DESCRIPTION
- // This is used when a client needs to communicate with a server
- // whose SAP address is known beforehand.
- //
- // Although there is a connection
- // procedure, no connection is actually taken place
- // between the client and server, since Chorus IPC does not have
- // connection semantics.
- // The connect procedure is necessary for
- // compatibility with <ACE_SOCK_Connector> class.
- //
- // This class will simplify the client's
- // program, since it provides connection-like communication
- // mechanism.
- //
- // = NOTES
- // The server in this case trusts everyone who lands on the
- // server's SAP.
- //
- // = SEE ALSO
- // ACE_CLASSIX_COD_Connector
-{
- public:
- // = Connect options
- enum OPTIONS
- {
- // Do not enable the local SAP
- // (so that the Reactor will not monitor the port)
- ENABLE = 0x1
- };
-
- // = Initialization routines.
- ACE_CLASSIX_CLD_Connector (void);
- // Default constructor.
-
- ACE_CLASSIX_CLD_Connector (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap
- = ACE_Addr::sap_any,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol_family
- = ACE_CLASSIX_Addr::AF_CLASSIX,
- int protocol = 0);
- // Emulates connection semantics so that it can be plugged into
- // <ACE_Connector>
- // Actively connect local SAP and remote SAP togeter.
- // Produce a <new_stream> if things go well.
- //
- // <remote_sap> is the peer's address. In ACE_SOCK_Connector it refers to
- // the acceptor's address. In connectionless mode, we do not have
- // an acceptor. The <remote_sap> address will be copied to the new stream
- // if things goes well.
- //
- // If <local_sap> refers to any address, a port will be
- // allocated and will be used as a local SAP.
- //
- // The rest parameters are there so that this class can be plugged into
- // <ACE_Connector>.
-
- virtual int connect (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap = ACE_Addr::sap_any,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol_family = ACE_CLASSIX_Addr::AF_CLASSIX,
- int protocol = 0);
-
- // Factory method used in <ACE_Connector>::connect_svc_handler()
-
- // Initialization method when default constructor is used.
- // See the comments for the corresponding constructor
-
- virtual int reset_new_handle (ACE_HANDLE handle);
- // Factory method used in ACE_Connector::handle_output().
- // Meant for resetting any event associations on this handle
- // Does nothig.
-
- // = HELPER
- void dump(void) const;
-
- private:
-
- ACE_CLASSIX_CLD_Connector(ACE_CLASSIX_CLD_Connector const&);
- ACE_CLASSIX_CLD_Connector const& operator=(ACE_CLASSIX_CLD_Connector const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_CLD_Connector.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_CLD_CONNECTOR_H */
diff --git a/ace/CLASSIX/CLASSIX_CLD_Connector.i b/ace/CLASSIX/CLASSIX_CLD_Connector.i
deleted file mode 100644
index 8592b7825d2..00000000000
--- a/ace/CLASSIX/CLASSIX_CLD_Connector.i
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// CLASSIX/CLD_Connector.i
-/* ------------------------------------------------------------------------- */
-
-// Do-nothing constructor...
-
-ACE_INLINE
-ACE_CLASSIX_CLD_Connector::ACE_CLASSIX_CLD_Connector (void)
-{
- ACE_TRACE ("ACE_CLASSIX_CLD_Connector::ACE_CLASSIX_CLD_Connector");
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_CLD_Connector::reset_new_handle (ACE_HANDLE /* handle */)
-{
- return 0;
-}
-
-/* ------------------------------------------------------------------------- */
-
-
diff --git a/ace/CLASSIX/CLASSIX_CO_Acceptor.cpp b/ace/CLASSIX/CLASSIX_CO_Acceptor.cpp
deleted file mode 100644
index ab7708ba09f..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Acceptor.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "CLASSIX_CO_Acceptor.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "CLASSIX_CO_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-ACE_ALLOC_HOOK_DEFINE (ACE_CLASSIX_CO_Acceptor)
-
-// General purpose routine for performing server creation.
-
-ACE_CLASSIX_CO_Acceptor::ACE_CLASSIX_CO_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr,
- int protocol_family,
- int backlog,
- int protocol,
- ACE_Reactor* theReactor)
- : port_ (0),
- reactor_ (theReactor)
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Acceptor::ACE_CLASSIX_CO_Acceptor");
- if (this->open (local_sap, reuse_addr, protocol_family,
- backlog, protocol, theReactor) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_CLASSIX_CO_Acceptor")));
-}
-
-// General purpose routine for performing server creation.
-
-int
-ACE_CLASSIX_CO_Acceptor::open (const ACE_Addr & theLocalSap,
- int /* reuse_addr */,
- int theProtocolFamily,
- int /* backlog */,
- int /* protocol */,
- ACE_Reactor* theReactor)
-{
- // make sure that the client requests for a "CLASSIX" family.
-
- if (theProtocolFamily != ACE_CLASSIX_Addr::AF_CLASSIX)
- return -1;
-
- // Setup local address
-
- int error = 0;
- if (theLocalSap == ACE_Addr::sap_any)
- {
- this->port_ = new ACE_CLASSIX_Port_Core ();
- ACE_ASSERT (this->port_);
- error = this->addr_.set (*this->port_);
- }
- else
- error = this->addr_.set (theLocalSap);
-
- if (error != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Acceptor::open ()::"
- "Cannot setup address\n"), -1);
-
- // Make the port "selectable"
-
- if (this->addr_.selectable () != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Acceptor::open ()::"
- "Cannot enable port\n"), -1);
-
- this->reactor_ = theReactor;
- return 0;
-}
-
-// General purpose routine for accepting new connections.
-
-int
-ACE_CLASSIX_CO_Acceptor::accept (ACE_CLASSIX_Stream &new_stream,
- ACE_Addr *remote_addr,
- ACE_Time_Value* /* timeout */,
- int /* restart */,
- int /* reset_new_handle */) const
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Acceptor::accept");
-
- // Get peer's address info
-
- size_t size = 0;
- if (this->reactor_->current_info (this->get_handle (), size)
- == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Acceptor:.accept ()::"
- "Cannot get peer addr\n"), -1);
-
- ACE_CLASSIX_CO_Acceptor::Peer_Union data;
- ACE_CLASSIX_Msg rmsg (&data, sizeof (ACE_CLASSIX_CO_Acceptor::Peer_Union));
- if (size != sizeof (ACE_CLASSIX_CO_Acceptor::Peer_Union)
- || ::ipcGetData (rmsg.get ()) != size)
- ACE_ERROR_RETURN ((LM_ERROR, "%t"
- "ACE_CLASSIX_CO_Acceptor::accept::ipcGetData (%d)\n",
- size),
- -1);
-
- // Set up Peer SAP
-
- int error = 0;
- switch (data.type)
- {
- case ACE_CLASSIX_Addr::PORT:
- error = new_stream.set_peer_sap (data.choose.port.peer);
- break;
-
- case ACE_CLASSIX_Addr::GROUP:
- error = new_stream.set_peer_sap (data.choose.group.peer);
- break;
-
- case ACE_CLASSIX_Addr::STAMP:
- error = new_stream.set_peer_sap (data.choose.stamp.peer);
- break;
-
- case ACE_CLASSIX_Addr::DYNAMIC:
- error = new_stream.set_peer_sap (data.choose.group.peer);
- break;
-
- default:
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Accept::accept ()::"
- "Invalid peer address\n"), -1);
- }
-
- if (error != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Accept::accept ()::"
- "cannot set peer address\n"), -1);
-
- // Set up local SAP & tell the peer
-
- data.type = ACE_CLASSIX_Addr::UNDEFINED;
-
- if (remote_addr != 0)
- {
- if (remote_addr->get_type () == ACE_CLASSIX_Addr::AF_CLASSIX &&
- ((ACE_CLASSIX_Addr*) remote_addr)->is_type ==
- ACE_CLASSIX_Addr::PORT)
- {
- new_stream.get_local_sap ().set (*remote_addr);
- data.type = ACE_CLASSIX_Addr::PORT;
- }
- }
- else
- {
- ACE_CLASSIX_Port_Core *port = new ACE_CLASSIX_Port_Core ();
- if (new_stream.set_local_port (port) == 0)
- data.type = ACE_CLASSIX_Addr::PORT;;
- }
-
- data.choose.port.peer =
- new_stream.get_local_sap ().get_addr ().get_id ();
-
- ACE_CLASSIX_Msg smsg (&data, sizeof (ACE_CLASSIX_CO_Acceptor::Peer_Union));
-
- if (::ipcReply (smsg.get ()) != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_CLASSIX_CO_Accept::accept ()::"
- "cannot deliver server address to peer\n"), -1);
-
- // Make new_stream's local SAP selectable.
- if (new_stream.selectable () != 0)
- return -1;
-
- return 0;
-}
-
-int
-ACE_CLASSIX_CO_Acceptor::close (void)
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Acceptor::close");
- int result = 0;
-
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- delete this->port_;
- this->port_ = 0;
- ((ACE_CLASSIX_Port) this->addr_.get_addr ()).clear ();
- }
- return 0;
-}
-
-
-int
-ACE_CLASSIX_CO_Acceptor::get_local_addr (ACE_Addr &theAddr) const
-{
- int size = theAddr.get_size ();
- if (size < this->addr_.get_addr ().get_size ())
- return -1;
-
- return this->addr_.get_addr (theAddr);
-}
-
-void
-ACE_CLASSIX_CO_Acceptor::dump (void) const
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Acceptor::dump");
-}
diff --git a/ace/CLASSIX/CLASSIX_CO_Acceptor.h b/ace/CLASSIX/CLASSIX_CO_Acceptor.h
deleted file mode 100644
index 1897518899b..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Acceptor.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// CLASSIX_CO_Acceptor.h
-//
-// = AUTHOR
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_CO_ACCEPTOR_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_CO_ACCEPTOR_H
-
-#include "ace/CLASSIX/CLASSIX_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Time_Value.h"
-
-class ACE_Export ACE_CLASSIX_CO_Acceptor
-{
- // = TITLE
- // Defines the format and interface for a connection
- // oriented <ACE_CLASSIX_Stream> acceptor.
- //
- // = DESCRIPTION
- // This class is the counter part of the <ACE_CLASSIX_Connector>
- // class. It exchanges SAP information to set up a logical
- // connection.
- //
- // Data format passed between a connector and this class uses
- // Peer_Union structure.
- //
- // = SEE ALSO
- // ACE_CLASSIX_Connector
- //
-public:
- struct Peer_Port
- {
- KnUniqueId peer;
- };
-
- struct Peer_Group
- {
- KnCap peer;
- };
-
- struct Peer_Stamp
- {
- int peer;
- };
-
- struct Peer_Union
- {
- int type;
- union
- {
- Peer_Port port;
- Peer_Group group;
- Peer_Stamp stamp;
- }choose;
- };
-
- // = Initialization methods.
- ACE_CLASSIX_CO_Acceptor (ACE_Reactor* = ACE_Reactor::instance());
- // Default constructor.
-
- ACE_CLASSIX_CO_Acceptor (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = ACE_CLASSIX_Addr::AF_CLASSIX,
- int backlog = 0,
- int protocol = 0,
- ACE_Reactor* = ACE_Reactor::instance());
- // Initiate a passive mode socket.
-
- virtual ~ACE_CLASSIX_CO_Acceptor (void);
- // Default dtor.
-
- int open (const ACE_Addr &local_sap,
- int reuse_addr = 0,
- int protocol_family = ACE_CLASSIX_Addr::AF_CLASSIX,
- int backlog = 5,
- int protocol = 0,
- ACE_Reactor* = ACE_Reactor::instance());
- // Initiate a passive mode socket.
- int close (void);
- // Closes down the listening port.
-
- // = Passive connection acceptance method.
- int accept (ACE_CLASSIX_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
- // Accept a new data transfer connection. A <timeout> of 0 means
- // block forever, a <timeout> of {0, 0} means poll. <restart> == 1
- // means "restart if interrupted."
-
- // = ACCESS
- ACE_HANDLE get_handle (void) const;
- // Get the underlying descriptor.
- int get_local_addr (ACE_Addr &) const;
- // Return the local endpoint address in the referenced ACE_Addr.
- // Returns 0 if successful, else -1.
-
- void reactor(ACE_Reactor*);
- // reset the reactor
-
- // = META-TYPE info
- typedef ACE_CLASSIX_Addr PEER_ADDR;
- typedef ACE_CLASSIX_Stream PEER_STREAM;
-
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-protected:
-
-private:
-
- ACE_CLASSIX_Port_Core *port_;
- // optional port.
- // If 0, default port is used.
- ACE_CLASSIX_SAP addr_;
-
- ACE_Reactor *reactor_;
- // for reference only. Does not own it
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "ace/CLASSIX/CLASSIX_CO_Acceptor.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_CO_ACCEPTOR_H */
diff --git a/ace/CLASSIX/CLASSIX_CO_Acceptor.i b/ace/CLASSIX/CLASSIX_CO_Acceptor.i
deleted file mode 100644
index d15dedd007d..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Acceptor.i
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Do nothing routine for constructor.
-ACE_INLINE
-ACE_CLASSIX_CO_Acceptor::ACE_CLASSIX_CO_Acceptor (ACE_Reactor* theReactor)
- : port_ (0),
- reactor_ (theReactor)
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Acceptor::ACE_CLASSIX_CO_Acceptor");
-}
-
-ACE_INLINE
-ACE_CLASSIX_CO_Acceptor::~ACE_CLASSIX_CO_Acceptor(void)
-{
- delete this->port_;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_CO_Acceptor::reactor(ACE_Reactor* theReactor)
-{
- this->reactor_ = theReactor;
-}
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_CO_Acceptor::get_handle(void) const
-{
- return this->addr_.get_handle();
-}
diff --git a/ace/CLASSIX/CLASSIX_CO_Connector.cpp b/ace/CLASSIX/CLASSIX_CO_Connector.cpp
deleted file mode 100644
index 12280142b2b..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Connector.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-// $Id$
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_CO_Connector.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-*/
-#define ACE_BUILD_DLL
-#include "ace/CLASSIX/CLASSIX_CO_Connector.h"
-#include "ace/CLASSIX/CLASSIX_CO_Acceptor.h"
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_CO_Connector)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_CO_Connector.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-
-// Set up remote port information
-
-int
-ACE_CLASSIX_CO_Connector::connect (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr & theAcceptor,/* acceptor */
- ACE_Time_Value * theTimeout, /* timeout */
- const ACE_Addr & theLocal,
- int theReuse,
- int theFlag,
- int thePerm,
- int theProtocolFamily,
- int theProtocol)
-
-{
- //
- // set up local SAP and connector info in <new_stream>
- //
- if (this->ACE_CLASSIX_CLD_Connector::
- connect(new_stream,
- theAcceptor,
- theTimeout,
- theLocal,
- theReuse,
- theFlag & (~ACE_CLASSIX_CLD_Connector::ENABLE),
- thePerm,
- theProtocolFamily,
- theProtocol) != 0)
- return -1;
-
- //
- // make a connection
- //
- // Tell the connector my own SAP
- ACE_CLASSIX_CO_Acceptor::Peer_Union peer;
- size_t size = sizeof (ACE_CLASSIX_CO_Acceptor::Peer_Union);
- peer.type = ACE_CLASSIX_Addr::PORT;
- peer.choose.port.peer = new_stream.local_sap().get_addr().get_id();
-
- if (new_stream.send((void*) &peer, size) != size)
- ACE_ERROR_RETURN((LM_ERROR, "%t|%P|%p\n",
- "ACE_CLASSIX_Connector::connect()::send:"), -1);
- // Wait for peer SAP information from the acceptor
- if (new_stream.ipcRecv((void*) &peer, size, 0, theTimeout) != size)
- ACE_ERROR_RETURN((LM_ERROR, "ACE_CLASSIX_Connector::connect()::"
- "unable to receive connect response\n"), -1);
-
- int error = 0;
- switch (peer.type)
- {
- case ACE_CLASSIX_Addr::PORT:
- error = new_stream.set_peer_sap(peer.choose.port.peer);
- break;
-
- case ACE_CLASSIX_Addr::GROUP:
- error = new_stream.set_peer_sap(peer.choose.group.peer);
- break;
-
- case ACE_CLASSIX_Addr::STAMP:
- error = new_stream.set_peer_sap(peer.choose.stamp.peer);
- break;
-
- case ACE_CLASSIX_Addr::DYNAMIC:
- error = new_stream.set_peer_sap(peer.choose.group.peer);
- break;
-
- default:
- ACE_ERROR_RETURN((LM_ERROR, "ACE_CLASSIX_Connect::connect()::"
- "Invalid peer address\n"), -1);
- }
-
- if (error != 0)
- ACE_ERROR_RETURN((LM_ERROR, "ACE_CLASSIX_Connector::connect()::"
- "unable to receive connect response\n"), -1);
-
-
- //
- // Make the local SAP "selectable"
- //
- if (theFlag & ACE_CLASSIX_CO_Connector::ENABLE &&
- new_stream.selectable() != 0)
- return -1;
-
- return 0;
-}
-
-void
-ACE_CLASSIX_CO_Connector::dump (void) const
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Connector::dump");
-}
-
-/* ------------------------------------------------------------------------- */
diff --git a/ace/CLASSIX/CLASSIX_CO_Connector.h b/ace/CLASSIX/CLASSIX_CO_Connector.h
deleted file mode 100644
index 1d12863e246..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Connector.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_CO_Connector.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-*/
-
-#ifndef ACE_CLASSIX_CO_CONNECTOR_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_CO_CONNECTOR_H
-
-#include "ace/CLASSIX/CLASSIX_CLD_Connector.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* ------------------------------------------------------------------------- */
-
-class ACE_CLASSIX_CO_Connector : public ACE_CLASSIX_CLD_Connector
- // = TITLE
- // Defines an CLASSIX IPC connection factory for the
- // template methods in <ACE_Connector>.
- //
- // = DESCRIPTION
- // This is used when a client needs to communicate with a server
- // whose SAP address is unknown.
- //
- // <ACE_CLASSIX_Connect> and <ACE_CLASSIX_Acceptor> exchanges
- // address(SAP) information to establish a logical link.
- //
- // = NOTES
- // There is no other identifier and sequence information
- // passed between the acceptor and the connector.
- // Some applications may need to have a
- // reliable protocol for the connection setup procedure.
- //
- // = SEE ALSO
- // ACE_CLASSIX_CLD_Connector
- // ACE_CLASSIX_Acceptor
- //
-{
- public:
- // = Initialization routines.
- ACE_CLASSIX_CO_Connector (void);
- // Default constructor.
-
- ACE_CLASSIX_CO_Connector (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap
- = ACE_Addr::sap_any,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol_family
- = ACE_CLASSIX_Addr::AF_CLASSIX,
- int protocol = 0);
- // Emulates connection semantics so that it can be plugged into
- // <ACE_Connector>
- // Actively connect local SAP and remote SAP togeter.
- // Produce a <new_stream> if things go well.
- //
- // <remote_sap> is the peer's address. In ACE_SOCK_Connector it refers to
- // the acceptor's address. In connectionless mode, we do not have
- // an acceptor. The <remote_sap> address will be copied to the new stream
- // if things goes well.
- //
- // If <local_sap> refers to any address, a port will be
- // allocated and will be used as a local SAP.
- //
- // The rest parameters are there so that this class can be plugged into
- // <ACE_Connector>.
-
- int connect (ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap = ACE_Addr::sap_any,
- ACE_Time_Value *timeout = 0,
- const ACE_Addr &local_sap = ACE_Addr::sap_any,
- int reuse_addr = 0,
- int flags = 0,
- int perms = 0,
- int protocol_family = ACE_CLASSIX_Addr::AF_CLASSIX,
- int protocol = 0);
-
- // Factory method used in <ACE_Connector>::connect_svc_handler()
-
- // Initialization method when default constructor is used.
- // See the comments for the corresponding constructor
-
- // = HELPER
- void dump(void) const;
-
-
- private:
-
- ACE_CLASSIX_CO_Connector(ACE_CLASSIX_CO_Connector const&);
- ACE_CLASSIX_CO_Connector const& operator=(ACE_CLASSIX_CO_Connector const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_CO_Connector.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_CO_CONNECTOR_H */
diff --git a/ace/CLASSIX/CLASSIX_CO_Connector.i b/ace/CLASSIX/CLASSIX_CO_Connector.i
deleted file mode 100644
index 7f28a66719f..00000000000
--- a/ace/CLASSIX/CLASSIX_CO_Connector.i
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// CLASSIX_CO_Connector.i
-/* ------------------------------------------------------------------------- */
-
-ACE_INLINE
-ACE_CLASSIX_CO_Connector::ACE_CLASSIX_CO_Connector (
- ACE_CLASSIX_Stream &new_stream,
- const ACE_Addr &remote_sap,
- ACE_Time_Value *timeout,
- const ACE_Addr &local_sap,
- int reuse_addr,
- int flags,
- int perms,
- int protocol_family,
- int protocol)
- : ACE_CLASSIX_CLD_Connector(new_stream, remote_sap, timeout, local_sap,
- reuse_addr, flags, perms,
- protocol_family, protocol)
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Connector::ACE_CLASSIX_CO_Connector");
-}
-
-// Do-nothing constructor...
-
-ACE_INLINE
-ACE_CLASSIX_CO_Connector::ACE_CLASSIX_CO_Connector (void)
- : ACE_CLASSIX_CLD_Connector()
-{
- ACE_TRACE ("ACE_CLASSIX_CO_Connector::ACE_CLASSIX_CO_Connector");
-}
-
-/* ------------------------------------------------------------------------- */
-
-
diff --git a/ace/CLASSIX/CLASSIX_Dgram_Mcast.cpp b/ace/CLASSIX/CLASSIX_Dgram_Mcast.cpp
deleted file mode 100644
index 112d25956b7..00000000000
--- a/ace/CLASSIX/CLASSIX_Dgram_Mcast.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// IPP
-//
-// = FILENAME
-// CLASSIX/Dgram_Mcast.cpp
-//
-// = AUTHOR(S)
-// Wei Chiang
-//
-// = COPYRIGHT
-// Copyright 1998 Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Dgram_Mcast.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Dgram_Mcast.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-int
-ACE_CLASSIX_Dgram_Mcast::set_saps(int theStamp,
- const ACE_CLASSIX_Port& thePort)
-{
- this->local_sap_.set_addr(thePort);
- if (this->peer_sap_.set(theStamp) != 0)
- {
- errno = EADDRNOTAVAIL;
- ACE_ERROR_RETURN((LM_ERROR, "ACE_CLASSIX_Dgram_Mcast- "
- "failed to set up peer sap address \n"), -1);
- }
- else
- {
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
- return 0;
- }
-}
-
-
-int
-ACE_CLASSIX_Dgram_Mcast::set_mode_(u_int theMode, int theSite)
-{
- int result = K_EFAULT;
- if (theMode <= K_FUNCXMODE &&
- (result =::uiSite(&this->dest_.coTarget, theSite)) == 0)
- result = ::ipcTarget(&this->dest_.target, theMode);
-
- if (result != 0)
- {
- errno = ACE_CLASSIX_OS::convert_io_error(result);
- result = -1;
- }
- return result;
-}
-
-int
-ACE_CLASSIX_Dgram_Mcast::set_mode_(u_int theMode)
-{
- int result = K_EFAULT;
- if (theMode <= K_FUNCXMODE )
- result = ::ipcTarget(&this->dest_.target, theMode);
-
- if (result < 0)
- {
- errno = ACE_CLASSIX_OS::convert_io_error(result);
- result = -1;
- }
- return result;
-}
-
-
-void
-ACE_CLASSIX_Dgram_Mcast::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Dgram_Mcast...\n"));
- this->ACE_CLASSIX_Stream::dump();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Dgram_Mcast.h b/ace/CLASSIX/CLASSIX_Dgram_Mcast.h
deleted file mode 100644
index 952d24e9022..00000000000
--- a/ace/CLASSIX/CLASSIX_Dgram_Mcast.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Dgram_Mcast.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_DGRAM_MCAST_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_DGRAM_MCAST_H
-
-/* ------------------------------------------------------------------------- */
-#include <ace/CLASSIX/CLASSIX_Stream.h>
-
-class ACE_CLASSIX_Dgram_Mcast : public ACE_CLASSIX_Stream
- // = TITLE
- // Provides Dgram_Mcast interfaces for CLASSIX IPC communications.
- //
- // = DESCRIPTION
- // This class represents multiple end-points for message delivery.
- // All the remote ports are belong to the same group identified by
- // a stamp.
- // It uses the broadcast mode provided by ipcSend() to deliver
- // messages.
- //
- // This class is most likely used in the server.
- //
-{
- public:
- // = INITIALIZATION
- ACE_CLASSIX_Dgram_Mcast(void);
- // Default constructor, does not setup anything
-
- ACE_CLASSIX_Dgram_Mcast(int /* stamp */,
- const ACE_CLASSIX_Port& =
- *ACE_CLASSIX_DEFAULT_PORT::instance());
- // remote SAP = port group, local SAP = default port
-
- int set_saps(int /* stamp */,
- const ACE_CLASSIX_Port& =
- *ACE_CLASSIX_DEFAULT_PORT::instance());
- // remote SAP = port group, local SAP = default port
-
- //virtual ssize_t send (const void *, /* buf */
- // size_t /* n */) const;
-
-
- // = HELPER
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
- protected:
-
- virtual int set_mode_(u_int = K_BROADMODE); /* theMode */
- // Sets the addressing mode with the current setting of coTarget
- virtual int set_mode_(u_int, /* mode */ int /* site */);
- // Sets the addressing mode as well as the coTarget
-
- // Site information for delivery mode, see <ACE_CLASSIX_Stream::dest_ >
- // Can be changed by control()/set_mode_()
- int dest_site_;
-
-
- private:
- // Disable copy constructor
- ACE_CLASSIX_Dgram_Mcast(ACE_CLASSIX_Dgram_Mcast const&);
- ACE_CLASSIX_Dgram_Mcast const& operator=(ACE_CLASSIX_Dgram_Mcast const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Dgram_Mcast.i"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_DGRAM_MCAST_H */
diff --git a/ace/CLASSIX/CLASSIX_Dgram_Mcast.i b/ace/CLASSIX/CLASSIX_Dgram_Mcast.i
deleted file mode 100644
index 5d9fd3df0d3..00000000000
--- a/ace/CLASSIX/CLASSIX_Dgram_Mcast.i
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// ace/CLASSIX_Dgram_Mcast.i
-/* ------------------------------------------------------------------------- */
-ACE_INLINE
-ACE_CLASSIX_Dgram_Mcast::ACE_CLASSIX_Dgram_Mcast(void)
- : ACE_CLASSIX_Stream()
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Dgram_Mcast::ACE_CLASSIX_Dgram_Mcast (int theStamp,
- const ACE_CLASSIX_Port& thePort)
- : ACE_CLASSIX_Stream()
-{
- this->set_saps(theStamp, thePort);
-}
-
-
-/* ------------------------------------------------------------------------- */
diff --git a/ace/CLASSIX/CLASSIX_Group.cpp b/ace/CLASSIX/CLASSIX_Group.cpp
deleted file mode 100644
index cb0064d3298..00000000000
--- a/ace/CLASSIX/CLASSIX_Group.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Group.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Group.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-
-void
-ACE_CLASSIX_Group::init_(void)
-{
- this->clear_config_();
- this->addr_.group_.ui.uiHead = this->addr_.group_.ui.uiTail = 0;
- this->addr_.group_.key.keyHead = this->addr_.group_.key.keyTail = 0;
-}
-
-void
-ACE_CLASSIX_Group::set_addr(void* theSrc, int theLen)
-{
- if (theLen > this->get_size())
- return;
-
- ACE_OS::memcpy ((void *) &this->addr_,
- (void *) theSrc, theLen);
-}
-
-void
-ACE_CLASSIX_Group::set_addr(const KnCap& thePeer)
-{
- this->addr_.group_ = thePeer;
- this->set_config_();
-}
-
-
-int
-ACE_CLASSIX_Group::insert(const ACE_CLASSIX_Port* thePort)
-{
- if (this->is_configured())
- return ::grpPortInsert((KnCap*) &this->get_cap(),
- (KnUniqueId*) &thePort->get_id());
- else
- return K_EINVAL;
-}
-
-int
-ACE_CLASSIX_Group::remove(const ACE_CLASSIX_Port* thePort)
-{
- if (this->is_configured())
- return ::grpPortRemove((KnCap*) &this->get_cap(),
- (KnUniqueId*) &thePort->get_id());
- else
- return K_EINVAL;
-}
-
-void
-ACE_CLASSIX_Group::dump(void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Group...\n"));
- char s[200];
- if (!this->is_configured())
- ACE_OS::sprintf(s, "Group has not been setup\n");
- else
- {
- const KnCap &group = this->get_cap();
- ACE_OS::sprintf (s, "id head = %d(%x), id tail = %d(%x)\n"
- "key head = %d(%x) key tail = %d(%x)\n",
- group.ui.uiHead, group.ui.uiHead,
- group.ui.uiTail, group.ui.uiTail,
- group.key.keyHead, group.key.keyHead,
- group.key.keyTail, group.key.keyTail);
- }
- ACE_DEBUG ((LM_DEBUG, "\n%s", s));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Group.h b/ace/CLASSIX/CLASSIX_Group.h
deleted file mode 100644
index 0b8f9fc75a2..00000000000
--- a/ace/CLASSIX/CLASSIX_Group.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX/Group.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_GROUP_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_GROUP_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/CLASSIX/CLASSIX_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/CLASSIX/CLASSIX_Port.h"
-
-class ACE_CLASSIX_Group : public ACE_CLASSIX_Addr
- // = TITLE
- // Wrapper over Chorus's Group concept.
- //
- // = DESCRIPTION
- // Provides interface to insert and remove ports in the group which is
- // created based on a given KnCap. This"<KnCap> is the unique
- // identifier of the group.
- //
- // = NOTE
- // Chorus does not provide facility to remove a group from the system,
- // nor explicitly create a group.
- // As such, the wrapper allows users to freely change from one group
- // to the other within the same <ACE_CLASSIX_Group> instance.
- //
- // = SEE ALSO
- // <ACE_CLASSIX_Group_Stamp>, <ACE_CLASSIX_Group_Dynamic>
- //
-{
- public:
- // = INITIALIZATION
- ACE_CLASSIX_Group(void*, /* group id */ int /* len */);
- // Sets up the group wrapper using the supplied group id.
- ACE_CLASSIX_Group(const KnCap&);
- // Sets up the group wrapper using the supplied KnCap
-
- // = ACCESS
- int is_configured(void) const;
- // Returns 1, if it contains valid group id; 0, otherwise.
- virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
- // returns GROUP type
- void* get_addr(void) const;
- // Returns the group id
- virtual const KnUniqueId& get_id (void) const;
- // Returns a reference to the unique identifier
- virtual void set_addr(void* /* source */, int /* len */);
- // Sets the group information according to the supplied data
- // in raw format.
- virtual void set_addr(const KnCap&);
- // Sets the group information according to the supplied KnCap.
- const KnCap& get_cap(void) const;
- // Returns the capability to the supplied location
- // If the address is not configured, the return value is unpredictable.
- int insert(const ACE_CLASSIX_Port*);
- int remove (const ACE_CLASSIX_Port*);
- // Inserts/removes the specified port in to the group
- // Returns 0, if successful; returns a negative value otherwise
-
- bool operator == (const ACE_CLASSIX_Group &) const;
- bool operator != (const ACE_CLASSIX_Group &) const;
-
- // = HELPER
- void dump(void) const;
-
- protected:
- // = INITIALIZATION
- ACE_CLASSIX_Group();
- // default constructor, does nothing but init.
-
- void init_(void);
- // Initializes the structure.
-
- void set_config_();
- // Sets the group configured.
- void clear_config_();
- // Sets the group not-configured.
-
- struct group_addr
- {
- int config_; // 1, if the following fields are valid
- KnCap group_;
- };
- group_addr addr_;
-
- private:
-
- // disable copy/assignment constructor
- ACE_CLASSIX_Group(ACE_CLASSIX_Group const&);
- ACE_CLASSIX_Group const& operator=(ACE_CLASSIX_Group const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_GROUP_H */
diff --git a/ace/CLASSIX/CLASSIX_Group.i b/ace/CLASSIX/CLASSIX_Group.i
deleted file mode 100644
index 9ca1f49875e..00000000000
--- a/ace/CLASSIX/CLASSIX_Group.i
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Group::ACE_CLASSIX_Group()
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Group::group_addr))
-{
- this->init_();
-}
-
-ACE_INLINE
-ACE_CLASSIX_Group::ACE_CLASSIX_Group(void* theSrc, int theLen)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Group::group_addr))
-{
- this->set_addr(theSrc, theLen);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Group::ACE_CLASSIX_Group(const KnCap& thePeer)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Group::group_addr))
-{
- this->set_addr(thePeer);
-}
-
-ACE_INLINE
-void *
-ACE_CLASSIX_Group::get_addr(void) const
-{
- return (void*) &this->addr_;
-}
-
-ACE_INLINE
-const KnUniqueId&
-ACE_CLASSIX_Group::get_id(void) const
-{
- return this->addr_.group_.ui;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Group::is_configured(void) const
-{
- return this->addr_.config_ == 1;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::Addr_Type
-ACE_CLASSIX_Group::is_type(void) const
-{
- return ACE_CLASSIX_Addr::GROUP;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Group::set_config_(void)
-{
- this->addr_.config_ = 1;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Group::clear_config_(void)
-{
- this->addr_.config_ = 0;
-}
-
-ACE_INLINE
-const KnCap&
-ACE_CLASSIX_Group::get_cap(void) const
-{
- return this->addr_.group_;
-}
-
-ACE_INLINE
-bool
-ACE_CLASSIX_Group::operator ==(const ACE_CLASSIX_Group & theRhs) const
-{
- return
- this->is_configured() &&
- theRhs.is_configured() &&
- ((KnCap) (this->get_cap()) == (KnCap) (theRhs.get_cap()));
-}
-
-ACE_INLINE
-bool
-ACE_CLASSIX_Group::operator !=(const ACE_CLASSIX_Group & theRhs) const
-{
- return !(*this == theRhs);
-}
diff --git a/ace/CLASSIX/CLASSIX_Group_Dynamic.cpp b/ace/CLASSIX/CLASSIX_Group_Dynamic.cpp
deleted file mode 100644
index a0ecbe357e6..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Dynamic.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Group_Creator.cpp.1
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Group_Dynamic.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group_Dynamic.i"
-#endif /* __ACE_INLINE__ */
diff --git a/ace/CLASSIX/CLASSIX_Group_Dynamic.h b/ace/CLASSIX/CLASSIX_Group_Dynamic.h
deleted file mode 100644
index ffc070f9c93..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Dynamic.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Group_Dynamic.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_GROUP_DYNAMIC_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_GROUP_DYNAMIC_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/CLASSIX/CLASSIX_Group.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_CLASSIX_Group_Dynamic : public ACE_CLASSIX_Group
- // = TITLE
- // Wrapper over Chorus's Group which is created dynamically and not named
- // by a <Stamp>.
- //
- // = DESCRIPTION
- // This is a subclass of <ACE_CLASSIX_Group>.
- //
- // Its encapsulated group is created dynamically and the
- // <KnCap> is the name as well as the unique identifier.
- //
- // = SEE ALSO
- // <ACE_CLASSIX_Group>, <ACE_CLASSIX_Group_Stamp>
-{
- public:
-
- ACE_CLASSIX_Group_Dynamic(void);
- // default constructor... create a group use Chorus IPC's K_DYNAMIC option
-
- virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
- // returns Dynamic type
-
- private:
-
- ACE_CLASSIX_Group_Dynamic(ACE_CLASSIX_Group_Dynamic const&);
- ACE_CLASSIX_Group_Dynamic const& operator=(ACE_CLASSIX_Group_Dynamic const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group_Dynamic.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_GROUP_DYNAMIC_H */
diff --git a/ace/CLASSIX/CLASSIX_Group_Dynamic.i b/ace/CLASSIX/CLASSIX_Group_Dynamic.i
deleted file mode 100644
index a7974ce45c1..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Dynamic.i
+++ /dev/null
@@ -1,16 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Group_Dynamic::ACE_CLASSIX_Group_Dynamic(void)
-{
- if (::grpAllocate( K_DYNAMIC, &this->addr_.group_, 0) == 0)
- this->set_config_();
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::Addr_Type
-ACE_CLASSIX_Group_Dynamic::is_type(void) const
-{
- return ACE_CLASSIX_Addr::DYNAMIC;
-}
diff --git a/ace/CLASSIX/CLASSIX_Group_Stamp.cpp b/ace/CLASSIX/CLASSIX_Group_Stamp.cpp
deleted file mode 100644
index b1205ca66ec..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Stamp.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// ace/CLASSIX_Group_Stamp.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Group_Stamp.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group_Stamp.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-void
-ACE_CLASSIX_Group_Stamp::set_addr(void* theStamp, int)
-{
- // Get the group capability
- this->stamp_ = *((u_int*)theStamp);
- KnActorPrivilege actor;
- actorPrivilege(K_MYACTOR, &actor, NULL);
- if (::grpAllocate((actor == K_SUPACTOR) ? K_STATSYS : K_STATUSER,
- &this->addr_.group_,
- this->stamp_) < 0 )
- {
- ACE_DEBUG((LM_DEBUG, "ACE_CLASSIX_Group_Stamp()::"
- "group allocation failed\n"));
- this->init_();
- this->stamp_ = ACE_CLASSIX_Group_Stamp::ILLEGAL_STAMP;
- }
- else
- {
- this->set_config_();
- }
-}
-
-void
-ACE_CLASSIX_Group_Stamp::dump(void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Group_Stamp...\n"));
- ACE_DEBUG ((LM_DEBUG, "\nStamp = %d\n", this->get_stamp()));
- this->ACE_CLASSIX_Group::dump();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Group_Stamp.h b/ace/CLASSIX/CLASSIX_Group_Stamp.h
deleted file mode 100644
index 29e01e57892..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Stamp.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Group_Stamp.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_GROUP_STAMP_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_GROUP_STAMP_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/CLASSIX/CLASSIX_Group.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_CLASSIX_Group_Stamp : public ACE_CLASSIX_Group
- // = TITLE
- // Wrapper over Chorus's Group using <Stamp> for naming the group.
- //
- // = DESCRIPTION
- // This is a subclass of <ACE_CLASSIX_Group>.
- //
- // Its encapsulated group is named by a <stamp>. However,
- // <KnCap> is still the unique identifier of the group.
- //
- // = NOTE
- // As at the time of writing, The stamp is contained in the ui.uiTail
- // field of <KnCap>.
- //
- // = SEE ALSO
- // <ACE_CLASSIX_Group>, <ACE_CLASSIX_Group_Dynamic>
- //
-{
- public:
- enum
- {
- ILLEGAL_STAMP = 0
- /* Have we defined the range of valid stamps? */
- };
-
- // = INITIALIZATION
- ACE_CLASSIX_Group_Stamp();
- // default constructor. Does not contain group information..
- ACE_CLASSIX_Group_Stamp(int /* stamp */);
- // creates a group use the specfied stamp
- virtual void set_addr(void*, /* pointer to the stamp */
- int = 0 /* not used */);
- // Replaces the existing group according to the supplied stamp
-
- // = ACCESS
- virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
- // returns STAMP type
-
- int get_stamp() const;
- // Returns the stamp
- // If the address is not configured, the return value is unpredictable.
-
- // = HELPER
- void dump(void) const;
-
-
-
- private:
- u_int stamp_;
-
- // disable copy/assignment constructor
- ACE_CLASSIX_Group_Stamp(ACE_CLASSIX_Group_Stamp const&);
- ACE_CLASSIX_Group_Stamp const& operator=(ACE_CLASSIX_Group_Stamp const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Group_Stamp.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_GROUP_STAMP_H */
diff --git a/ace/CLASSIX/CLASSIX_Group_Stamp.i b/ace/CLASSIX/CLASSIX_Group_Stamp.i
deleted file mode 100644
index 0c03d8ab17a..00000000000
--- a/ace/CLASSIX/CLASSIX_Group_Stamp.i
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Group_Stamp::ACE_CLASSIX_Group_Stamp()
- : ACE_CLASSIX_Group (),
- stamp_ (0)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Group_Stamp::ACE_CLASSIX_Group_Stamp(int theStamp)
- : ACE_CLASSIX_Group ()
-{
- this->set_addr(&theStamp);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Group_Stamp::get_stamp() const
-{
- return this->stamp_;
-
-// return this->addr_.group_.ui.uiTail;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::Addr_Type
-ACE_CLASSIX_Group_Stamp::is_type(void) const
-{
- return ACE_CLASSIX_Addr::STAMP;
-}
diff --git a/ace/CLASSIX/CLASSIX_OS.cpp b/ace/CLASSIX/CLASSIX_OS.cpp
deleted file mode 100644
index 2ec4b6af6d8..00000000000
--- a/ace/CLASSIX/CLASSIX_OS.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_OS.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_OS.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_OS.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.h"
-
-/* ------------------------------------------------------------------------- */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_OS)
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Msg)
-
-#if 0
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Mgr)
-ACE_CLASSIX_Mgr::ACE_CLASSIX_Mgr(void)
-{
-}
-
-ACE_CLASSIX_Mgr::~ACE_CLASSIX_Mgr(void)
-{
-}
-
-ACE_SYNCH_RECURSIVE_MUTEXT&
-ACE_CLASSIX_Mgr::ref_lock(void) const;
-{
- return port_lock_;
-}
-#endif
-/* ------------------------------------------------------------------------- */
-KnUniqueId ACE_CLASSIX_OS::null_KnUniqueId_;
-ACE_Recursive_Thread_Mutex ACE_CLASSIX_OS::lock_;
-
-ACE_CLASSIX_OS::ACE_CLASSIX_OS(void)
-{
- // Create a actor-wide CLASSIX reactor
- ACE_Reactor *r =
- ACE_Reactor::instance
- (new ACE_Reactor(new ACE_CLASSIX_Select_Reactor(), 1), 1);
- delete r;
-
- // Fills in a null KnUniqueId so that it can be referenced when required
- this->null_KnUniqueId_.uiHead = this->null_KnUniqueId_.uiTail = 0;
-}
-
-ssize_t
-ACE_CLASSIX_OS::convert_io_error(ssize_t theOriginal)
-{
- switch (theOriginal)
- {
- case K_EFULL:
- return ENOBUFS;
-
- case K_EINVAL:
- return EFTYPE;
-
- case K_EFAULT:
- return EFAULT;
-
- case K_ETOOMUCH:
- return EMSGSIZE;
-
- case K_EUNKNOWN:
- return EBADF;
-
- case K_ENOPORT:
- return EBADF;
-
- case K_ETIMEOUT:
- return ETIMEOUT;
-
- case K_EABORT:
- return EINTR;
-
- default:
- ACE_DEBUG((LM_DEBUG, "unknonw error: %d\n", theOriginal));
- return EFAULT;
- }
-}
-
-
-
-/* ------------------------------------------------------------------------- */
-
-void
-ACE_CLASSIX_Msg::dump(void) const
-{
- ACE_DEBUG ((LM_INFO, ACE_BEGIN_DUMP, this));
-
- char s[100];
- ACE_OS::sprintf (s, "flag = %x\n"
- "body size = %d\t addr = %x\n"
- "annex addr = %x\n"
- "seq no = %d\n",
- this->msg_.flags,
- this->msg_.bodySize, this->msg_.bodyAddr,
- this->msg_.annexAddr,
- this->msg_.seqNum);
- ACE_DEBUG ((LM_INFO, "%s", s));
- ACE_DEBUG ((LM_INFO, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_OS.h b/ace/CLASSIX/CLASSIX_OS.h
deleted file mode 100644
index 83025d49d74..00000000000
--- a/ace/CLASSIX/CLASSIX_OS.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_OS.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_OS_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_OS_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Select_Reactor.h"
-#include "ace/Singleton.h"
-#include "ace/CLASSIX/CLASSIX_Port_Core.h"
-
-#include <ipc/chIpc.h>
-
-
-#if 0
-class ACE_Export ACE_CLASSIX_Mgr
- // = TITLE
- // Class to manage resouces, especially static resources
- //
- // = DESCRIPTION
- // It is intended that one <ACE_CLASSIX_Mgr> per actor
- //
-{
- public:
- friend ACE_Singleton<ACE_CLASSIX_Mgr, ACE_SYNCH_NULL_MUTEX>;
-
- ACE_SYNCH_RECURSIVE_MUTEXT& ref_lock(const) const;
-
- protected:
- // = Initialization
- ACE_CLASSIX_Mgr(void);
- // Only allow its fried to instantiate, since it is meant as a
- // singleton class.
- // This class shall be instanti
-
-private:
- ACE_SYNCH_RECURSIVE_MUTEX *port_lock_;
-};
-#endif
-
-class ACE_Export ACE_CLASSIX_OS
-{
-public:
-
- ACE_CLASSIX_OS();
-
- static const KnUniqueId& null_KnUniqueId();
- static ssize_t convert_io_error (ssize_t /* CLASSIX' error no */);
- // conver CLASSIX's errno no to Posix no.
-
-protected:
-
-private:
- friend class ACE_CLASSIX_Port_Core;
- friend class ACE_CLASSIX_Port;
- static ACE_Recursive_Thread_Mutex& get_lock_(void);
- // Returns CLASSIX environment-wide lock
-
- static KnUniqueId null_KnUniqueId_;
- // Null-filled KnUniqueId
-
- static ACE_Recursive_Thread_Mutex lock_;
-};
-
-/* ------------------------------------------------------------------------- */
-
-
-class ACE_CLASSIX_Msg
- // = TITLE
- // Class wrapper over Chorus's KnMsgDesc structure
- //
- // = DESCRIPTION
- // Provides initialization and reset methods to construct a KnMsgDesc.
- //
- // The flags in the <flags> field of the KnMsgDesc structure is always
- // set to 0. Therefore, the message body will always be copied and
- // the message is assumed to be part of the user(kernel) address
- // space when the caller is a USER(SUPERVISOR) thread.
- // (Chorus may not support the options defined in the flag, so we
- // choose not to use the flag, i.e. set it to null).
- //
- // The message annex is not used.
-
- // = SEE ALSO
- // ipcSend(2)
-{
- public:
- // = initialization
- ACE_CLASSIX_Msg();
- // default constructor
- ACE_CLASSIX_Msg(const void * /* body address */, int /* msg length */);
-
- KnMsgDesc* get(void);
- // get CLASSIX' message structure
- void set (const void* /* body address */, int /* msg length*/);
- // Reset the message. The original message will be overwritten.
-
- void dump(void) const;
-
- ACE_ALLOC_HOOK_DECLARE;
- // declare the dynamic allocation hooks
-
- private:
- KnMsgDesc msg_;
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_OS.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_OS_H */
diff --git a/ace/CLASSIX/CLASSIX_OS.i b/ace/CLASSIX/CLASSIX_OS.i
deleted file mode 100644
index d5ded0cc75a..00000000000
--- a/ace/CLASSIX/CLASSIX_OS.i
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/* ------------------------------------------------------------------------- */
-ACE_INLINE
-const KnUniqueId&
-ACE_CLASSIX_OS::null_KnUniqueId(void)
-{
- return null_KnUniqueId_;
-}
-
-
-ACE_INLINE
-ACE_Recursive_Thread_Mutex&
-ACE_CLASSIX_OS::get_lock_(void)
-{
- return lock_;
-}
-
-/* ------------------------------------------------------------------------- */
-ACE_INLINE
-ACE_CLASSIX_Msg::ACE_CLASSIX_Msg(void)
-{
- // Make a null-filled message
- this->msg_.flags = 0;
- this->msg_.bodySize = 0;
- this->msg_.bodyAddr = 0;
- this->msg_.annexAddr = 0;
- this->msg_.seqNum = 0;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Msg::ACE_CLASSIX_Msg(const void* theBuf, int theLen)
-{
- this->msg_.flags = 0;
- this->msg_.annexAddr = 0;
- this->msg_.seqNum = 0;
-
- this->msg_.bodySize = theLen;
- this->msg_.bodyAddr = (VmAddr) theBuf;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Msg::set(const void* theBuf, int theLen)
-{
- this->msg_.bodySize = theLen;
- this->msg_.bodyAddr = (VmAddr) theBuf;
-}
-
-ACE_INLINE
-KnMsgDesc*
-ACE_CLASSIX_Msg::get(void)
-{
- return &this->msg_;
-}
diff --git a/ace/CLASSIX/CLASSIX_Peer_SAP.cpp b/ace/CLASSIX/CLASSIX_Peer_SAP.cpp
deleted file mode 100644
index 9dbddf9c0b1..00000000000
--- a/ace/CLASSIX/CLASSIX_Peer_SAP.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Peer_SAP.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Peer_SAP.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Peer_SAP.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/CLASSIX/CLASSIX_Group_Stamp.h"
-/* ------------------------------------------------------------------------- */
-int
-ACE_CLASSIX_Peer_SAP::set(const ACE_CLASSIX_Port_Core& thePeer)
-{
- delete this->peer_addr_;
- this->peer_addr_ = new ACE_CLASSIX_Port (thePeer);
- ACE_ASSERT(this->peer_addr_);
- return 0;
-}
-
-int
-ACE_CLASSIX_Peer_SAP::set(const ACE_Addr& thePeer)
-{
- delete this->peer_addr_;
- this->peer_addr_ = new ACE_CLASSIX_Port (thePeer);
- ACE_ASSERT(this->peer_addr_);
- return 0;
-}
-
-int
-ACE_CLASSIX_Peer_SAP::set(const KnUniqueId& thePeer)
-{
- delete this->peer_addr_;
- this->peer_addr_ = new ACE_CLASSIX_Port (thePeer);
- ACE_ASSERT(this->peer_addr_);
- return 0;
-}
-
-int
-ACE_CLASSIX_Peer_SAP::set(const KnCap& thePeer)
-{
- delete this->peer_addr_;
- this->peer_addr_ = new ACE_CLASSIX_Group (thePeer);
- ACE_ASSERT(this->peer_addr_);
- return 0;
-}
-
-int
-ACE_CLASSIX_Peer_SAP::set(int theStamp)
-{
- delete this->peer_addr_;
- this->peer_addr_ = new ACE_CLASSIX_Group_Stamp (theStamp);
- ACE_ASSERT(this->peer_addr_);
- return 0;
-}
-
-void
-ACE_CLASSIX_Peer_SAP::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Peer_SAP...\n"));
- if (this->peer_addr_)
- this->peer_addr_->dump();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Peer_SAP.h b/ace/CLASSIX/CLASSIX_Peer_SAP.h
deleted file mode 100644
index e2761d79dbc..00000000000
--- a/ace/CLASSIX/CLASSIX_Peer_SAP.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Peer_SAP.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_PEER_SAP_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_PEER_SAP_H
-
-/* ------------------------------------------------------------------------- */
-#include <ace/CLASSIX/CLASSIX_SAP.h>
-#include <ace/CLASSIX/CLASSIX_Port_Default.h>
-
-class ACE_CLASSIX_Peer_SAP
- // = TITLE
- // Class implementing the peer SAP.
- //
- // = DESCRIPTION
- //
- // In CLASSIX, a local SAP is always a port, a peer SAP can be
- // a port or a group of port. This class is for peer SAP and
- // <ACE_SAP> is for local SAP.
- //
- // = SEE ALSO
- // <ACE_SAP>
-{
- public:
- // = INITIALIZATION
- ACE_CLASSIX_Peer_SAP(void);
- // Default constructor.
- // Needs to be initialized by a set() operation.
- ACE_CLASSIX_Peer_SAP(const ACE_CLASSIX_Port_Core&);/* peer port */
-
- ACE_CLASSIX_Peer_SAP(const ACE_CLASSIX_Port&);/* peer port address */
- ACE_CLASSIX_Peer_SAP(const ACE_Addr&); /* peer port address */
-
- ACE_CLASSIX_Peer_SAP(const KnUniqueId&); /* peer port address */
- ACE_CLASSIX_Peer_SAP(const KnCap&); /* peer group address */
- ACE_CLASSIX_Peer_SAP(int /* stamp */); /* stamp for peer group */
-
- ~ACE_CLASSIX_Peer_SAP(void);
-
- int set(const ACE_CLASSIX_Port_Core&); /* peer port */
-
- int set(const ACE_Addr&); /* peer port address */
-
- int set(const KnUniqueId&); /* peer port address */
- int set(const KnCap&); /* peer group address */
- int set(int /* stamp */); /* stamp for the peer group */
-
- // = ACCESS
- const ACE_CLASSIX_Addr* get_addr(void) const;
- // Returns peer's address, either a port or a group of ports
- int is_configured(void) const;
- // Returns 1, if address information is proper; Returns 0 otherwise
-
- // = CONTROL
-#if 0
- int control(u_int = K_BROADMODE);
- int control(u_int, /* mode */ int /* site */ );
- // Interface for CLASSIX' send mode
-#endif
- // = HELPER
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
- protected:
-#if 0
- virtual set_mode_(u_int = K_BROADMODE); /* theMode */
- // Sets the addressing mode with the current setting of coTarget
- virtual set_mode_(u_int, /* mode */ int /* site */);
- // Sets the addressing mode as well as the coTarget
-#endif
- ACE_CLASSIX_Addr *peer_addr_;
-
- private:
- // Disable copy constructor
- ACE_CLASSIX_Peer_SAP(ACE_CLASSIX_Peer_SAP const&);
- ACE_CLASSIX_Peer_SAP const& operator=(ACE_CLASSIX_Peer_SAP const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Peer_SAP.i"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_PEER_SAP_H */
diff --git a/ace/CLASSIX/CLASSIX_Peer_SAP.i b/ace/CLASSIX/CLASSIX_Peer_SAP.i
deleted file mode 100644
index a10bcfd12b5..00000000000
--- a/ace/CLASSIX/CLASSIX_Peer_SAP.i
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(void)
- : peer_addr_ (0)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(const ACE_CLASSIX_Port_Core&
- thePeer)
- : peer_addr_ (0)
-{
- this->set(thePeer);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(const ACE_CLASSIX_Port& thePeer)
- : peer_addr_ (0)
-{
- this->set(thePeer);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(const ACE_Addr& thePeer)
- : peer_addr_ (0)
-{
- this->set(thePeer);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(const KnUniqueId& thePeer)
- : peer_addr_ (0)
-{
- this->set(thePeer);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::ACE_CLASSIX_Peer_SAP(int theStamp)
- : peer_addr_ (0)
-{
- this->set(theStamp);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP::~ACE_CLASSIX_Peer_SAP(void)
-{
- delete this->peer_addr_;
-}
-
-
-ACE_INLINE
-const ACE_CLASSIX_Addr*
-ACE_CLASSIX_Peer_SAP::get_addr(void) const
-{
- return this->peer_addr_;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Peer_SAP::is_configured(void) const
-{
- if (this->peer_addr_)
- return this->peer_addr_->is_configured();
- else
- return 0;
-}
-
-#if 0
-ACE_INLINE
-int
-ACE_CLASSIX_Peer_SAP::control(u_int theMode)
-{
- return this->peer_addr_->set_mode_(theMode);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Peer_SAP::control(u_int theMode, int theSite)
-{
- return this->set_mode_(theMode, theSite);
-}
-
-
-ACE_INLINE
-int
-ACE_CLASSIX_Peer_SAP::set_mode_(u_int)
-{
- return K_EFAULT;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Peer_SAP::set_mode_(u_int, int)
-{
- return K_EFAULT;
-}
-#endif
diff --git a/ace/CLASSIX/CLASSIX_Port.cpp b/ace/CLASSIX/CLASSIX_Port.cpp
deleted file mode 100644
index e819e1abcfd..00000000000
--- a/ace/CLASSIX/CLASSIX_Port.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Defines the ClassiX IPC address family address format.
-
-#define ACE_BUILD_DLL
-#include "ace/CLASSIX/CLASSIX_Port.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Port)
-
-
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(void* thePort, int theLen)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- if (thePort && theLen == this->get_size())
- {
- ACE_CLASSIX_Port_Core::Addr *port =
- (ACE_CLASSIX_Port_Core::Addr*) thePort;
- this->addr_.handle = port->handle;
- this->addr_.id = port->id;
- }
- else
- {
- this->clear();
- }
-}
-
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(ACE_Addr const& theAddr)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- if (theAddr.get_size() == this->get_size() &&
- theAddr.get_type() == this->get_type())
- this->set_(theAddr);
- else
- this->clear();
-}
-
-void
-ACE_CLASSIX_Port::clear(void)
-{
- this->addr_.handle = ACE_CLASSIX_ADDR_UNKNOWN;
- this->addr_.id.uiHead = this->addr_.id.uiTail = 0;
-}
-
-int
-ACE_CLASSIX_Port::set_(const ACE_Addr& theAddr)
-{
- ACE_CLASSIX_Port_Core::Addr *src =
- ((ACE_CLASSIX_Port_Core::Addr*) theAddr.get_addr());
- this->addr_.id = src->id;
- this->addr_.handle = src->handle;
-
- return 0;
-}
-
-int
-ACE_CLASSIX_Port::set(const KnUniqueId& thePort)
-{
- int no = ::portLi((KnUniqueId*) &thePort);
-
- // update the port no only if the no is valid
- if (no < 0)
- // Assume this is a remote port
- no = ACE_INVALID_HANDLE;
-
- this->addr_.handle = no;
- this->addr_.id = thePort;
- return 0;
-}
-
-int
-ACE_CLASSIX_Port::set_handle(ACE_HANDLE thePort)
-{
- if (thePort == ACE_INVALID_HANDLE &&
- ::portUi(&this->addr_.id, thePort) < 0)
- return -1;
-
- this->addr_.handle = thePort;
- return 0;
-}
-
-void
-ACE_CLASSIX_Port::set_addr(void* theSrc, int theLen)
-{
- // Remove self owned first and Make sure no memory overflow
- if (theSrc && theLen > this->get_size())
- return;
-
- ACE_OS::memcpy ((void *) &this->addr_,
- (void *) theSrc, theLen);
-
-}
-
-ACE_CLASSIX_Port const&
-ACE_CLASSIX_Port::operator =(ACE_Addr const& theAddr)
-{
- if (theAddr.get_size() == this->get_size() &&
- theAddr.get_type() == this->get_type())
- {
-
- this->set_(theAddr);
- }
- return *this;
-}
-
-int
-ACE_CLASSIX_Port::addr_to_string (ACE_TCHAR s[], size_t) const
-{
- ACE_OS::sprintf (s, ACE_TEXT ("%d:%d"),
- ACE_TEXT_CHAR_TO_TCHAR (::agetId()),
- this->get_port_number ());
-}
-
-void
-ACE_CLASSIX_Port::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Port...\n"));
- ACE_Addr::dump();
- char s[100];
- ACE_OS::sprintf (s, "handle = %d;\tid head = %x, id tail = %x\n",
- this->get_handle(),
- this->get_id().uiHead, this->get_id().uiTail);
- ACE_DEBUG ((LM_DEBUG, "%s", s));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Port.h b/ace/CLASSIX/CLASSIX_Port.h
deleted file mode 100644
index ee26c195870..00000000000
--- a/ace/CLASSIX/CLASSIX_Port.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Port.h
-//
-// = AUTHOR
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_PORT_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_PORT_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/CLASSIX/CLASSIX_OS.h"
-#include "ace/CLASSIX/CLASSIX_Addr.h"
-
-
-class ACE_Export ACE_CLASSIX_Port : public ACE_CLASSIX_Addr
-{
- // = TITLE
- // Defines the ClassiX IPC Port address format for "ACE Socket" like
- // interfaces
- //
- // = DESCRIPTION
- // The port address contains two fields:
- // a global unique identifier and a local identifier.
- // The global unique identifier is also referred to as the port address
- // and the local identifier as the port no.
- //
- // = NOTE
- // In Chorus, one can always convert from a port unique identifier to
- // a port no and vice versa. This class is implemented based on this
- // premise.
- //
- // = SEE ALSO
- // <ACE_CLASSIX_PORT_Default>, <ACE_CLASSIX_Port_Core>
- //
-public:
- /* -----------------------------------------------------*/
- // = Initialization methods.
- ACE_CLASSIX_Port ();
- // Default constructor.
- // The address corresponds to the default port of the actor.
-
- ACE_CLASSIX_Port (const ACE_CLASSIX_Port &);
- // Copy constructor.
- ACE_CLASSIX_Port (const ACE_Addr &);
- // Copy constructor.
-
- ACE_CLASSIX_Port (const ACE_CLASSIX_Port_Core&);
- // Creates an <ACE_CLASSIX_Port> from <ACE_CLASSIX_Port_Core>
-
- ACE_CLASSIX_Port (const KnUniqueId& /* port_id */);
- // Creates an <ACE_CLASSIX_Port> from the given <port_id>
-
- ACE_CLASSIX_Port (ACE_HANDLE /* port_no */);
- // Creates an <ACE_CLASSIX_Port> from the given <port_no>
-
- ACE_CLASSIX_Port (void* /* location */, int /* length */);
- // Create an <ACE_CLASSIX_Port> from the address in raw format.
-
- ACE_CLASSIX_Port const& operator =(ACE_Addr const&);
-
-
- /* -----------------------------------------------------*/
- // = ACCESS
-
- virtual int addr_to_string (ACE_TCHAR addr[], size_t) const;
- // Transform the current <ACE_CLASSIX_Port> address into string format,
- // which is in the form "actor-id:port-number"
-
- int set (const KnUniqueId& /* port_id */);
- // Sets the <ACE_CLASSIX_Port_Basic> from a <port_id>
-
- virtual void set_addr (void * /* addr location */,
- int /* len */);
- // Set the address as the one pointed to by the location pointer.
- // The address contains <len> bytes.
- // Would prefer to return the status, but the base class uses void.
- int set_handle (ACE_HANDLE /* port_no */);
- // Sets the <addr_> field from a <port_no>
-
- virtual void *get_addr (void) const;
- // Returns a pointer to the address:,
- // <ACE_CLASSIX_Port_Core::ipp_port_addr>
- virtual const KnUniqueId& get_id (void) const;
- // Returns a reference to the port id.
- virtual ACE_HANDLE get_handle (void) const;
- // Returns the port no.
- int is_configured(void) const;
- // Returns 1, if address information is proper; Returns 0 otherwise
- virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
- // returns PORT type
-
- /* -----------------------------------------------------*/
- // = Control
- //
- virtual int enable(int /* receive priority */) const;
- // Puts the port into the set of monitored ports.
- virtual int disable(void) const;
- // Removes the port from the set of monitored ports.
- virtual void clear(void);
- // Remove port information
-
- /* -----------------------------------------------------*/
- // = Comparison
- //
- bool operator == (const ACE_CLASSIX_Port &) const;
- // Compare two addresses for equality. The addresses are considered
- // equal if they have the same content in the KnUniqueId address structure.
-
- bool operator != (const ACE_CLASSIX_Port &) const;
- // Compare two addresses for inequality.
-
- /* -----------------------------------------------------*/
- // = Helper
- //
- void dump (void) const;
- // Dump the state of an object.
-
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-private:
- /* -----------------------------------------------------*/
- // = Direct initialization methods (useful after the object has been
- // constructed).
- // Will create/reset the port only if the port no was <ACE_CLASSIX_ANY>
- // Returns 0 on success, -1 otherwise.
- //
-
- int set_ (const ACE_Addr &);
- // Sets the <ACE_CLASSIX_Port_Basic> from another <ACE_CLASSIX_Port_Basic>.
-
-
-
-private:
- ACE_CLASSIX_Port_Core::Addr addr_;
-};
-
-/* ------------------------------------------------------------------------- */
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port.i"
-#endif /* __ACE_INLINE__ */
-
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_PORT_H */
diff --git a/ace/CLASSIX/CLASSIX_Port.i b/ace/CLASSIX/CLASSIX_Port.i
deleted file mode 100644
index ac0504ca2c0..00000000000
--- a/ace/CLASSIX/CLASSIX_Port.i
+++ /dev/null
@@ -1,113 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(void)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- this->set_handle(K_DEFAULTPORT);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(const ACE_CLASSIX_Port& theSrc)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- this->set_(theSrc);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(const KnUniqueId& thePort)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- this->set(thePort);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(ACE_HANDLE thePort)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- this->set_handle(thePort);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port::ACE_CLASSIX_Port(const ACE_CLASSIX_Port_Core& thePort)
- : ACE_CLASSIX_Addr (sizeof (ACE_CLASSIX_Port_Core::Addr))
-{
- this->addr_.handle = thePort.get_handle();
- this->addr_.id = thePort.get_id();
-}
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_Port::get_handle(void) const
-{
- return this->addr_.handle;
-}
-
-ACE_INLINE
-const KnUniqueId&
-ACE_CLASSIX_Port::get_id(void) const
-{
- return this->addr_.id;
-}
-
-ACE_INLINE
-void *
-ACE_CLASSIX_Port::get_addr(void) const
-{
- return (void*) &this->addr_;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Port::is_configured(void) const
-{
- return (this->addr_.handle != ACE_CLASSIX_ADDR_UNKNOWN);
-}
-
-ACE_INLINE
-ACE_CLASSIX_Addr::Addr_Type
-ACE_CLASSIX_Port::is_type(void) const
-{
- return ACE_CLASSIX_Addr::PORT;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Port::enable(int thePriority) const
-{
- if (ACE_Reactor::instance()->notify() == 0)
- return ::portEnable(K_MYACTOR, this->get_handle(), thePriority);
- else
- return -1;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Port::disable(void) const
-{
- if (ACE_Reactor::instance()->notify() == 0)
- return ::portDisable(K_MYACTOR, this->get_handle());
- else
- return -1;
-}
-
-// Compare two addresses for equality.
-ACE_INLINE
-bool
-ACE_CLASSIX_Port::operator==(const ACE_CLASSIX_Port &theSrc) const
-{
- return
- this->ACE_Addr::operator == (theSrc) &&
- this->addr_.id.uiHead == theSrc.addr_.id.uiHead &&
- this->addr_.id.uiTail == theSrc.addr_.id.uiTail &&
- this->addr_.handle == theSrc.addr_.handle;
-}
-
-ACE_INLINE
-bool
-ACE_CLASSIX_Port::operator != (const ACE_CLASSIX_Port &sap) const
-{
- return !((*this) == sap);
-}
diff --git a/ace/CLASSIX/CLASSIX_Port_Core.cpp b/ace/CLASSIX/CLASSIX_Port_Core.cpp
deleted file mode 100644
index 8ba5ac12ad2..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Core.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Port_Core.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Port_Core.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port_Core.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/CLASSIX/CLASSIX_OS.h"
-/* ------------------------------------------------------------------------- */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Port_Core)
-
-ACE_CLASSIX_Port_Core::ACE_CLASSIX_Port_Core(void)
-{
- if ((this->addr_.handle = ::portCreate(K_MYACTOR, &this->addr_.id)) < 0)
- this->clear_config_();
- else
- {
- this->set_config_();
- }
-}
-
-ACE_CLASSIX_Port_Core::~ACE_CLASSIX_Port_Core(void)
-{
- if (this->is_configured())
- if (int result = ::portDelete(K_MYACTOR, this->get_handle()) < 0)
- ACE_ERROR((LM_DEBUG,
- "ACE_CLASSIX_Port_Core::~ACE_CLASSIX_PORT_CORE()- "
- "failed to delete port, error = %d", result));
-}
-
-void
-ACE_CLASSIX_Port_Core::clear_config_(void)
-{
- this->config_ = 0;
- this->addr_.id.uiHead = this->addr_.id.uiTail = 0;
- this->addr_.handle = ACE_INVALID_HANDLE;
-}
-
-
-void
-ACE_CLASSIX_Port_Core::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Port_Core...\n"));
- char s[100];
- if (!this->is_configured())
- ACE_OS::sprintf(s, "Port has not been allocated\n");
- else
- ACE_OS::sprintf (s, "handle = %d;\tid head = %x, id tail = %x\n",
- this->get_handle(),
- this->get_id().uiHead, this->get_id().uiTail);
- ACE_DEBUG ((LM_DEBUG, "%s", s));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Port_Core.h b/ace/CLASSIX/CLASSIX_Port_Core.h
deleted file mode 100644
index 75be7023f16..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Core.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Port_Core.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_PORT_CORE_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_PORT_CORE_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include <ipc/chIpc.h>
-
-
-/* ------------------------------------------------------------------------- */
-class ACE_Export ACE_CLASSIX_Port_Core
-{
- // = TITLE
- // Defines interfaces for allocation/deallocation of a Chorus
- // IPC port
- //
- // = DESCRIPTION
- // This class allocates a port in the constructor and deallocates it in
- // the destructor.
-
-public:
- /* -----------------------------------------------------*/
- // = Initialization methods.
- ACE_CLASSIX_Port_Core (void);
- // Allocates a port from the OS
- //
- virtual ~ACE_CLASSIX_Port_Core (void);
- // Deallocates the port from the OS.
-
- virtual const KnUniqueId& get_id (void) const;
- // Returns a reference to the port id.
- virtual ACE_HANDLE get_handle (void) const;
- // Returns the port no(used as an ACE_HANDLE)
- virtual void* get_addr(void) const;
- // Returns a pointer to the location containing the raw
- // address of the port.
- int is_configured(void) const;
- // Returns 1, if the port has been successfully created.
-
-#if 0
- int enable(int /* priority */) const;
- int disable (int) const;
- // Puts/Removes the port into/from the set of monitored ports.
-#endif
- /* -----------------------------------------------------*/
- // = Helper
- //
- void dump (void) const;
- // Dump the state of an object.
-
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
- struct Addr
- {
- KnUniqueId id; // port address: unique identifier
- ACE_HANDLE handle;// port no: local identifier.
-
- };
-
-protected:
- void clear_config_();
- // Indicates that port has been allocated.
- void set_config_();
-
- ACE_CLASSIX_Port_Core::Addr addr_;
- int config_; // Sets to 1, if configured;
- // 0 otherwise
-private:
- // Disallow copy constructor/assignment
- ACE_CLASSIX_Port_Core(ACE_CLASSIX_Port_Core const&);
- ACE_CLASSIX_Port_Core const& operator =(ACE_CLASSIX_Port_Core const&);
-};
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port_Core.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_PORT_CORE_H */
diff --git a/ace/CLASSIX/CLASSIX_Port_Core.i b/ace/CLASSIX/CLASSIX_Port_Core.i
deleted file mode 100644
index 7fd3694d8de..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Core.i
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-void
-ACE_CLASSIX_Port_Core::set_config_(void)
-{
- this->config_ = 1;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Port_Core::is_configured(void) const
-{
- return this->config_ == 1;
-}
-
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_Port_Core::get_handle(void) const
-{
- return this->addr_.handle;
-}
-
-ACE_INLINE
-const KnUniqueId&
-ACE_CLASSIX_Port_Core::get_id(void) const
-{
- return this->addr_.id;
-}
-
-ACE_INLINE
-void*
-ACE_CLASSIX_Port_Core::get_addr(void) const
-{
- return (void*) (&this->addr_);
-}
diff --git a/ace/CLASSIX/CLASSIX_Port_Default.cpp b/ace/CLASSIX/CLASSIX_Port_Default.cpp
deleted file mode 100644
index e18d55971e2..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Default.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Defines the ClassiX IPC address family address format.
-
-#define ACE_BUILD_DLL
-#include "ace/CLASSIX/CLASSIX_Port_Default.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port_Default.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_Port_Default)
-
-/* ------------------------------------------------------------------------- */
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Singleton<ACE_CLASSIX_Port_Default,
- ACE_SYNCH_NULL_MUTEX>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiation ACE_Singleton<ACE_CLASSIX_Port_Default,
- ACE_SYNCH_NULL_MUTEX>
-
-#endif
diff --git a/ace/CLASSIX/CLASSIX_Port_Default.h b/ace/CLASSIX/CLASSIX_Port_Default.h
deleted file mode 100644
index f1328d63200..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Default.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Port_Default.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_PORT_DEFAULT_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_PORT_DEFAULT_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/CLASSIX/CLASSIX_Port.h"
-
-class ACE_CLASSIX_Port_Default : public ACE_CLASSIX_Port
-{
- // = TITLE
- // Implements the address wrapper of an actor's default port.
- //
- // = DESCRIPTION
- // This corresponds to the address of an actor's default port
- // which does not change
- // in the life time of the actor. Therefore the address information
- // in this class can not be modified once it is created.
- //
- // Each actor has one and only one default port. Therefore an instance
- // of this class is a singleton. The protected constructor and the
- // friendship with the ACE_Singleton preventys this class from being
- // instantiated by other classes.
- //
- // = NOTE
- //
- // = SEE ALSO
- // <ACE_CLASSIX_PORT>
- //
- friend class ACE_Singleton<ACE_CLASSIX_Port_Default, ACE_SYNCH_NULL_MUTEX>;
-
- /* -----------------------------------------------------*/
- // = Access
- virtual void set_addr(void*, int);
- ACE_CLASSIX_Port const& operator =(ACE_CLASSIX_Port const&);
- ACE_CLASSIX_Port const& operator =(ACE_Addr const&);
- // Does nothing...The default port's address cannot be changed
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-protected:
- /* -----------------------------------------------------*/
- // = Initialization methods.
- ACE_CLASSIX_Port_Default ();
- // Wrapper for the Actor's default port
-};
-
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Port_Default.i"
-#endif /* __ACE_INLINE__ */
-
-/* ------------------------------------------------------------------------- */
-typedef ACE_Singleton<ACE_CLASSIX_Port_Default, ACE_SYNCH_NULL_MUTEX>
- ACE_CLASSIX_DEFAULT_PORT;
-/* ------------------------------------------------------------------------- */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_PORT_DEFAULT_H */
diff --git a/ace/CLASSIX/CLASSIX_Port_Default.i b/ace/CLASSIX/CLASSIX_Port_Default.i
deleted file mode 100644
index fac497bace0..00000000000
--- a/ace/CLASSIX/CLASSIX_Port_Default.i
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Port_Default::ACE_CLASSIX_Port_Default(void)
- : ACE_CLASSIX_Port()
-{
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Port_Default::set_addr(void*, int)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port const&
-ACE_CLASSIX_Port_Default::operator =(ACE_CLASSIX_Port const&)
-{
- return *this;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Port const&
-ACE_CLASSIX_Port_Default::operator =(ACE_Addr const&)
-{
- return *this;
-}
diff --git a/ace/CLASSIX/CLASSIX_SAP.cpp b/ace/CLASSIX/CLASSIX_SAP.cpp
deleted file mode 100644
index 55a9c8183a0..00000000000
--- a/ace/CLASSIX/CLASSIX_SAP.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_SAP.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_SAP.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_SAP.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_ALLOC_HOOK_DEFINE(ACE_CLASSIX_SAP)
-/* ------------------------------------------------------------------------- */
-int
-ACE_CLASSIX_SAP::get_addr(ACE_Addr& theAddr) const
-{
- if (theAddr.get_size() < this->local_addr_.get_size() ||
- theAddr.get_type() != this->local_addr_.get_type())
- {
- return -1;
- }
- else
- {
- theAddr.set_addr(this->local_addr_.get_addr(),
- this->local_addr_.get_size());
- return 0;
- }
-}
-
-void
-ACE_CLASSIX_SAP::set_addr(const ACE_Addr& theAddr)
-{
- this->local_addr_.set_addr(theAddr.get_addr(), theAddr.get_size());
-}
-
-
-void
-ACE_CLASSIX_SAP::set_addr(const ACE_CLASSIX_Port_Core& thePort)
-{
- this->local_addr_.set_addr(thePort.get_addr(),
- sizeof (ACE_CLASSIX_Port_Core::Addr));
-}
-
-int
-ACE_CLASSIX_SAP::set(const KnUniqueId& theId)
-{
- return this->local_addr_.set(theId);
-}
-
-void
-ACE_CLASSIX_SAP::set_handle(ACE_HANDLE theHandle)
-{
- if (this->local_addr_.set_handle(theHandle) == -1)
- ACE_DEBUG((LM_DEBUG, "ACE_CLASSIX_SAP::set_handle()::"
- "Handle invalid\n"));
-}
-
-int
-ACE_CLASSIX_SAP::set(const ACE_Addr& theAddr)
-{
- this->set_addr(theAddr);
- return 0;
-}
-
-int
-ACE_CLASSIX_SAP::open(const ACE_Addr& theAddr)
-{
- this->set_addr(theAddr);
- return 0;
-}
-
-
-int
-ACE_CLASSIX_SAP::set(const ACE_CLASSIX_Port_Core& thePort)
-{
- this->set_addr(thePort);
- return 0;
-}
-
-
-int
-ACE_CLASSIX_SAP::open(const ACE_CLASSIX_Port_Core* thePort)
-{
- if (thePort)
- {
- this->set_addr(ACE_CLASSIX_Port(*thePort));
- return 0;
- }
- else
- return -1;
-}
-
-int
-ACE_CLASSIX_SAP::close(void)
-{
- // Disable receiving
- this->unselectable();
- //*** Do something to flush out potential messages on the local port
- // e.g. have a separte thread call ipcReceive on each disabled SAP.
-
- this->local_addr_.clear();
- return 0;
-}
-
-int
-ACE_CLASSIX_SAP::selectable(int thePriority)
-{
- if (!this->enabled_)
- {
- int result = this->local_addr_.enable(thePriority);
- if (result == 0)
- this->enabled_ = 1;
- return result;
- }
- else
- return 0;
-}
-
-int
-ACE_CLASSIX_SAP::unselectable(int)
-{
- if (this->enabled_)
- {
- int result = this->local_addr_.disable();
- if (result == 0)
- this->enabled_ = 0;
- return result;
- }
- else
- return 0;
-}
-
-
-void
-ACE_CLASSIX_SAP::dump(void) const
-{
- ACE_DEBUG ((LM_INFO, "ACE_CLASSIX_SAP...\n"));
-
- this->local_addr_.dump();
-
- ACE_DEBUG ((LM_INFO, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_SAP.h b/ace/CLASSIX/CLASSIX_SAP.h
deleted file mode 100644
index 746bf6f7280..00000000000
--- a/ace/CLASSIX/CLASSIX_SAP.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_SAP.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_SAP_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_SAP_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/CLASSIX/CLASSIX_Port.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_CLASSIX_SAP
- // = TITLE
- // Class implementing the SAP over a Chorus port.
- //
- // = DESCRIPTION
- // A SAP has a port which is referred to as the local port.
- // This class provides methods to manipulate this port.
- //
- // The SAP will always put the port in DISABLED state on exit.
- //
- // In CLASSIX, a local SAP is always a port, a peer SAP can be
- // a port or a group of port. This class is for local SAP and
- // <ACE_Peer_SAP> is for peer SAP.
- //
- // = SEE ALSO
- // <ACE_Peer_SAP>
- //
-{
- public:
- enum
- {
- DEFAULT_PRIORITY = 10
- };
-
- // = INITIALIZATION
- ACE_CLASSIX_SAP(void);
- // Creates a SAP, using the address of the actor's default port.
- ACE_CLASSIX_SAP(const ACE_Addr&);
- // Creates a SAP, using the specified address as the local address.
- virtual ~ACE_CLASSIX_SAP(void);
-
- // = ACCESS
- void set_addr(const ACE_Addr&);
- void set_addr(const ACE_CLASSIX_Port_Core&);
- // Sets the <local_addr_> based on the given address information.
- // The caller should make sure that the original address can be removed!
- int set(const ACE_Addr&);
- // Returns 0, if successful; returns -1, otherwise
- // same as set_addr(const ACE_Addr&);
- int set(const ACE_CLASSIX_Port_Core&);
- // Returns 0, if successful; returns -1, otherwise
- // same as void set_addr(const ACE_CLASSIX_Port_Core&);
- int set (const KnUniqueId&);
- // Returns 0, if successful; returns -1, otherwise
-
- void set_handle (ACE_HANDLE /* port_no */);
- // Sets the port address according to <port_no>
-
- int get_addr(ACE_Addr& /* return_addr */) const;
- // Returns address information to the supplied location.
- // if successful, return 0 and the return_addr parameter contains the
- // address info.
- // Otherwise, return -1
- const ACE_CLASSIX_Port& get_addr(void) const;
- // Returns a reference to the address information
- ACE_HANDLE get_handle(void) const;
- // Get handles that the Reactor uses
- virtual int is_configured(void) const;
- // Returns 1, if address information is proper; Returns 0 otherwise
- int is_selectable(void) const;
- // Retruns 1, if the local SAP is enabled.
-
- // = CONTROL
- int selectable(int = ACE_CLASSIX_SAP::DEFAULT_PRIORITY /* priority */);
- // Puts the SAP in the ENABLED state so that data the port associated
- // with its local addess can be monitored by the CLASSIX's Reactor.
-
- int unselectable(int = 0 /* not used */);
- // Makes the SAP DISABLED and therefore the SAP can not be monitored
- // by the CLASSIX's Reactor..
- int open(const ACE_Addr&);
- int open(const ACE_CLASSIX_Port_Core*);
- // Sets the address information according to the supplied port
- // Returns 0 on success; returns -1 otherwise
- int close(void);
- // removes the port information
- // Returns 0 on success (always); returns -1 otherwise
-
- void clear(void);
- // erase local port info
-
-#if 0
- int control(u_int = K_BROADMODE);
- int control(u_int, /* mode */ int /* site */ );
- // Interface for CLASSIX' send mode
-#endif
-
-
- // = HELPER
- void dump(void) const;
- // dump the state of an object
-
- ACE_ALLOC_HOOK_DECLARE;
- // declare the dynamic allocation hooks
-
- protected:
-#if 0
- virtual set_mode_(u_int = K_BROADMODE); /* theMode */
- // Sets the addressing mode with the current setting of coTarget
- virtual set_mode_(u_int, /* mode */ int /* site */);
- // Sets the addressing mode as well as the coTarget
-#endif
- // Disable copy constructor/assignment
- ACE_CLASSIX_SAP(ACE_CLASSIX_SAP const&);
- ACE_CLASSIX_SAP const& operator=(ACE_CLASSIX_SAP const&);
-
- ACE_CLASSIX_Port local_addr_;
- int enabled_; // 1 if enabled, 0 if disabled (Default)
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_SAP.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_SAP_H */
diff --git a/ace/CLASSIX/CLASSIX_SAP.i b/ace/CLASSIX/CLASSIX_SAP.i
deleted file mode 100644
index 105570b363b..00000000000
--- a/ace/CLASSIX/CLASSIX_SAP.i
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_SAP::ACE_CLASSIX_SAP(void)
- :local_addr_ (),
- enabled_ (0)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_SAP::ACE_CLASSIX_SAP(const ACE_Addr& theAddr)
- :local_addr_ (theAddr.get_addr(), theAddr.get_size()),
- enabled_ (0)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_SAP::~ACE_CLASSIX_SAP(void)
-{
- this->unselectable();
-}
-
-ACE_INLINE
-const ACE_CLASSIX_Port&
-ACE_CLASSIX_SAP::get_addr(void) const
-{
- return this->local_addr_;
-}
-
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_SAP::get_handle(void) const
-{
- return this->local_addr_.get_handle();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_SAP::is_configured(void) const
-{
- return this->local_addr_.is_configured();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_SAP::is_selectable(void) const
-{
- return this->enabled_ == 1;
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_SAP::clear(void)
-{
- this->local_addr_.clear();
-}
diff --git a/ace/CLASSIX/CLASSIX_Select_Reactor.cpp b/ace/CLASSIX/CLASSIX_Select_Reactor.cpp
deleted file mode 100644
index 4e1b3e70e8d..00000000000
--- a/ace/CLASSIX/CLASSIX_Select_Reactor.cpp
+++ /dev/null
@@ -1,337 +0,0 @@
-// $Id$
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// CLASSIX_Reactor.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-*/
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/CLASSIX/CLASSIX_OS.h"
-/* ------------------------------------------------------------------------- */
-int
-ACE_CLASSIX_Select_Reactor::wait_for_multiple_events
-(ACE_Select_Reactor_Handle_Set &theDispatchSet,
- ACE_Time_Value *max_wait_time)
-{
-
- ACE_Time_Value timer_buf (0);
- ACE_Time_Value *this_timeout = &timer_buf;
-
- int number_of_active_handles = this->any_ready (theDispatchSet);
-
- // If there are any bits enabled in the <ready_set_> then we'll
- // handle those first, otherwise we'll block in select().
-
- if (number_of_active_handles == 0)
- {
- int port = K_ANYENABLED;
- do
- {
- // Monitor all enabled ports
- // CLASSIX uses -1 rathre than 0 for blocked receive
- int msec = -1;
- if (this->timer_queue_->calculate_timeout (max_wait_time,
- this_timeout) != 0)
- {
- if ((msec = this_timeout->msec()) == 0)
- {
- msec = -1;
- this_timeout = 0;
- }
- }
- else
- this_timeout = 0;
-
- ACE_CLASSIX_Msg rmsg(0, 0);
- port = K_ANYENABLED;
- ssize_t size = ::ipcReceive(rmsg.get(), &port, msec);
-#if 0
- ACE_DEBUG((LM_DEBUG,
- "(%t)ACE_CLASSIX_Select_Reactor::"
- "return from ipcReceive():ret = %d"
- ", port = %d, timeout = %d\n",
- size, port, msec));
-#endif
- if (size >= 0)
- {
- // Is 0 valid ???
- // Keep info about which handler this message is for and
- // its size.
- if (this->set_current_info_(port, size) == 0)
- {
- theDispatchSet.rd_mask_.set_bit(port);
- number_of_active_handles = 1;
- }
- else
- {
- ACE_DEBUG((LM_DEBUG,
- "Synchronization problem in Reactor???\n"));
- number_of_active_handles = -1;
- errno = K_EFAULT;
- }
- }
- else
- {
- // make the current message information invalid
- this->set_current_info_(ACE_INVALID_HANDLE, 0);
- if ((errno = size) == K_ETIMEOUT)
- number_of_active_handles = 0;
- else
- number_of_active_handles = -1;
- }
- }
- while (number_of_active_handles == -1 &&
- this->handle_error_ (port) > 0);
- }
- // Return the number of events to dispatch.
- return number_of_active_handles;
-}
-
-int
-ACE_CLASSIX_Select_Reactor::set_current_info_(ACE_HANDLE thePort,
- size_t theSize)
-{
- ACE_MT(ACE_GUARD_RETURN (ACE_SELECT_REACTOR_MUTEX, ace_mon,
- this->token_, -1));
-
- this->current_handle_ = thePort;
- this->current_msg_size_ = theSize;
- return 0;
-}
-
-int
-ACE_CLASSIX_Select_Reactor::current_info(ACE_HANDLE thePort,
- size_t& theSize)
-{
- ACE_MT (ACE_GUARD_RETURN (ACE_SELECT_REACTOR_MUTEX,
- ace_mon, this->token_, -1));
-
- if (this->current_handle_ == thePort)
- {
- theSize = this->current_msg_size_;
- this->current_msg_size_ = 0;
- this->current_handle_ = ACE_INVALID_HANDLE;
- return 0;
- }
- else
- {
- theSize = 0;
- return -1;
- }
-}
-
-int
-ACE_CLASSIX_Select_Reactor::handle_error_ (int thePort)
-{
-
- // The thread has been aborted
- if (errno == K_EABORT)
- return this->restart_;
- // No port or a (Chorus) handler is attached to the port
- else if (errno == K_ENOPORT || errno == K_EINVAL)
- return this->check_handles_ (thePort);
- else
- return -1;
-}
-
-int
-ACE_CLASSIX_Select_Reactor::check_handles_ (int thePort)
-{
- ACE_TRACE ("ACE_CLASSIX_Select_Reactor::check_handles_");
- if (thePort == K_ANYENABLED)
- return -1;
- else
- // Don't know how to check if a Chorus port has been disabled or deleted.
- return 0;
-}
-
-/* ------------------------------------------------------------------------- */
-void
-ACE_CLASSIX_Select_Reactor_Notify::dump (void) const
-{
- ACE_TRACE ("ACE_CLASSIX_Select_Reactor_Notify::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_CLASSIX_select_reactor_ = %x"),
- this->select_reactor_));
- this->notification_sap_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_CLASSIX_Select_Reactor_Notify::open (ACE_Reactor_Impl *theReactor,
- ACE_Timer_Queue*,
- int the_disable_notify_pipe)
-{
- if (the_disable_notify_pipe == 0)
- {
- this->select_reactor_ = ACE_dynamic_cast
- (ACE_CLASSIX_Select_Reactor *, theReactor);
-
- if (this->notification_sap_.open (&this->notification_port_) != 0 ||
- this->notification_sap_.selectable() != 0)
- return -1;
-
- return this->select_reactor_->register_handler
- (this->notification_sap_.get_handle (),
- this,
- ACE_Event_Handler::READ_MASK);
- }
- else
- {
- this->select_reactor_ = 0;
- }
-}
-
-ssize_t
-ACE_CLASSIX_Select_Reactor_Notify::notify (ACE_Event_Handler *eh,
- ACE_Reactor_Mask mask,
- ACE_Time_Value *timeout)
-{
- ACE_Notification_Buffer buffer (eh, mask);
- ACE_CLASSIX_Msg msg(&buffer, sizeof (buffer));
- KnIpcDest dest;
- dest.target = this->notification_sap_.get_addr().get_id();
-
- ssize_t n = ipcSend (msg.get(), K_DEFAULTPORT, &dest);
- if (n < 0)
- ACE_DEBUG((LM_DEBUG, "ipcSend() error = %d\n", n));
- return n == 0 ? 0 : -1;
-}
-
-// Handles pending threads (if any) that are waiting to unblock the
-// Select_Reactor.
-
-int
-ACE_CLASSIX_Select_Reactor_Notify::dispatch_notifications (
- int & number_of_active_handles,
- const ACE_Handle_Set &rd_mask)
-{
- ACE_TRACE ("(%t) ACE_CLASSIX_Select_Reactor_Notify::dispatch_notifications");
-
- ACE_HANDLE read_handle =
- this->notification_sap_.get_handle ();
-
- if (rd_mask.is_set (read_handle))
- {
- number_of_active_handles--;
- return this->handle_input (read_handle);
- }
- else
- return 0;
-}
-
-// Special trick to unblock select() when updates occur in somewhere
-// other than the main ACE_Select_Reactor thread. All we do is write data to
-// a pipe that the ACE_Select_Reactor is listening on. Thanks to Paul
-// Stephenson for suggesting this approach.
-
-int
-ACE_CLASSIX_Select_Reactor_Notify::handle_input (ACE_HANDLE handle)
-{
- // Precondition: this->select_reactor_.token_.current_owner () ==
- // ACE_Thread::self ();
-
- if (handle != this->notification_sap_.get_handle())
- {
- ACE_DEBUG((LM_DEBUG, "ACE_CLASSIX_Select_Reator_Notify::"
- "handle_input() Not my handle\n"));
- return 0;
- }
-
- ssize_t n = 0;
- size_t n1= 0;
-
- int number_dispatched = 0;
-
- ACE_Notification_Buffer buffer;
- ACE_CLASSIX_Msg rmsg(&buffer, sizeof (buffer));
-
- if (this->select_reactor_->current_info(handle, n1) == -1 ||
- n1 != sizeof buffer)
- {
- // I'm not quite sure what to do at this point. It's
- // probably best just to return -1.
- ACE_DEBUG((LM_DEBUG,
- "ACE_CLASSIX_Select_Reactor_Notify:: "
- "read returned %d not expected by the reactor\n", n1));
- return -1;
- }
-
- while ((n = ::ipcGetData(rmsg.get())) > 0)
- {
- if (n != sizeof buffer)
- {
- // I'm not sure quite what to do at this point. It's
- // probably best just to return -1.
- ACE_DEBUG((LM_DEBUG,
- "ACE_CLASSIX_Select_Reactor_Notify::ipcGetDAta() "
- "incorrect read(%d)\n", n));
- return -1;
- }
-
- // If eh == 0 then another thread is unblocking the ACE_Select_Reactor
- // to update the ACE_Select_Reactor's internal structures. Otherwise,
- // we need to dispatch the appropriate handle_* method on the
- // ACE_Event_Handler pointer we've been passed.
- if (buffer.eh_ != 0)
- {
- int result = 0;
-
- switch (buffer.mask_)
- {
- case ACE_Event_Handler::READ_MASK:
- case ACE_Event_Handler::ACCEPT_MASK:
- result = buffer.eh_->handle_input (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::WRITE_MASK:
- result = buffer.eh_->handle_output (ACE_INVALID_HANDLE);
- break;
- case ACE_Event_Handler::EXCEPT_MASK:
- result = buffer.eh_->handle_exception (ACE_INVALID_HANDLE);
- break;
- default:
- // Should we bail out if we get an invalid mask?
- ACE_ERROR ((LM_ERROR, ACE_TEXT ("invalid mask = %d\n"), buffer.mask_));
- }
- if (result == -1)
- buffer.eh_->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::EXCEPT_MASK);
- }
-
- number_dispatched++;
-
- // Bail out if we've reached the <notify_threshold_>. Note that
- // by default <notify_threshold_> is -1, so we'll loop until all
- // the notifications in the pipe have been dispatched.
- if (number_dispatched == this->select_reactor_->max_notify_iterations())
- break;
- }
-
- // Reassign number_dispatched to -1 if things have gone seriously
- // wrong.
- if (n < 0)
- number_dispatched = -1;
-
-
- // Enqueue ourselves into the list of waiting threads. When we
- // reacquire the token we'll be off and running again with ownership
- // of the token. The postcondition of this call is that
- // this->select_reactor_.token_.current_owner () == ACE_Thread::self ();
- this->select_reactor_->renew();
- return number_dispatched;
-}
-/* ------------------------------------------------------------------------- */
diff --git a/ace/CLASSIX/CLASSIX_Select_Reactor.h b/ace/CLASSIX/CLASSIX_Select_Reactor.h
deleted file mode 100644
index 72d127ad86e..00000000000
--- a/ace/CLASSIX/CLASSIX_Select_Reactor.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/*
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// CLASSIX_Reactor.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-*/
-
-#ifndef ACE_CLASSIX_REACTOR_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_REACTOR_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/Timer_Queue.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Select_Reactor.h"
-#include "ace/Message_Block.h"
-#include "ace/CLASSIX/CLASSIX_SAP.h"
-
-class ACE_CLASSIX_Select_Reactor;
-
-class ACE_Export ACE_CLASSIX_Select_Reactor_Notify :
- public ACE_Reactor_Notify
-{
- // = TITLE
- // Unblock the <ACE_CLASSIX_Select_Reactor> from its event loop.
- //
- // = DESCRIPTION
- // This replaces <ACE_Select_Reactor_Notify> class.
- // Instead of using pipe, this class uses an Chorus IPC port to
- // trigger the unblock event.
- //
-public:
- // = Initialization and termination methods.
- ACE_CLASSIX_Select_Reactor_Notify(void);
- ~ACE_CLASSIX_Select_Reactor_Notify(void);
-
- virtual int open (ACE_Reactor_Impl *,
- ACE_Timer_Queue * = 0,
- int = 0 /* dusable_notify_pip */);
- // Enables the notification port and register it with the reactor
- virtual int close (void);
- // Disables the notification port
-
- int dispatch_notifications (int &number_of_active_handles,
- const ACE_Handle_Set &rd_mask);
- // Handles pending threads (if any) that are waiting to unblock the
- // Select_Reactor.
-
- ssize_t notify (ACE_Event_Handler * = 0,
- ACE_Reactor_Mask = ACE_Event_Handler::EXCEPT_MASK,
- ACE_Time_Value * = 0);
- // Called by a thread when it wants to unblock the Select_Reactor.
- // This wakeups the <ACE_Select_Reactor> if currently blocked in
- // select()/poll(). Pass over both the <Event_Handler> *and* the
- // <mask> to allow the caller to dictate which <Event_Handler>
- // method the <Select_Reactor> will invoke. The <ACE_Time_Value>
- // indicates how long to blocking trying to notify the
- // <Select_Reactor>. If <timeout> == 0, the caller will block until
- // action is possible, else will wait until the relative time
- // specified in *<timeout> elapses).
-
- virtual int handle_input (ACE_HANDLE handle);
- // Called back by the Select_Reactor when a thread wants to unblock us.
-
- virtual void max_notify_iterations (int);
- // Set the maximum number of times that the
- // <ACE_CLASSIX_Reactor_Notify::handle_input> method will iterate
- // Always 1.
-
- virtual int max_notify_iterations (void);
- // Get the maximum number of times that the
- // <ACE_Select_Reactor_Notify::handle_input> method will iterate.
- // Always 1
-
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
-private:
- ACE_CLASSIX_Select_Reactor *select_reactor_;
- // Keep a back pointer to the <ACE_Select_Reactor>. If this value
- // if NULL then the <ACE_Select_Reactor> has been initialized with
- // <disable_notify_pipe>.
- ACE_CLASSIX_Port_Core notification_port_; // CLASSIX' IPC port
- ACE_CLASSIX_SAP notification_sap_;
- // The HANDLE that the Select_Reactor is listening on and
- // the HANDLE that threads wanting the attention of the
- // Select_Reactor will write t are the same.
- // It can be seen that the notification port is implicitly connected to the
- // port from where the notification is written. In many cases, it will be
- // the actor's default port.
-};
-
-class ACE_CLASSIX_Select_Reactor : public ACE_Select_Reactor
- // = TITLE
- // Implementing a Reactor for monitoring incoming data
- //
- // = DESCRIPTION
- // This class redefines the wait_for_events() method of
- // <ACE_Select_Reactor> class.
- //
- // The wait_for_events() method uses ipcReceive() to monitor
- // all ENABLED ports for incoming messages. The ipcReceive() is
- // set up such that it will find out the size of the message but will
- // not read the message. The Chorus OS provides an ipcGetData()
- // to read the message that has just been detected on the same
- // thread.
- // Once a message is detected on a particular
- // port, the reactor will invoke the port handler's
- // handle_input() method on the same thread. It is important that
- // handle_input() shall immediately retrieve(use ipcGetData())
- // the message on the same
- // thread and it shall not hold up this thread in the handle_input()
- // routine for too long. This will allow the Reactor to respond to
- // events more quickly.
- //
- // = NOTE
- // Since chorus does not allow ipcReceive to monitor a subset of
- // ENABLED ports. One cannot have two ACE_CLASSIX_Select_Reactors
- // in one actor.
- //
-{
- public:
-
-
- // = CURRENT MESSAGE
- // The following message should be called in the handler's
- // handle_input() routine.
- // The handle_input() routine should not hold the reactor for too long.
- virtual int current_info(ACE_HANDLE /* port */,
- size_t& /* msg size */);
- // Retruns the current messageage to the caleer if the supplied
- // handle id is the same as the <current_handle_>
- // Returns 0, if <msg size> constains the size of the message
- // that the handler shall read.
- // Returns -1, if the caller is not the expected handler.
-
- protected:
- // = INITIALIZATION
- ACE_CLASSIX_Select_Reactor (ACE_Timer_Queue * = 0);
- // Initializes <ACE_CLASSIX_Select__Reactor> with the handler
- // repository of the default size.
-
- ACE_CLASSIX_Select_Reactor (size_t size,
- int restart = 0,
- ACE_Timer_Queue * = 0);
- // Initializes <ACE_CLASSIX_Select_Reactor> with the handler repository of
- // size <size>.
-
- // multiplexer
- virtual int wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &,
- ACE_Time_Value *);
- // Wait for events to occur.
-
- virtual int set_current_info_(ACE_HANDLE /* handle */,
- size_t /* size of data */);
- // record the handler and the size of the message that the handler shall
- // read next.
-
-
- // ACE_Recursive_Thread_Mutex lock_current_;
- // lock for data relating to the current message.
- // use token lock
-
- size_t current_msg_size_;
- // size of the message that has just been detected.
-
- ACE_HANDLE current_handle_;
- // handler id of the current address.
-
- friend class ACE_CLASSIX_Select_Reactor_Notify;
- friend class ACE_CLASSIX_OS;
- // for constructors
-
- private:
- int handle_error_(int /* port handle */);
- // Takes corrective action when errors occur.
- int check_handles_(int /* port handle */);
- // Makes sure the handler is valid.
-
- ACE_CLASSIX_Select_Reactor(ACE_CLASSIX_Select_Reactor const&);
- ACE_CLASSIX_Select_Reactor const& operator=(ACE_CLASSIX_Select_Reactor const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_REACTOR_H */
diff --git a/ace/CLASSIX/CLASSIX_Select_Reactor.i b/ace/CLASSIX/CLASSIX_Select_Reactor.i
deleted file mode 100644
index af4e995cb87..00000000000
--- a/ace/CLASSIX/CLASSIX_Select_Reactor.i
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// CLASSIX/Reactor.i
-/* ------------------------------------------------------------------------- */
-
-/* ------------------------------------------------------------------------- */
-ACE_INLINE
-ACE_CLASSIX_Select_Reactor_Notify::ACE_CLASSIX_Select_Reactor_Notify(void)
- : ACE_Reactor_Notify()
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Select_Reactor_Notify::~ACE_CLASSIX_Select_Reactor_Notify(void)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Select_Reactor::ACE_CLASSIX_Select_Reactor(
- ACE_Timer_Queue *theTimeQ)
- : ACE_Select_Reactor(0, theTimeQ, 0,
- new ACE_CLASSIX_Select_Reactor_Notify()),
- current_msg_size_ (0),
- current_handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-ACE_INLINE
-ACE_CLASSIX_Select_Reactor::ACE_CLASSIX_Select_Reactor (
- size_t theSize,
- int theRs,
- ACE_Timer_Queue *theTimeQ)
- : ACE_Select_Reactor (theSize, theRs, 0, theTimeQ, 0,
- new ACE_CLASSIX_Select_Reactor_Notify() ),
- current_msg_size_ (0),
- current_handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Select_Reactor_Notify::close (void)
-{
- // deregister handle ???
- return this->notification_sap_.close ();
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Select_Reactor_Notify::max_notify_iterations (int iterations)
-{
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Select_Reactor_Notify::max_notify_iterations (void)
-{
- return 1;
-}
-
-
-/* ------------------------------------------------------------------------- */
diff --git a/ace/CLASSIX/CLASSIX_Stream.cpp b/ace/CLASSIX/CLASSIX_Stream.cpp
deleted file mode 100644
index 5d1ba095853..00000000000
--- a/ace/CLASSIX/CLASSIX_Stream.cpp
+++ /dev/null
@@ -1,362 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Stream.cpp
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Stream.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Stream.i"
-#endif /* __ACE_INLINE__ */
-/* ------------------------------------------------------------------------- */
-ACE_CLASSIX_Stream::ACE_CLASSIX_Stream(void)
- : local_sap_ (),
- local_sap_closed_ (0),
- local_port_ (0),
- peer_sap_ (),
- peer_sap_closed_ (1)
-// dest_site_ (-1)
-{
-}
-
-ACE_CLASSIX_Stream::ACE_CLASSIX_Stream
- (const ACE_CLASSIX_Port_Core& thePeer,
- const ACE_CLASSIX_Port& theLocal)
- : local_sap_ (theLocal),
- local_sap_closed_ (0),
- local_port_ (0),
- peer_sap_ (thePeer),
- peer_sap_closed_ (1)
-// dest_site_ (-1)
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
-}
-
-ACE_CLASSIX_Stream::ACE_CLASSIX_Stream(const ACE_CLASSIX_Port& thePeer,
- const ACE_CLASSIX_Port& theLocal)
- : local_sap_ (theLocal),
- local_sap_closed_(0),
- local_port_ (0),
- peer_sap_ (thePeer),
- peer_sap_closed_ (1)
-// dest_site_ (-1)
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
-}
-
-
-ACE_CLASSIX_Stream::ACE_CLASSIX_Stream(const KnUniqueId& thePeer,
- const ACE_CLASSIX_Port& theLocal)
- : local_sap_ (theLocal),
- local_sap_closed_(0),
- local_port_ (0),
- peer_sap_ (thePeer),
- peer_sap_closed_ (1)
-// dest_site_ (-1)
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
-}
-
-int
-ACE_CLASSIX_Stream::set_local_port(ACE_CLASSIX_Port_Core* thePort)
-{
- delete this->local_port_;
- if (this->local_sap_.open(thePort) == 0)
- {
- this->local_port_ = thePort;
- return 0;
- }
- else
- {
- this->local_port_ = 0;
- this->local_sap_.clear();
- return -1;
- }
-}
-
-int
-ACE_CLASSIX_Stream::open(void)
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
- this->open_writer();
-
- if (!this->local_sap().is_configured() ||
- this->local_sap().get_handle() ==
- ACE_CLASSIX_DEFAULT_PORT::instance()->get_handle())
- {
- delete this->local_port_;
- ACE_NEW_RETURN(this->local_port_, ACE_CLASSIX_Port_Core(), -1);
- return this->local_sap_.open(this->local_port_);
- }
-
- return 0;
-}
-
-int
-ACE_CLASSIX_Stream::open(const ACE_Addr& theAddr)
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
- this->open_writer();
-
- if (!this->local_sap().is_configured() ||
- this->local_sap().get_handle() ==
- ACE_CLASSIX_DEFAULT_PORT::instance()->get_handle())
- {
- delete this->local_port_;
- if (theAddr.get_size() != this->local_sap().get_addr().get_size())
- return -1;
- return this->local_sap_.open(theAddr);
- }
- return 0;
-}
-
-int
-ACE_CLASSIX_Stream::close_writer(void)
-{
- if (this->peer_sap_closed_ == 0)
- {
- if (this->send_n(0, 0) < 0)
- ACE_DEBUG((LM_DEBUG, "failed to send a zero byte msg\n"));
- this->peer_sap_closed_ = 1;
- }
- return 0;
-}
-
-void
-ACE_CLASSIX_Stream::open_writer(void)
-{
- this->peer_sap_closed_ = 0;
-}
-
-int
-ACE_CLASSIX_Stream::close(void)
-{
- this->close_writer();
-
- this->local_sap_.close();
- if (this->local_port_)
- {
- delete this->local_port_;
- this->local_port_ = 0;
- }
- this->dest_.target = ACE_CLASSIX_OS::null_KnUniqueId();
- return 0;
-}
-
-void
-ACE_CLASSIX_Stream::set_target_()
-{
- this->dest_.target = this->peer_sap_.get_addr()->get_id();
-}
-
-int
-ACE_CLASSIX_Stream::set_peer_sap(const ACE_Addr& theAddr)
-{
- if (this->peer_sap_.set(theAddr) == 0)
- {
- this->set_target_();
- return 0;
- }
- return -1;
-}
-
-int
-ACE_CLASSIX_Stream::set_peer_sap(const ACE_CLASSIX_Port_Core& theAddr)
-{
- if (this->peer_sap_.set(theAddr) == 0)
- {
- this->set_target_();
- return 0;
- }
- return -1;
-}
-
-int
-ACE_CLASSIX_Stream::set_peer_sap(const KnUniqueId& theAddr)
-{
- if (this->peer_sap_.set(theAddr) == 0)
- {
- this->set_target_();
- return 0;
- }
- return -1;
-}
-
-int
-ACE_CLASSIX_Stream::set_peer_sap(const KnCap& theAddr)
-{
- if (this->peer_sap_.set(theAddr) == 0)
- {
- this->set_target_();
- return 0;
- }
- return -1;
-}
-
-ssize_t
-ACE_CLASSIX_Stream::send_n(const void* theBuf, size_t theLen, int theFlags)
-{
- if (!this->is_writer_closed())
- {
- this->set_mode_(theFlags);
- return this->send_n(theBuf, theLen);
- }
- else
- return 0;
-}
-
-ssize_t
-ACE_CLASSIX_Stream::send_n(const void* theBuf, size_t theLen) const
-{
- if (!this->is_writer_closed())
- {
- ACE_CLASSIX_Msg msg(theBuf, theLen);
- int result = 0;
- if ((result = ::ipcSend((KnMsgDesc*) msg.get(),
- this->local_sap().get_handle(),
- (KnIpcDest*) &this->dest_)) == 0)
- return theLen;
- else
- {
- errno = ACE_CLASSIX_OS::convert_io_error(result);
- return -1;
- }
- }
- else
- {
- return 0;
- }
-}
-
-ssize_t
-ACE_CLASSIX_Stream::reply(const void* theBuf, size_t theLen) const
-{
- if (!this->is_writer_closed())
- {
- ACE_CLASSIX_Msg msg(theBuf, theLen);
- if (int result = ::ipcReply((KnMsgDesc*) msg.get()) == 0)
- return theLen;
- else
- {
- errno = ACE_CLASSIX_OS::convert_io_error(result);
- return -1;
- }
- }
- else
- return 0;
-}
-
-ssize_t
-ACE_CLASSIX_Stream::ipcRecv(void* theBuf, size_t theLen,
- int theFlag, ACE_Time_Value* theTimeout) const
-{
- if (!this->is_reader_closed())
- {
- // In chorus environment, a negative value means block
- // until recv is possible
- int timeout = theTimeout == 0 ? -1 : theTimeout->msec();
- if (timeout == 0)
- timeout = -1;
-
- if (theFlag & MSG_PEEK)
- {
- theBuf = 0;
- theLen = 0;
- }
-
- ACE_CLASSIX_Msg rmsg(theBuf, theLen);
- int handle = this->local_sap().get_handle();
- int result = ::ipcReceive((KnMsgDesc*) rmsg.get(), &handle,
- timeout);
- if (result < 0)
- {
- errno = ACE_CLASSIX_OS::convert_io_error(result);
- return -1;
- }
- else
- return result;
- }
- else
- {
- errno = ENOTCONN;
- return -1;
- }
-}
-
-ssize_t
-ACE_CLASSIX_Stream::ipcRecv_n(void* theBuf, size_t theLen,
- int theFlag, ACE_Time_Value* theTimeout) const
-{
- // Timeout value applies to each around of receive.
- // ....Should be adjusted after each round!
- int len = 0;
- void *next = theBuf;
- size_t more = theLen;
- for (int n = 0;
- more > 0;
- len += n, next += n, more -=n)
- {
- if ((n = this->ipcRecv(next, more, theFlag, theTimeout)) == -1)
- break;
- }
- return len;
-}
-
-ssize_t
-ACE_CLASSIX_Stream::recv(void* theBuf, int theLen) const
-{
- if (!this->is_reader_closed())
- {
- ACE_CLASSIX_Msg rmsg(theBuf, theLen);
- int result = ::ipcGetData(rmsg.get());
- if (result >= 0)
- return result;
- else if (result == K_EINVAL)
- errno = EWOULDBLOCK;
- else
- errno = EFAULT;
-
- return -1;
- }
- else
- return 0;
-}
-
-
-
-void
-ACE_CLASSIX_Stream::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Stream...\n"));
- ACE_DEBUG ((LM_DEBUG, "...local sap(%s)\n",
- this->is_writer_closed() == 1 ? "closed" : "opened"));
- if (this->local_port_)
- ACE_DEBUG ((LM_DEBUG, "\towns the local port(%x)\n",
- this->local_port_));
- this->local_sap().dump();
-
- ACE_DEBUG ((LM_DEBUG, "...Peer sap(%s & %s)\n",
- this->is_reader_closed() == 1 ? "closed" : "opened",
- this->is_selectable() ? "enabled" : "disabled"));
- this->peer_sap().dump();
- ACE_DEBUG((LM_DEBUG, "Dest- Target\n head = %x tail = %x\n",
- this->dest_.target.uiHead,
- this->dest_.target.uiTail
- /* this->dest_site_ */));
- ACE_DEBUG((LM_DEBUG, "Dest- coTarget\n head = %x tail = %x\n",
- this->dest_.coTarget.uiHead,
- this->dest_.coTarget.uiTail
- /* this->dest_site_ */));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
diff --git a/ace/CLASSIX/CLASSIX_Stream.h b/ace/CLASSIX/CLASSIX_Stream.h
deleted file mode 100644
index e728ce5d053..00000000000
--- a/ace/CLASSIX/CLASSIX_Stream.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// CLASSIX_Stream.h
-//
-// = AUTHOR(S)
-// Nokia Telecommunications
-//
-// ============================================================================
-
-#ifndef ACE_CLASSIX_STREAM_H
-#include /**/ "ace/pre.h"
-#define ACE_CLASSIX_STREAM_H
-
-/* ------------------------------------------------------------------------- */
-#include "ace/CLASSIX/CLASSIX_SAP.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/CLASSIX/CLASSIX_Peer_SAP.h"
-#include "ace/CLASSIX/CLASSIX_Port_Default.h"
-
-class ACE_CLASSIX_Stream
- // = TITLE
- // Provides the stream interface for CLASSIX IPC communications.
- //
- // = DESCRIPTION
- // This classes provides a stream wrapper over CLASSIX'
- // IPC. It is designed to be an alternative to Stream type of
- // communication in the UNIX AF_INET environment.
- //
- // To the user, the stream is connection-oriented. The stream
- // is implemented on top of IPC, it is connectionless and its
- // reliability is as good as what the raw IPC can offer.
- //
- // Since CLASSIX IPC is not intended to go across wide area network,
- // it can be seen as an
- // alternative to AF_INET's connection oriented stream, even though
- // the CLASSIX IPC is connectionless.
- //
- // This class contains a local sap, peer sap and data holding
- // delivery mode information.
- //
- // When a stream is created, the peer SAP information must be provided.
- // The local SAP information may be provided in the constructor or
- // open(). The local SAP information given in open() overrides the
- // existing one. If the local SAP address is not given at all, it will
- // allocate a port and use it as the local SAP.
- //
-{
- public:
- ACE_CLASSIX_Stream(void);
- // Default constructor, does not setup anything
- ACE_CLASSIX_Stream(const ACE_CLASSIX_Port_Core&, /* remote port */
- const ACE_CLASSIX_Port& =
- *ACE_CLASSIX_DEFAULT_PORT::instance()); /* local address */
-
- ACE_CLASSIX_Stream(const ACE_CLASSIX_Port&, /* remote port address */
- const ACE_CLASSIX_Port& =
- *ACE_CLASSIX_DEFAULT_PORT::instance());/* local address */
-
- ACE_CLASSIX_Stream(const KnUniqueId&, /* remote port address */
- const ACE_CLASSIX_Port& =
- *ACE_CLASSIX_DEFAULT_PORT::instance());/* local address */
-
- // = IO
- // Returns -1, if fault has occured during receive. errno contains
- // the error condition.
- // Returns no of bytes received/sent, otherwise.
- //
- virtual ssize_t send_n (const void *, /* buf */
- size_t, /* n */
- int /* flags */);
- // Sends exactly n bytes (keep trying until n bytes are sent)
- virtual ssize_t send_n (const void *, /* buf */ size_t /* n */) const;
- // Sends n bytes(keep trying until n bytes are sent)
- // Uses the current addressing mode
- virtual ssize_t send (const void *, /* buf */
- size_t, /* n */
- int /* flags */);
- // Sends n bytes. Same as send_n(buf, n, flag)
- virtual ssize_t send (const void *, /* buf */
- size_t /* n */) const;
- // Sends n bytes. same as send_n(buf, n).
- virtual ssize_t reply (const void *, /* buf */
- size_t /* n */) const;
- // Sends n bytes to the sender of the cureent thread's current message.
-
- ssize_t ipcRecv (void *, /* buffer */
- size_t, /* length */
- int = 0, /* flag: 0 or MSG_PEEK */
- ACE_Time_Value* = 0) const; /* timeout */
- // Recv an <n> byte buffer
- // Wait up to <timeout> amount of time to receive up to <n> bytes
- // into <buf> from <handle> (uses the <recv> call). If <recv> times
- // out a -1 is returned with <errno == ETIMEOUT>. If it succeeds the
- // number of bytes received is returned.
- // If <timeout> == 0, the caller
- // will block until action is possible, else will wait until the
- // relative time specified in *<timeout> elapses).
- ssize_t ipcRecv_n (void *, /* buffer */
- size_t, /* length */
- int = 0, /* flag: 0 or MSG_PEEK */
- ACE_Time_Value* = 0) const; /* timeout */
- // Continue until receives n bytes of data or an error has occurred.
- // Retruns the no of bytes actually received.
- // If it is less than expected, errno contains error info.
-
- ssize_t peek(ACE_Time_Value* = 0 /* timeout */) const;
- // It is the same as recv(0, 0, MSG_PEEK, timeout)
- // This must be followd by get_data() in order to read the peeked message
- ssize_t recv(void* /*buf */, int /* len */) const;
- // Gets data which have been peeked
- ssize_t recv_n(void* /*buf */, int /* len */) const;
- // Gets data which have been peeked
-
- // = ACCESS
- virtual ACE_HANDLE get_handle (void) const;
- // virtual void set_handle (ACE_HANDLE);
- virtual void set_handle(ACE_HANDLE);
- // set the local port's address according to the supplied handle
-
- const ACE_CLASSIX_SAP& local_sap(void) const;
- // Returns read-only local sap
- const ACE_CLASSIX_Peer_SAP& peer_sap(void) const;
- // Returns read-only peer sap
- int get_remote_addr (ACE_Addr & /* dest */) const;
- // Returns 0, if the remote address has been setup, else -1.
- // The <dest> parameter is not changed.
- // This method is here for compatability with SOCK_Stream.
- // Since the remote addr may be a port or a group and since the
- // address formats are different between a port and a group, the caller
- // cannot provide an appropriate buffer for recording the address. The
- // <dest> parameter is therefore not used.
-
-
- const ACE_CLASSIX_Port& local_addr(void) const;
- // Returns local address in <ACE_CLASSIX_Port> format
-
- int is_selectable(void) const;
- // Retruns 1, if the local SAP is enabled.
- int is_writer_closed(void) const;
- // Retruns 1, if writer side is closed.
- int is_reader_closed(void) const;
- // Retruns 1, if reader side is closed.
-
-
- // = CONTROL
- int set_peer_sap(const ACE_Addr&);
- // Returns 0, if successful; returns -1, otherwise
- // same as set_addr(const ACE_Addr&);
- int set_peer_sap(const ACE_CLASSIX_Port_Core&);
- // Returns 0, if successful; returns -1, otherwise
- // same as void set_addr(const ACE_CLASSIX_Port_Core&);
- int set_peer_sap (const KnUniqueId&);
- // Returns 0, if successful; returns -1, otherwise
- int set_peer_sap (const KnCap&);
- // Returns 0, if successful; returns -1, otherwise
-
- virtual int enable(int) const;
- virtual int disable(int) const;
- // These two methods do nothing. They are here to maintain the same
- // interface as other type of Stream class, e.g. ACE_SOCK_Stream
-
- int selectable(int = ACE_CLASSIX_SAP::DEFAULT_PRIORITY);
- int unselectable(void);
- // Enables/Disables the local port to be monitored (by a CLASSIX reactor)
- // Default = DISABLED
- virtual void open_writer(void);
- virtual int close_writer(void);
- // Closes down the writer
- // Returns -1, if it fails; returns 0, otherwise
- // Subclass can overwrite this with sophisticated mechanism, such as
- // exchange protocol information with the peer.
- virtual int close_reader(void);
- // Closes down the writer
- // Returns -1, if it fails; returns 0, otherwise
- // Subclass can overwrite this with sophisticated mechanism, such as
- // exchange protocol information with the peer.
-
- virtual int open(void);
- // for local SAP...
- // Creates a port and uses it as a SAP.
- // A port can be created if the local_sap is not configured or
- // it is configured and the local_sap uses the actor's default port.
- // Returns -1, if it fails; returns 0, otherwise
- virtual int open(const ACE_Addr&);
- // for local SAP...
- // Uses the supplied port information for the local SAP.
- virtual int close(void);
- // for local SAP...
- // Deletes the optional local port and clears the local SAP infomration.
-
- // = OPTIONS
- int control(u_int = K_BROADMODE);
- int control(u_int, /* mode */ int /* site */ );
- // Interface for CLASSIX' send mode
-
- // = HELPER
- void dump (void) const;
- // Dump the state of an object.
-
- ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
-
- protected:
- friend class ACE_CLASSIX_CLD_Connector;
- friend class ACE_CLASSIX_CO_Connector;
- friend class ACE_CLASSIX_CO_Acceptor;
- ACE_CLASSIX_SAP& get_local_sap(void);
- // Returns local sap
- ACE_CLASSIX_Peer_SAP& get_peer_sap(void);
- // Returns peer sap
- int set_local_port(ACE_CLASSIX_Port_Core*);
- // Uses the supplied port as the local port and assumes the ownership
- // of the port. The existing local port, if any, will be deleted.
- // Returns 0, if it is successful.
- // Returns -1, otherwise. The setting of the original local port
- // will be erased.
-
- void set_target_(void);
- // set the delivery target structure using the existing peer information
-
- virtual int set_mode_(u_int = K_BROADMODE); /* theMode */
- // Sets the addressing mode with the current setting of coTarget
- virtual int set_mode_(u_int, /* mode */ int /* site */);
- // Sets the addressing mode as well as the coTarget
-
- ACE_CLASSIX_SAP local_sap_;
- int local_sap_closed_;
- // 0 if it's not closed(default),
- // 1 if it's closed.
- ACE_CLASSIX_Port_Core *local_port_;
- // if non-zero, it will be
- // deleted on exit.
-
- ACE_CLASSIX_Peer_SAP peer_sap_;
- int peer_sap_closed_;
- // 0 if it's not closed(default),
- // 1 if it's closed.
-
- // Mode applied destination address
- // Can be changed by control()/set_mode_()
- // Mode is applicable in IPC classes other than the Stream class.
- // It is here since it is the destination format used by ipcSend.
-
- // with/without additional site information
- // int dest_site_;
- KnIpcDest dest_;
-
- private:
- // Disable copy constructor
- ACE_CLASSIX_Stream(ACE_CLASSIX_Stream const&);
- ACE_CLASSIX_Stream const& operator=(ACE_CLASSIX_Stream const&);
-};
-
-/* ------------------------------------------------------------------------- */
-
-#if defined (__ACE_INLINE__)
-#include "ace/CLASSIX/CLASSIX_Stream.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CLASSIX_Stream_H */
diff --git a/ace/CLASSIX/CLASSIX_Stream.i b/ace/CLASSIX/CLASSIX_Stream.i
deleted file mode 100644
index a876a3d78c9..00000000000
--- a/ace/CLASSIX/CLASSIX_Stream.i
+++ /dev/null
@@ -1,182 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-ACE_INLINE
-ACE_CLASSIX_Stream::~ACE_CLASSIX_Stream(void)
-{
- this->close();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::control(u_int theMode)
-{
- return this->set_mode_(theMode);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::control(u_int theMode, int theSite)
-{
- return this->set_mode_(theMode, theSite);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::set_mode_(u_int theMode)
-{
- return 0;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::set_mode_(u_int theMode, int theSite)
-{
- return 0;
-}
-
-ACE_INLINE
-ssize_t
-ACE_CLASSIX_Stream::peek(ACE_Time_Value* theTimeout) const
-{
- return this->ipcRecv(0, 0, MSG_PEEK, theTimeout);
-}
-
-ACE_INLINE
-ssize_t
-ACE_CLASSIX_Stream::send(const void *theBuf, size_t theLen) const
-{
- return this->send_n(theBuf, theLen);
-}
-
-ACE_INLINE
-ssize_t
-ACE_CLASSIX_Stream::send(const void *theBuf,size_t theLen, int theFlag)
-{
- return this->send_n(theBuf, theLen, theFlag);
-}
-
-ACE_INLINE
-ssize_t
-ACE_CLASSIX_Stream::recv_n(void* theBuf, int theLen) const
-{
- return this->recv_n(theBuf, theLen);
-}
-
-ACE_INLINE
-ACE_HANDLE
-ACE_CLASSIX_Stream::get_handle(void) const
-{
- return this->local_sap_.get_handle();
-}
-
-ACE_INLINE
-void
-ACE_CLASSIX_Stream::set_handle(ACE_HANDLE theHandle)
-{
- this->local_sap_.set_handle(theHandle);
-}
-
-ACE_INLINE
-const ACE_CLASSIX_SAP&
-ACE_CLASSIX_Stream::local_sap(void) const
-{
- return this->local_sap_;
-}
-
-ACE_INLINE
-const ACE_CLASSIX_Peer_SAP&
-ACE_CLASSIX_Stream::peer_sap(void) const
-{
- return this->peer_sap_;
-}
-
-ACE_INLINE
-ACE_CLASSIX_SAP&
-ACE_CLASSIX_Stream::get_local_sap(void)
-{
- return this->local_sap_;
-}
-
-ACE_INLINE
-ACE_CLASSIX_Peer_SAP&
-ACE_CLASSIX_Stream::get_peer_sap(void)
-{
- return this->peer_sap_;
-}
-
-ACE_INLINE
-const ACE_CLASSIX_Port&
-ACE_CLASSIX_Stream::local_addr(void) const
-{
- return this->local_sap_.get_addr();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::selectable(int thePriority)
-{
- return this->local_sap_.selectable(thePriority);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::unselectable(void)
-{
- return this->local_sap_.unselectable();
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::is_selectable(void) const
-{
- return this->local_sap_.is_selectable();
-}
-
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::is_writer_closed(void) const
-{
-
- return (this->peer_sap_closed_ == 1);
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::close_reader(void)
-{
- this->local_sap_closed_ = 1;
- return 0;
-}
-
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::is_reader_closed(void) const
-{
-
- return this->local_sap_closed_ == 1;
-}
-
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::enable(int) const
-{
- return 0;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::disable(int) const
-{
- return 0;
-}
-
-ACE_INLINE
-int
-ACE_CLASSIX_Stream::get_remote_addr(ACE_Addr&) const
-{
- return this->peer_sap_closed_ == 0;
-}
diff --git a/java/ChangeLog b/java/ChangeLog
deleted file mode 100644
index 0f876427365..00000000000
--- a/java/ChangeLog
+++ /dev/null
@@ -1,143 +0,0 @@
-Wed Dec 5 14:35:07 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * EAC/System Manual.doc:
- * EAC/System_Manual.doc:
- Another file with spaces in the name, awful for scripts!
-
-Fri Mar 16 16:17:24 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * java/EAC/User Manual.doc:
- * java/EAC/User_Manual.doc:
- Renamed documentation file, many a script gets confused with
- names that have spaces in them.
-
-Sun Jun 4 14:53:05 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ImageProcessing/framework/MedJava.html:
- * ImageProcessing/framework/test.html:
- * apps/NexusII/start.html:
-
- Added in missing CVS Id strings.
-
-Tue Aug 24 13:09:15 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/*, tests/*, netsvcs/*: Implemented major changes to the
- package system. Now all files descend from the JACE directory
- under the main archive level. All files are further grouped by
- their subpackage names. This is the way Java usually wants it,
- and makes JACE javadoc friendly.
-
- Rewrote and added javadoc comments throughout JACE.
-
- Changed all concurrency mechanisms to inherit from AbstractLock,
- obeying all its requirements such as not releasing the lock
- unless the accessing thread is the owner.
-
- Added the token service.
-
- Added and rewrote tests for Concurrency mechs and ServiceConfig.
-
- Rewrote network services to inherit from JACE.netsvcs.Server and
- JACE.netsvcs.Handler, abstracting much of the work out to these
- base classes.
-
- Debugging is now OFF by default.
-
-Wed Aug 18 19:43:23 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/GetOpt.java: Added another constructor to GetOpt with an
- option to return args even if not in the optstring. This is
- useful for the default case in a switch (for printUsage
- and exit).
-
-Wed Aug 18 13:35:46 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/TimerQueue.java: Now when createInternalThread is specified
- in the constructor, it is set to be a daemon thread. Thus, if a
- TimerQueue thread is the only one executing, the VM exits.
-
-Wed Jul 14 11:27:47 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/StrategyAcceptor.java, AcceptStrategy.java
- StrategyAcceptor now inherits from Acceptor. AcceptStrategy
- can now delegate to an Acceptor, rather than having its own
- SOCKAcceptor. Its default is to delegate to a generic
- Acceptor instance (that uses a SOCKAcceptor).
-
-Fri Jul 09 13:58:42 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/Acceptor.java, TimeValue.java
- Solved a few javadoc warnings.
-
-Fri Jul 09 11:08:32 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/TimedWait.java, Stream*.java, Token.java
- Fixed a bug in TimedWait from the recent changes. Made
- Streams (and Modules) use absolute times for timeouts.
-
-Thu Jul 08 14:54:36 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/Condition.java, TimedWait.java, EventHandler.java,
- MessageQueue.java, ServiceObject.java, SvcHandler.java,
- Task.java, Mutex.java, Semaphore.java, Token.java,
- TimerQueue.java
-
- Changed the semantics of Condition, TimedWait, MessageQueue,
- Task, Mutex, Semaphore, and Token to use absolute times for
- their timeouts.
-
- Changed the semantics of EventHandler, ServiceObject, and
- SvcHandler such that handleTimeout receives a TimeValue
- representing when the event occured.
-
- Changed TimerQueue internally to reflect the above changes.
-
- Also made better checks in Token and Mutex so that non-owners
- can call release without adverse effects. I plan to try to
- do this with Semaphore and RWMutex as well.
-
-Thu Jul 08 11:20:17 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/TimeValue.java: Added relativeTimeOfDay(offsets)
- methods which return TimeValues. These should help people
- since many classes will be changed to use
- absolute TimeValues shortly to correspond to ACE's versions.
-
-Wed Jul 07 22:42:27 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/Token.java: Fixed several bugs in tryacquire and renew.
- Specifying a null TimeValue in acquire or renew now means to wait
- until the lock is obtained. Specifying TimeValue.zero in acquire
- means just to poll and don't call sleepHook(). In renew, it is
- the same as specifying a requePosition of 0 -- doesn't give up
- the token.
-
-Wed Jul 07 21:54:35 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/TimedWait.java: Fixed the semantics of
- timedWait(TimeValue tv). Now when tv represents zero, it has
- polling semantics, checking the condition once and returning
- on success or throwing a TimeoutException on failure. Before,
- it blocked until notified. (Also affects synch mechanisms)
-
-Wed May 20 14:37:48 CDT 1998 Everett Anderson <eea1@cs.wustl.edu>
-
-Reset the ChangeLog file for future users. If anyone wants more complete
-file by file changes, they can be provided with the CVS log command.
-
-Updated the JACE page at http://www.cs.wustl.edu/~eea1/JACE.html to reflect
-the Version 1.4.4 changes, which included:
-
-* Removed CUP and JLex from JACE. The java_cup directory is still in CVS,
- but won't be included in future versions. This means that the option to
- load C++ ACE ServiceConfigurator files is gone.
-
-* Changed the SOCKStream system so it uses DataInputStream and DataOutputStream
- to maintain compatibility with other languages and remove the deprecation
- warnings from using PrintStream. (Can't use Reader/Writers since they
- write 16-bit chars not 8-bit bytes)
-
-* Made lots of modifications to comments and code to remove javadoc warnings
- and deprecation warnings. They were all straight-forward changes such as
- making sure a @throws line was in the comments for all exceptions a method
- had, etc.
diff --git a/java/EAC/BoundsException.java b/java/EAC/BoundsException.java
deleted file mode 100644
index 12010d570b0..00000000000
--- a/java/EAC/BoundsException.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Title: BoundsException
- * Description: An exception class for when graphical objects are positioned
- * partially out of their container's boundaries
- */
-package EAC;
-
-public class BoundsException extends Exception {
-
- public BoundsException(String msg) {
- super(msg);
- }
-} \ No newline at end of file
diff --git a/java/EAC/Configuration.java b/java/EAC/Configuration.java
deleted file mode 100644
index 426a8ba2a5e..00000000000
--- a/java/EAC/Configuration.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/**
- * Title: Configuration
- * Description: A container of Event Analysis Configurator primitives,
- * capable of executing interactions among those primitives
- * one "tick" at a time.
- */
-package EAC;
-import java.awt.*;
-import java.lang.*;
-
-public class Configuration extends Thread {
-
- // highest simulation clock value
- public final long MAX_SIM_CLOCK = 1000000;
-
- // maximum number of primitives in a configuration
- public final int MAX_PRIMITIVES = 100;
-
- // execution modes
- public final int INITIAL = 0;
- public final int RUNNING = 1;
- public final int STOPPED = 2;
-
- // current mode
- protected int mode = INITIAL;
-
- // simulation "clock"
- protected long simulation_time;
-
- // one simulation time unit (msec)
- public int tick; // will be set by runtime parameter
-
- // number of missed execution deadlines
- protected int missed_deadlines;
-
- // simulated resource pool
- protected ResourcePool rp;
-
- // event queue
- protected Queue eventQ;
-
- // input and output areas
- protected TextField inputArea;
- protected Label reportArea;
-
- // collection of primitives
- private Primitive primitive[];
-
- // number of primitives currently stored
- private int primitive_count;
-
- public Configuration(TextField i, Label r) {
- inputArea = i;
- reportArea = r;
- eventQ = new Queue();
- clear();
- mode = INITIAL;
- } /* constructor */
-
- public void clear() {
- primitive_count = 0;
- simulation_time = 0;
- missed_deadlines = 0;
- rp = new ResourcePool();
- primitive = new Primitive[MAX_PRIMITIVES];
- eventQ.clear();
- } /* clear */
-
- public void restart() {
- int i;
-
- simulation_time = 0;
- missed_deadlines = 0;
- rp.release(rp.usage());
- eventQ.clear();
- for (i = 0; i < primitive_count; i++)
- primitive[i].restart();
-
- } /* restart */
-
- public void setTick(int t) {
- tick = t;
- } /* setTick */
-
- public void addLabel(Primitive p) {
- reportArea.setText("Need a label");
- } /* addLabel */
-
- public int getPrimitiveCount() {
- return primitive_count;
- } /* getPrimitiveCount */
-
- public Primitive getPrimitive(int n) {
- return primitive[n];
- } /* getPrimitive */
-
- protected void setPrimitive(int n, Primitive p) {
- primitive[n] = p;
- } /* setPrimitive */
-
- public int addPrimitive(Primitive p) throws TooManyPrimitivesException {
- if (primitive_count == MAX_PRIMITIVES)
- throw new TooManyPrimitivesException("ERROR: Too many primitives");
-
- primitive[primitive_count++] = p;
- return primitive_count;
- } /* addPrimitive */
-
- public boolean deletePrimitive(int i) {
- if (primitive[i] == null)
- return false;
- else {
- primitive[i] = null;
- return true;
- }
- } /* deletePrimitive */
-
- public int leftSideOverlaps(Primitive p) {
- int i;
-
- for (i = 0; i < primitive_count; i++) {
- if (primitive[i] != null) {
- if ((primitive[i].contains(p.upperLeft())) ||
- (primitive[i].contains(p.lowerLeft())) ||
- (p.contains(primitive[i].lowerLeft())) ||
- (p.contains(primitive[i].upperLeft()))) {
- return i;
- } /* if */
- } /* if */
- } /* for */
-
- // no overlap detected
- return -1;
- } /* leftSideOverlaps */
-
- public int rightSideOverlaps(Primitive p) {
- int i;
-
- for (i = 0; i < primitive_count; i++) {
- if (primitive[i] != null) {
- if ((primitive[i].contains(p.lowerRight())) ||
- (primitive[i].contains(p.upperRight())) ||
- (p.contains(primitive[i].upperRight())) ||
- (p.contains(primitive[i].lowerRight()))) {
- return i;
- } /* if */
- } /* if */
- } /* for */
-
- // no overlap detected
- return -1;
- } /* rightSideOverlaps */
-
- public Primitive primitiveContaining (Point p) {
- int i;
-
- for (i = 0; i < primitive_count; i++)
- if (primitive[i].contains(p))
- return primitive[i];
-
- return null;
- } /* primitiveContaining */
-
- public void draw() {
- int i;
-
- for (i = 0; i < primitive_count; i++)
- if (primitive[i] != null)
- try {
- primitive[i].draw();
- } catch (BoundsException be) {
- // can't happen
- }
- } /* draw */
-
- public void eventEnqueue(Primitive p, long t) {
- eventQ.enqueue(p,t);
- } /* eventEnqueue */
-
- public long getTime() {
- return simulation_time;
- } /* getTime */
-
- public void run() {
- Primitive nextP;
-
- while (true) {
- simulation_time += 1;
- simulation_time %= MAX_SIM_CLOCK;
- try {
- reportArea.setText("Simulation Time: " +
- java.lang.Long.toString(simulation_time) +
- " Resource Consumption: " +
- java.lang.Integer.toString(rp.usage()) +
- "% Missed Deadlines: " +
- java.lang.Integer.toString(missed_deadlines) +
- " Next Event: " +
- java.lang.Long.toString(eventQ.frontTime()));
-
- // wake up all primitives who've set alarms for current time
- while (simulation_time == eventQ.frontTime()) {
- nextP = eventQ.dequeue();
- nextP.wakeup(simulation_time);
- } /* while */
- } catch (EmptyQueueException eqe) {
- System.out.println("Event queue empty. We're done?");
- } catch (ConnectionException ce) {
- System.out.println("Connection exception in run");
- }
-
- try {
- sleep(tick);
- }
- catch (InterruptedException ie) {
- System.out.println("Interrupted");
- }
- } /* outer while */
- } /* run */
-
-} \ No newline at end of file
diff --git a/java/EAC/Configurator.java b/java/EAC/Configurator.java
deleted file mode 100644
index 1a9bc7a0ed8..00000000000
--- a/java/EAC/Configurator.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Title: Configurator
- * Description: The application class for the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-import java.awt.event.*;
-
-public class Configurator extends Frame {
-
- // Initial dimensions of the frame
- public final int INITIAL_WIDTH = 800;
- public final int INITIAL_HEIGHT = 600;
-
- protected TextField inputArea = new TextField("Input Area", 80);
- protected Label reportArea = new Label();
- protected Configuration config = new Configuration(inputArea,reportArea);
- protected EACPanel canvas = new EACPanel(config,inputArea,reportArea);
- protected EACMenuBar menuBar = new EACMenuBar(canvas,config,inputArea,reportArea);
-
- Configurator(int tick) {
- config.setTick(tick);
-
- setTitle("The Event Analysis Configurator");
- setLayout(new BorderLayout());
- reportArea.setText("Report Area");
-
- // Input Area at top of frame
- add(inputArea,"North");
-
- // Report Area at bottom of frame
- add(reportArea,"South");
-
- // Canvas in the middle of frame
- add(canvas,"Center");
-
- // Menu Bar
- setMenuBar(menuBar);
-
- // Move and resize
- setLocation(0,0);
- setSize(INITIAL_WIDTH,INITIAL_HEIGHT);
-
- // For exiting
- addWindowListener(new Closer());
- }
-
- public static void main (String[] argv) {
- new Configurator(java.lang.Integer.valueOf(argv[0]).intValue()).show();
- }
-
- class Closer extends WindowAdapter {
- public void windowClosing (WindowEvent e) {
- System.exit (0);
- }
- }
-
-} /* Configurator */
diff --git a/java/EAC/ConnectionException.java b/java/EAC/ConnectionException.java
deleted file mode 100644
index a1f3efab7ab..00000000000
--- a/java/EAC/ConnectionException.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Title: ConnectionException
- * Description: An exception class for when an attempt is made to connect
- * an input where one is already connected, or to add an
- * output when the maximum number of outputs are already set
- */
-package EAC;
-
-public class ConnectionException extends Exception {
-
- public ConnectionException(String msg) {
- super(msg);
- }
-} \ No newline at end of file
diff --git a/java/EAC/Connector.java b/java/EAC/Connector.java
deleted file mode 100644
index 27c02e820bc..00000000000
--- a/java/EAC/Connector.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * Title: Connector
- * Description: Connects two primitives in the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-
-public class Connector extends Primitive {
-
- // for drawing
- protected RubberbandLine rbLine;
-
- // Primitives connected by connector
- Primitive startP,
- endP;
-
- // the second point of the connector
- // (the anchor point is inherited from Primitive)
- protected Point endpoint;
-
- public Connector(EACPanel p) {
- super(p);
- rbLine = new RubberbandLine(p);
- }
-
- // inappropriate inherited methods: should not be used
- public void setTop(Point p) {}
- public Point getTop() { return null; }
-
- public void setEndpoint(Point p) {
- endpoint = p;
- } /* setEndpoint */
-
- public Point getEndpoint() {
- return endpoint;
- } /* getEndpoint */
-
- // Anchor the rubberband line AND the connector itself
- public void anchor(Point p) {
- rbLine.anchor(p);
- anchor = p;
- } /* anchor */
-
- // Stretch the rubberband line
- public void stretch(Point p) {
- rbLine.stretch(p);
- } /* stretch */
-
- // End the rubberband line AND the connector itself
- public void end(Point p) {
- rbLine.end(p);
- endpoint = p;
- } /* end */
-
- public void draw() throws BoundsException {
- if (inBounds()) {
- Graphics g = canvas.getGraphics();
-
- g.drawLine(anchor.x,anchor.y,endpoint.x,endpoint.y);
- drawArrowhead(g);
- } else
- throw new BoundsException("ERROR: Attempted to place Connector endpoint out of bounds");
- } /* draw */
-
- private void drawArrowhead(Graphics g) {
- final int arrowHeadWidth = 10;
- Point P1 = anchor;
- Point P2 = endpoint;
-
- // Draw Arrowhead (using java.lang.Math and floating point)
- // source provided by Erik in newsgroup posting
- double dx = P2.x - P1.x;
- double dy = P2.y - P1.y;
- final double ra = java.lang.Math.sqrt(dx*dx + dy*dy);
- final double ri = (double) arrowHeadWidth;
- dx /= ra;
- dy /= ra;
- Point p2 = new Point((int)Math.round(P2.x - dx*ri),
- (int)Math.round(P2.y - dy*ri));
- int[] x = new int[3];
- int[] y = new int[3];
- double r = 0.4 * ri;
- x[0] = (int)Math.round(p2.x + dy * r);
- y[0] = (int)Math.round(p2.y - dx * r);
- x[1] = P2.x;
- y[1] = P2.y;
- x[2] = (int)Math.round(p2.x - dy * r);
- y[2] = (int)Math.round(p2.y + dx * r);
- g.fillPolygon(x, y, x.length);
- } /* drawArrowhead */
-
- public boolean contains(Point p) {
- return false;
- } /* contains */
-
- public Point upperLeft() {
- return anchor;
- } /* upperLeft */
-
- public Point lowerRight() {
- return endpoint;
- } /* lowerRight */
-
- public Point upperRight() {
- return endpoint;
- } /* upperRight */
-
- public Point lowerLeft() {
- return anchor;
- } /* lowerLeft */
-
- public boolean inBounds() {
- if (canvas.contains(endpoint))
- return true;
- else
- return false;
- } /* inBounds */
-
- public void write(File f) throws java.io.IOException {
- f.writeInt(f.CONNECTOR);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- f.writeInt(endpoint.x);
- f.writeInt(endpoint.y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- anchor = new Point();
- endpoint = new Point();
-
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- endpoint.x = f.readInt();
- endpoint.y = f.readInt();
- } /* read */
-
- public int addInput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Connectors cannot connect each other");
- } /* addInput */
-
- public int addOutput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Connectors cannot connect each other");
- } /* addOutput */
-
- public void setInput(Primitive p) {
- startP = p;
- } /* setInput */
-
- public void setOutput(Primitive p) {
- endP = p;
- } /* setOutput */
-
- public Primitive getInput() {
- return startP;
- } /* getInput */
-
- public Primitive getOutput() {
- return endP;
- } /* getOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- throw new ConnectionException("Internal error: wrong getInput() called on Connector");
- } /* getInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- throw new ConnectionException("Internal error: wrong getOutput() called on Connector");
- } /* getOutput */
-
- public void removeInput(int i) throws ConnectionException {
- //throw new ConnectionException("ERROR: Attempted to remove input from connector");
- startP = null;
- } /* removeInput */
-
- public void removeOutput(int i) throws ConnectionException {
- //throw new ConnectionException("ERROR: Attempted to remove output from connector");
- endP = null;
- } /* removeOutput */
-
- public int getInputCount() throws ConnectionException {
- //throw new ConnectionException("ERROR: Attempted to retrieve input count from connector");
- return (startP == null) ? 0 : 1;
- } /* getInputCount */
-
- public int getOutputCount() throws ConnectionException {
- //throw new ConnectionException("ERROR: Attempted to retrieve output count from connector");
- return (endP == null) ? 0 : 1;
- } /* getOutputCount */
-
- public void event(Source s) throws ConnectionException {
- //throw new ConnectionException("ERROR: Attempted to push event to connector");
- endP.event(s);
- } /* event */
-
- public void wakeup(long t) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to wake up connector");
- } /* wakeup */
-} \ No newline at end of file
diff --git a/java/EAC/EACComponent.java b/java/EAC/EACComponent.java
deleted file mode 100644
index f26aca96880..00000000000
--- a/java/EAC/EACComponent.java
+++ /dev/null
@@ -1,460 +0,0 @@
-/**
- * Title: Component
- * Description: A real-time component emulator, for use in the Event Analysis
- * Configurator.
- */
-package EAC;
-import java.awt.*;
-
-public class EACComponent extends Primitive {
-
- class QueueEntry {
-
- Source source;
- long request_time;
- boolean running;
-
- } /* QueueEntry */
-
- public class ServiceQueue {
-
- public QueueEntry queue[];
-
- public int size;
-
- void enqueue(QueueEntry e) {
- int i;
-
- for (i = 0; i < size; i++)
- if (e.source == queue[i].source) {
- System.out.println("Internal error: attempt to enqueue duplicate source");
- System.exit(-1);
- }
-
- if (size >= MAX_INPUTS) {
- System.out.println("Internal error: queue size at max");
- System.exit(-1);
- }
-
- queue[size++] = e;
- } /* enqueue */
-
- QueueEntry dequeue() {
- QueueEntry front = queue[0];
- int i;
-
- for (i = 0; i < size; i++)
- queue[i] = queue[i+1];
-
- --size;
-
- return front;
- } /* dequeue */
-
- boolean containsSource (Primitive p) {
- int i;
-
- for (i = 0; i < size; i++)
- if (queue[i].source == p)
- return true;
-
- return false;
- } /* containsSource */
-
- } /* ServiceQueue */
-
- // queue of running/waiting event sources
- protected ServiceQueue sq;
-
- // Font for text
- protected Font text_font = new EACFont().getFont();
-
- // dimensions of the rectangle to be drawn on-screen
- protected final int HEIGHT = 40;
- protected final int WIDTH = 30;
-
- // Configuration to which the component belongs
- protected Configuration config;
-
- // percentage of Resource Pool consumed during execution
- protected int resource_consumption;
-
- // duration of execution
- protected int duration;
-
- // input
- protected Connector input;
-
- // outputs
- protected Connector output[] = new Connector[MAX_OUTPUTS];
- protected int output_count = 0;
-
- // helps with dragging the component
- protected boolean selected = false;
- protected Point old_anchor;
-
- // Black-on-white (normal) or white-on-black (reversed)?
- protected boolean reverse_color = false;
-
- public EACComponent(EACPanel p, Configuration c) {
- super(p);
- config = c;
- sq = new ServiceQueue();
- sq.queue = new QueueEntry[MAX_INPUTS];
- sq.size = 0;
- } /* constructor */
-
- public void restart() {
- sq.size = 0;
- reverse_color = false;
- selected = false;
- } /* restart */
-
- public void setTop(Point p) {
- anchor = new Point(p.x - (int) (WIDTH / 2), p.y);
- } /* setTop */
-
- public Point getTop() {
- return new Point(anchor.x + (int) (WIDTH / 2), anchor.y);
- } /* getTop */
-
- public void setResourceConsumption(int rc) throws NumberFormatException {
- if ((rc > 0) && (rc <= 100))
- resource_consumption = rc;
- else
- throw new NumberFormatException();
- } /* setResourceConsumption */
-
- public int getResourceConsumption() {
- return resource_consumption;
- } /* getResourceConsumption */
-
- public void setDuration(int d) throws NumberFormatException {
- if (d > 0)
- duration = d;
- else
- throw new NumberFormatException();
- } /* setDuration */
-
- public int getDuration() {
- return duration;
- } /* getDuration */
-
- public void event(Source s) throws ConnectionException {
- long time = config.getTime();
-
- s.reverseColor();
- try {
- s.draw();
- } catch (BoundsException be) {}
-
- //System.out.print(label.getText());
- //System.out.print(" event at: ");
- //System.out.println(time);
-
- if (sq.containsSource(s)) { // missed a deadline
- config.missed_deadlines++;
- System.out.print(label.getText());
- System.out.print(" missed a deadline for ");
- System.out.print(s.getLabel().getText());
- System.out.print(" at: ");
- System.out.println(java.lang.Long.toString(time));
- } else { // there's no existing service call for this source
- // prepare to add new entry to Service Queue
- QueueEntry e = new QueueEntry();
- e.source = s;
- e.request_time = time;
- if (config.rp.reserve(resource_consumption)) { // resource reservation succeeded
- reverseColor(); // indicate we're working it
- try {
- draw();
- } catch (BoundsException be) {}
- config.eventEnqueue(this,time + duration); // set wakeup call to release resources
-
- // new entry will be running
- e.running = true;
- } else { // resource reservation failed
- config.eventEnqueue(this,time + 1); // set wakeup call to try for resources again
-
- // new entry will be waiting
- e.running = false;
- } /* else */
-
- sq.enqueue(e); // add new entry to Service Queue
- } /* else */
- } /* event */
-
- public void wakeup(long t) throws ConnectionException {
- int i;
-
- //System.out.print(label.getText());
- //System.out.println(" wakeup at: " + java.lang.Long.toString(t));
-
- while (sq.size > 0) {
- if ((sq.queue[0].running) && (sq.queue[0].request_time + duration <= t)) { // time to release
- config.rp.release(resource_consumption);
- try {
- Source s = sq.dequeue().source; // dequeue and get the source
- s.normalColor(); // indicates we're done
- normalColor();
- s.draw();
- draw();
- } catch (BoundsException be) {}
- } else
- break;
- } /* while */
-
- // satisfy as many waiting service calls as possible
- for (i = 0; i < sq.size; i++) {
- if (!sq.queue[i].running) {
- if (config.rp.reserve(resource_consumption)) { // resource reservation succeeded
- config.eventEnqueue(this,t + duration); // set wakeup call to release resources
- sq.queue[i].request_time = t;
- sq.queue[i].running = true;
- sq.queue[i].source.reverseColor(); // indicates we're working it
- reverseColor();
- try {
- draw();
- sq.queue[i].source.draw();
- } catch (BoundsException be) {}
- } else { // resource reservation failed
- config.eventEnqueue(this,t + 1); // set wakeup call to try for resources again
- break; // no reason to keep trying right now
- } /* else */
- } /* if */
- } /* while */
-
- } /* wakeup */
-
- public int addInput(Connector c) throws ConnectionException {
- if (input == null) {
- input = c;
- return 1;
- }
- else
- throw new ConnectionException("ERROR: Input already established for this component");
- } /* setInput */
-
- public int addOutput(Connector c) throws ConnectionException {
- if (output_count < MAX_OUTPUTS)
- output[output_count++] = c;
- else
- throw new ConnectionException("ERROR: Maximum outputs established for this component");
-
- return output_count;
- } /* addOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- if (i != 0)
- throw new ConnectionException("ERROR: Bad input index for component");
- else if (input == null)
- throw new ConnectionException("ERROR: No input for this component");
- else
- return input;
- } /* getInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- if ((i >= 0) && (i < output_count))
- return output[i];
- else
- throw new ConnectionException("ERROR: Bad output index for component");
- } /* getOutput */
-
- public void removeInput(int i) throws ConnectionException {
- if (i != 0)
- throw new ConnectionException("ERROR: Bad input index for component");
- else
- input = null;
- } /* removeInput */
-
- public void removeOutput(int i) throws ConnectionException {
- if ((i >= 0) && (i < output_count)) {
- output[i] = output[output_count-1];
- --output_count;
- } else
- throw new ConnectionException("ERROR: Bad output index for component");
- } /* removeOutput */
-
- public int getOutputCount() throws ConnectionException {
- return output_count;
- } /* getOutputCount */
-
- public int getInputCount() throws ConnectionException {
- return (input == null) ? 0 : 1;
- } /* getInputCount */
-
- public boolean contains(Point p) {
- if ((p.x >= anchor.x) &&
- (p.x <= anchor.x + WIDTH) &&
- (p.y >= anchor.y) &&
- (p.y <= anchor.y + HEIGHT))
- return true;
- else
- return false;
- } /* contains */
-
- public Point upperLeft() {
- return anchor;
- } /* upperLeft */
-
- public Point lowerRight() {
- return new Point(anchor.x + WIDTH, anchor.y + HEIGHT);
- } /* lowerRight */
-
- public Point upperRight() {
- return new Point(anchor.x + WIDTH, anchor.y);
- } /* upperRight */
-
- public Point lowerLeft() {
- return new Point(anchor.x, anchor.y + HEIGHT);
- } /* lowerLeft */
-
- public void draw() throws BoundsException {
- if (selected)
- selected = false;
- else if (inBounds()) {
- Graphics g = canvas.getGraphics();
- char stringData[];
- Color bg,
- fg;
-
- if (reverse_color) {
- bg = Color.black;
- fg = Color.white;
- } else {
- bg = Color.white;
- fg = Color.black;
- }
-
- g.setColor(Color.black); // rectangle is always black
- g.drawRect(anchor.x,anchor.y,WIDTH,HEIGHT);
-
- g.setColor(bg); // interior
- g.fillRect(anchor.x+1,anchor.y+1,WIDTH-1,HEIGHT-1);
-
- g.setColor(fg); // middle line and text
- g.drawLine(anchor.x,anchor.y + (int) (HEIGHT / 2),
- anchor.x + WIDTH, anchor.y + (int) (HEIGHT / 2));
-
- // print resource consumption percentage
- g.setFont(text_font);
- g.drawString(java.lang.String.valueOf(resource_consumption),
- anchor.x + 16 - (3 * java.lang.String.valueOf(resource_consumption).length()),
- anchor.y + (int) (HEIGHT / 3));
-
- // print duration
- g.drawString(java.lang.String.valueOf(duration),
- anchor.x + 16 - (3 * java.lang.String.valueOf(duration).length()),
- anchor.y + (int) (HEIGHT * 3 / 4) + 3);
-
- } else
- throw new BoundsException("ERROR: Attempted to place Component partially out of bounds");
- } /* draw */
-
- public void reverseColor() {
- reverse_color = true;
- } /* reverseColor */
-
- public void normalColor() {
- reverse_color = false;
- } /* normalColor */
-
- public void specialDraw() {
- Graphics g = canvas.getGraphics();
-
- g.setXORMode(canvas.getBackground());
- g.drawRect(anchor.x,anchor.y,WIDTH,HEIGHT);
- } /* specialDraw */
-
- public void specialUndraw() {
- Graphics g = canvas.getGraphics();
-
- g.setColor(canvas.getBackground());
- g.setXORMode(canvas.getForeground());
- g.drawRect(anchor.x,anchor.y,WIDTH,HEIGHT);
- } /* specialUndraw */
-
- public void selectedDraw() {
- // this will preclude drawing this component for one repaint() call
- selected = true;
-
- old_anchor = anchor;
-
- super.selectedDraw();
- } /* selectedDraw */
-
- public void reconnect() {
- int i;
-
- // move output anchors
- for (i = 0; i < output_count; i++)
- output[i].setAnchor(new Point(output[i].getAnchor().x + anchor.x - old_anchor.x,
- output[i].getAnchor().y + anchor.y - old_anchor.y));
-
- // move input endpoint
- input.setEndpoint(new Point(input.upperRight().x + anchor.x - old_anchor.x,
- input.upperRight().y + anchor.y - old_anchor.y));
-
- // move label anchor
- label.setAnchor(new Point(label.getAnchor().x + anchor.x - old_anchor.x,
- label.getAnchor().y + anchor.y - old_anchor.y));
- } /* reconnect */
-
- public boolean inBounds() {
- if ((canvas.contains(upperLeft())) &&
- (canvas.contains(lowerRight())))
- return true;
- else
- return false;
- } /* inBounds */
-
- public void write(File f) throws java.io.IOException {
- char temp[]; // for writing label
- int i, n;
-
- f.writeInt(f.COMPONENT);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- f.writeInt(resource_consumption);
- f.writeInt(duration);
-
- // Write out the associated label
- n = label.getText().length();
- f.writeInt(n); // text length
- temp = new char[n];
- temp = label.getText().toCharArray();
- for (i = 0; i < n; i++)
- f.writeChar(temp[i]);
- f.writeInt(label.getAnchor().x); // label position
- f.writeInt(label.getAnchor().y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- char temp[]; // for reading label
- int i, n;
- int label_x, label_y;
-
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- resource_consumption = f.readInt();
- duration = f.readInt();
-
- // get label info
- n = f.readInt(); // text length
- label = new EACLabel(canvas,n);
- temp = new char[n];
- for (i = 0; i < n; i++)
- temp[i] = f.readChar();
- label.setText(java.lang.String.valueOf(temp));
- label_x = f.readInt();
- label_y = f.readInt();
- label.setAnchor(new Point(label_x,label_y));
- label.setLabelee(this);
- try {
- config.addPrimitive(label);
- } catch (TooManyPrimitivesException tmpe) {
- // have faith :-)
- }
- } /* read */
-} \ No newline at end of file
diff --git a/java/EAC/EACFont.java b/java/EAC/EACFont.java
deleted file mode 100644
index 97f4d39b6cb..00000000000
--- a/java/EAC/EACFont.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * Title: EACFont
- * Description: The font to be used for on-screen text
- */
-package EAC;
-import java.awt.*;
-
-public class EACFont {
-
- // Use 9-point Courier New
- public final int FONT_SIZE = 10;
- protected Font eac_font = new Font("Courier New",Font.PLAIN,FONT_SIZE);
-
- public EACFont() {
- }
-
- public Font getFont() {
- return eac_font;
- } /* getFont */
-
-} \ No newline at end of file
diff --git a/java/EAC/EACLabel.java b/java/EAC/EACLabel.java
deleted file mode 100644
index e841c4e4c40..00000000000
--- a/java/EAC/EACLabel.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/**
- * Title: EACLabel
- * Description: Text labels for Event Analysis Configurator graphical
- * primitives
- */
-package EAC;
-import java.awt.*;
-
-public class EACLabel extends Primitive {
-
- // Font for labels
- protected Font label_font = new EACFont().getFont();
-
- // Font Metrics for sizing and bounds checking labels
- protected FontMetrics fm = canvas.getFontMetrics(label_font);
-
- // Label text
- protected char[] text;
-
- // associated Primitive
- protected Primitive labelee;
-
- public EACLabel(EACPanel p, int n) {
- super(p);
- text = new char[n];
- } /* constructor */
-
- public void setLabelee(Primitive p) {
- labelee = p;
- } /* setLabelee */
-
- public Primitive getLabelee() {
- return labelee;
- } /* getLabelee */
-
- public void setText(String s) {
- text = s.toCharArray();
- } /* setText */
-
- public String getText() {
- return java.lang.String.valueOf(text);
- } /* getText */
-
- public void setTop(Point p) {
- anchor = new Point(p.x - (3 * text.length),
- p.y + 9);
- } /* setTop */
-
- public Point getTop() {
- return new Point(anchor.x + (3 * text.length),
- anchor.y - 9);
- } /* getTop */
-
- public void draw() throws BoundsException {
- if (inBounds()) {
- Graphics g = canvas.getGraphics();
- g.setFont(label_font);
- g.drawChars(text,0,text.length,anchor.x,anchor.y);
- } else
- throw new BoundsException("Attempted to place Label partially out of bounds");
- } /* draw */
-
- public void specialDraw() {
- Graphics g = canvas.getGraphics();
-
- g.setXORMode(canvas.getBackground());
- g.drawRect(upperLeft().x, upperLeft().y,
- upperRight().x - upperLeft().x, // WIDTH
- lowerRight().y - upperRight().y); // HEIGHT
- } /* specialDraw */
-
- public void specialUndraw() {
- Graphics g = canvas.getGraphics();
-
- g.setColor(canvas.getBackground());
- g.setXORMode(canvas.getForeground());
- g.drawRect(upperLeft().x, upperLeft().y,
- upperRight().x - upperLeft().x, // WIDTH
- lowerRight().y - upperRight().y); // HEIGHT
- } /* specialUndraw */
-
- public boolean contains(Point p) {
- return ((p.x >= upperLeft().x) &&
- (p.x <= upperRight().x) &&
- (p.y <= lowerLeft().y) &&
- (p.y >= upperLeft().y));
- } /* contains */
-
- public boolean inBounds() {
- // don't know why we need this, but fm.stringWidth seems to return a
- // value that's bigger than the actual width of the text
- //final int xTweak = 20;
-
- //if (canvas.contains(anchor.x + fm.stringWidth(text.toString()) - xTweak,
- // anchor.y - fm.getHeight()))
- if ((canvas.contains(upperLeft())) &&
- (canvas.contains(upperRight())) &&
- (canvas.contains(lowerLeft())) &&
- (canvas.contains(lowerRight())))
- return true;
- else
- return false;
- } /* inBounds */
-
- public Point upperLeft() {
- return new Point(anchor.x,anchor.y - 9);
- } /* upperLeft */
-
- public Point upperRight() {
- return new Point(anchor.x + (6 * text.length),anchor.y - 9);
- } /* upperRight */
-
- public Point lowerLeft() {
- return anchor;
- } /* lowerLeft */
-
- public Point lowerRight() {
- return new Point(anchor.x + (6 * text.length),anchor.y);
- } /* lowerRight */
-
- public void write(File f) throws java.io.IOException {
- int i;
-
- // if there's an associated primitive, that primitive
- // is responsible for writing out the label info too,
- // so only write out the info if there is no labelee
- if (labelee == null) {
- f.writeInt(f.LABEL);
- f.writeInt(text.length);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- for (i = 0; i < text.length; i++)
- f.writeChar(text[i]);
- }
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- int i;
-
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
-
- for (i = 0; i < text.length; i++)
- text[i] = f.readChar();
- } /* read */
-
- public int addInput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to add input to label");
- } /* addInput */
-
- public int addOutput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to add output to label");
- } /* addOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve input from label");
- } /* getInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve output from label");
- } /* getOutput */
-
- public int getInputCount() throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve input count from label");
- } /* getInputCount */
-
- public int getOutputCount() throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve output count from label");
- } /* getOutputCount */
-
- public void removeInput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to remove input from label");
- } /* removeInput */
-
- public void removeOutput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to remove output from label");
- } /* removeOutput */
-
- public void event(Source s) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to push event to label");
- } /* event */
-
- public void wakeup(long t) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to wake up label");
- } /* wakeup */
-} \ No newline at end of file
diff --git a/java/EAC/EACMenuBar.java b/java/EAC/EACMenuBar.java
deleted file mode 100644
index d34a776635d..00000000000
--- a/java/EAC/EACMenuBar.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
- * Title: EACMenuBar
- * Description: A subclass of MenuBar for the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-import java.awt.event.*;
-
-public class EACMenuBar extends MenuBar {
-
- protected EACPanel canvas;
- protected Configuration config;
- protected TextField inputArea;
- protected Label reportArea;
-
- public EACMenuBar(EACPanel p, Configuration c, TextField i, Label r) {
- canvas = p;
- config = c;
- inputArea = i;
- reportArea = r;
-
- // Configuration menu
- Menu menu = new Menu("Configuration");
-
- // Configuration menu options
- MenuItem mi = new MenuItem("Clear");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode == config.RUNNING) {
- config.suspend();
- config.mode = config.STOPPED;
- } /* if */
- config.clear();
- canvas.repaint();
- inputArea.setText("");
- reportArea.setText("Configuration cleared");
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Load");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode == config.RUNNING) {
- config.suspend();
- config.mode = config.STOPPED;
- } /* if */
- config.clear();
- canvas.repaint();
- inputArea.setText("");
- reportArea.setText("Please enter a filename");
- canvas.mode = canvas.LOAD;
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Save");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode == config.RUNNING) {
- config.suspend();
- config.mode = config.STOPPED;
- } /* if */
- canvas.repaint();
- canvas.mode = canvas.SAVE;
- inputArea.setText("");
- reportArea.setText("Please enter a filename");
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Run/Restart");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode == config.INITIAL) {
- config.start();
- } else if (config.mode == config.STOPPED) {
- config.restart();
- canvas.repaint();
- config.resume();
- }
- System.out.println();
- System.out.println("Configuration running...");
- config.mode = config.RUNNING;
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Pause/Unpause");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode == config.RUNNING) {
- config.suspend();
- config.mode = config.STOPPED;
- } else if (config.mode == config.STOPPED) {
- config.resume();
- config.mode = config.RUNNING;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- add(menu);
-
- // New menu
- menu = new Menu("New");
-
- // New menu options
- mi = new MenuItem("Component");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.current_component = new EACComponent(canvas,config);
- canvas.repaint();
- canvas.mode = canvas.COMPONENT;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Union");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.current_shape = new Union(canvas);
- canvas.repaint();
- canvas.mode = canvas.EDIT;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Intersection");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.current_shape = new Intersection(canvas);
- canvas.repaint();
- canvas.mode = canvas.EDIT;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Source");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.current_source = new Source(canvas,config);
- canvas.repaint();
- canvas.mode = canvas.SOURCE;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Sink");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.current_shape = new Sink(canvas);
- canvas.repaint();
- canvas.mode = canvas.EDIT;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Connector");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.repaint();
- canvas.mode = canvas.CONNECTING;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Label");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- reportArea.setText("Enter the text for your label in the input area");
- inputArea.setText("");
- canvas.repaint();
- canvas.mode = canvas.LABEL_TYPING;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- add(menu);
-
- } /* constructor */
-
-} /* EACMenuBar */
-
diff --git a/java/EAC/EACPanel.java b/java/EAC/EACPanel.java
deleted file mode 100644
index 333321ef545..00000000000
--- a/java/EAC/EACPanel.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/**
- * Title: EACPanel
- * Description: A subclass of Panel for the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-import java.awt.event.*;
-
-public class EACPanel extends Panel {
-
- protected TextField inputArea;
- protected Label reportArea;
-
- // input modes
- public final int COMMAND = 0;
- public final int SELECT = 1;
- public final int CUT = 2;
- public final int COPY = 3;
- public final int PASTE = 4;
- public final int EDIT = 5;
- public final int CONNECTING = 6;
- public final int COMPONENT = 7;
- public final int LABEL_TYPING = 8;
- public final int LABEL_ADDING = 9;
- public final int RC_TYPING = 10;
- public final int DURATION_TYPING = 11;
- public final int PERIOD_TYPING = 12;
- public final int SOURCE = 13;
- public final int CONNECTING_END = 14;
- public final int LOAD = 15;
- public final int SAVE = 16;
-
- // current input mode
- protected int mode;
-
- // current primitive for drawing
- protected Primitive current_shape;
-
- // current text label
- protected EACLabel current_label;
-
- // current component
- protected EACComponent current_component;
-
- // current source
- protected Source current_source;
-
- // current connector, and associated primitives (indices into config's collection)
- protected Connector current_connector;
- protected int connector_start_index;
- protected int connector_end_index;
-
- // flag for associating the required label with a component or source
- protected boolean component_needs_label = false;
- protected boolean source_needs_label = false;
-
- // Component Configuration associated with this panel
- protected Configuration config;
-
- // for dragging primitives around the panel
- int moving_dx,
- moving_dy;
- boolean repainted;
-
-
- // Constructor
- public EACPanel(Configuration c, TextField i, Label r) {
- config = c;
- inputArea = i;
- inputArea.addKeyListener(eac_key_adapter);
- reportArea = r;
- mode = COMMAND;
- addMouseListener(eac_mouse_adapter);
- addMouseMotionListener(eac_mm_adapter);
- } /* constructor */
-
- // Mouse Adapter
- private class EACMouseAdapter extends MouseAdapter
- implements MouseListener {
-
- EACPanel canvas;
-
- public EACMouseAdapter(EACPanel p) {
- canvas = p;
- } /* constructor */
-
- public void mousePressed(MouseEvent e) {
- switch (mode) {
- case EDIT:
- current_shape.setTop(new Point(e.getX(),e.getY()));
- try {
- if ((config.leftSideOverlaps(current_shape) == -1) &&
- (config.rightSideOverlaps(current_shape) == -1)) {
- current_shape.draw();
- reportArea.setText("");
- config.addPrimitive(current_shape);
- mode = COMMAND;
- } else {
- reportArea.setText("ERROR: Primitives too close together");
- } /* if */
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- } /* try */
- break;
- case SOURCE:
- current_source.setTop(new Point(e.getX(),e.getY()));
- try {
- if ((config.leftSideOverlaps(current_source) == -1) &&
- (config.rightSideOverlaps(current_source) == -1)) {
- current_source.draw();
- config.addPrimitive(current_source);
- reportArea.setText("Please enter the period for this source in the input area");
- inputArea.setText("");
- mode = PERIOD_TYPING;
- } else {
- reportArea.setText("ERROR: Primitives too close together");
- } /* if */
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- } /* try */
- break;
- case COMPONENT:
- current_component.setTop(new Point(e.getX(),e.getY()));
- try {
- if ((config.leftSideOverlaps(current_component) == -1) &&
- (config.rightSideOverlaps(current_component) == -1)) {
- current_component.draw();
- config.addPrimitive(current_component);
- reportArea.setText("Please enter the resource consumption for this component in the input area");
- inputArea.setText("");
- mode = RC_TYPING;
- } else {
- reportArea.setText("ERROR: Primitives too close together");
- } /* if */
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- } /* try */
- break;
- case CONNECTING:
- current_connector = new Connector(canvas);
- current_connector.anchor(new Point(e.getX(),e.getY()));
- connector_start_index = config.leftSideOverlaps(current_connector);
- if (connector_start_index == -1)
- reportArea.setText("ERROR: Connector must begin inside a primitive");
- else
- mode = CONNECTING_END;
- break;
- case LABEL_ADDING:
- current_label.setTop(new Point(e.getX(),e.getY()));
- try {
- current_label.specialUndraw();
- current_label.draw();
- reportArea.setText("");
- config.addPrimitive(current_label);
- mode = COMMAND;
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- } /* try */
- break;
- default: // SELECT mode
- mode = SELECT;
- current_shape = config.primitiveContaining(new Point(e.getX(),e.getY()));
- repaint();
- if (current_shape != null) {
- repaint(); // if there was a previously selected shape, it ignored
- // the last repaint() (kludge--looks better for dragging)
- moving_dx = e.getX() - current_shape.getTop().x;
- moving_dy = e.getY() - current_shape.getTop().y;
- current_shape.selectedDraw();
- repainted = false;
- } else
- repaint(); // need to repaint a second time
- break;
- } /* switch */
- } /* mousePressed */
-
- public void mouseReleased(MouseEvent e) {
- switch (mode) {
- case CONNECTING_END:
- current_connector.end(new Point(e.getX(),e.getY()));
- try {
- connector_end_index = config.rightSideOverlaps(current_connector);
- if (connector_end_index != -1) {
- if (connector_end_index == connector_start_index)
- reportArea.setText("ERROR: Connector cannot start and end at same primitive");
- else {
- Primitive startP = config.getPrimitive(connector_start_index);
- Primitive endP = config.getPrimitive(connector_end_index);
-
- // connect primitives
- try {
- startP.addOutput(current_connector);
- current_connector.setInput(startP);
- current_connector.setOutput(endP);
- endP.addInput(current_connector);
-
- // if everything okay, draw arrow
- current_connector.draw();
- reportArea.setText("");
- config.addPrimitive(current_connector);
-
- mode = COMMAND;
-
- } catch (ConnectionException ce) {
- reportArea.setText(ce.getMessage());
- }
- } /* else */
- } else {
- reportArea.setText("ERROR: Connector must terminate inside a primitive");
- } /* if */
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- } /* try */
- mode = CONNECTING;
- break;
- case SELECT:
- if (current_shape != null)
- current_shape.reconnect();
- if (repainted) // dragging occurred
- repaint();
- break;
- default:
- //no-op
- } /* switch */
- } /* mouseReleased */
-
- public void mouseClicked(MouseEvent e) {}
- public void mouseEntered(MouseEvent e) {}
- public void mouseExited(MouseEvent e) {}
-
- } /* EACMouseAdapter */
-
- // Mouse Motion Adapter
- private class EACMouseMotionAdapter extends MouseMotionAdapter
- implements MouseMotionListener {
-
- public void mouseDragged(MouseEvent e) {
- switch (mode) {
- case CONNECTING_END:
- current_connector.stretch(new Point(e.getX(),e.getY()));
- break;
- case SELECT:
- if (current_shape != null) {
- Point old_top = current_shape.getTop();
- if (!repainted) {
- repaint();
- repainted = true;
- } /* if */
- current_shape.specialUndraw();
- current_shape.setTop(new Point(e.getX() - moving_dx,e.getY() - moving_dy));
- if (!current_shape.inBounds())
- current_shape.setTop(old_top);
- current_shape.specialDraw();
- } /* if */
- default:
- //no-op
- } /* switch */
- } /* mouseDragged */
-
- public void mouseMoved(MouseEvent e) {
- switch (mode) {
- case COMPONENT:
- if (current_component.getAnchor() != null)
- current_component.specialUndraw();
- current_component.setTop(new Point(e.getX(),e.getY()));
- current_component.specialDraw();
- break;
- case SOURCE:
- if (current_source.getAnchor() != null)
- current_source.specialUndraw();
- current_source.setTop(new Point(e.getX(),e.getY()));
- current_source.specialDraw();
- break;
- case EDIT:
- if (current_shape.getAnchor() != null)
- current_shape.specialUndraw();
- current_shape.setTop(new Point(e.getX(),e.getY()));
- current_shape.specialDraw();
- break;
- case LABEL_ADDING:
- if (current_label.getAnchor() != null)
- current_label.specialUndraw();
- current_label.setTop(new Point(e.getX(),e.getY()));
- current_label.specialDraw();
- break;
- default:
- //no-op
- } /* switch */
- } /* mouseMoved */
-
- } /* EACMouseMotionAdapter */
-
- // Key Adapter
- private class EACKeyAdapter extends KeyAdapter implements KeyListener {
-
- EACPanel canvas;
-
- public EACKeyAdapter(EACPanel p) {
- canvas = p;
- } /* constructor */
-
- public void keyPressed(KeyEvent e) {
- Graphics g = getGraphics();
- String input;
-
- if ((mode == RC_TYPING) && (e.getKeyChar() == '\n')) {
- input = new String(inputArea.getText());
- try {
- current_component.setResourceConsumption(Integer.parseInt(input));
- current_component.draw();
- reportArea.setText("Please enter the duration for this component in the input area");
- inputArea.setText("");
- mode = DURATION_TYPING;
- } catch (NumberFormatException nfe) {
- reportArea.setText("Please enter an integer value between 1 and 100, inclusive");
- inputArea.setText("");
- return;
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } /* try */
- } else if ((mode == DURATION_TYPING) && (e.getKeyChar() == '\n')) {
- input = new String(inputArea.getText());
- try {
- current_component.setDuration(Integer.parseInt(input));
- current_component.draw();
- reportArea.setText("Please enter a label for this component in the input area");
- inputArea.setText("");
- component_needs_label = true;
- mode = LABEL_TYPING;
- } catch (NumberFormatException nfe) {
- reportArea.setText("Please enter an integer value");
- inputArea.setText("");
- return;
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } /* try */
- } else if ((mode == LABEL_TYPING) && (e.getKeyChar() == '\n')) {
- current_label = new EACLabel(canvas,inputArea.getText().length());
- current_label.setText(inputArea.getText());
- if (component_needs_label) {
- component_needs_label = false;
- current_component.setLabel(current_label);
- current_label.setLabelee(current_component);
- } else if (source_needs_label) {
- source_needs_label = false;
- current_source.setLabel(current_label);
- current_label.setLabelee(current_source);
- }
- reportArea.setText("Click at desired label location");
- inputArea.setText("");
- mode = LABEL_ADDING;
- } else if ((mode == PERIOD_TYPING) && (e.getKeyChar() == '\n')) {
- input = new String(inputArea.getText());
- try {
- current_source.setPeriod(Integer.parseInt(input));
- current_source.draw();
- inputArea.setText("");
- reportArea.setText("Please enter a label for this source in the input area");
- mode = LABEL_TYPING;
- source_needs_label = true;
- } catch (NumberFormatException nfe) {
- reportArea.setText("Please enter a positive integer value");
- inputArea.setText("");
- return;
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } /* try */
- } else if ((mode == LOAD) && (e.getKeyChar() == '\n')) {
- File input_file;
- input = new String(inputArea.getText());
- try {
- input_file = new File(input,"r",config,canvas);
- input_file.readConfiguration();
- input_file.close();
- reportArea.setText("Configuration loaded successfully");
- inputArea.setText("");
- } catch (java.io.FileNotFoundException fnfe) {
- } catch (java.io.IOException ioe) {
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- }
- } else if ((mode == SAVE) && (e.getKeyChar() == '\n')) {
- File output_file;
- input = new String(inputArea.getText());
- try {
- output_file = new File(input,"rw",config,canvas);
- output_file.writeConfiguration();
- output_file.close();
- reportArea.setText("Configuration saved successfully");
- inputArea.setText("");
- } catch (java.io.FileNotFoundException fnfe) {
- } catch (java.io.IOException ioe) {}
- } /* if */
- } /* keyPressed */
- } /* EACKeyAdapter */
-
- // Mouse Adapter Instances
- private EACMouseAdapter eac_mouse_adapter = new EACMouseAdapter(this);
- private EACMouseMotionAdapter eac_mm_adapter = new EACMouseMotionAdapter();
-
- // Key Adapter Instance
- private EACKeyAdapter eac_key_adapter = new EACKeyAdapter(this);
-
- public void paint(Graphics g) {
- g.setColor(getBackground());
- g.fillRect(0,0,getSize().width,getSize().height);
- g.setColor(getForeground());
- g.drawRect(0,0,getSize().width - 1,getSize().height - 1);
- config.draw();
- } /* paint */
-
- public void repaint() {
- paint(getGraphics());
- } /* repaint */
-} \ No newline at end of file
diff --git a/java/EAC/EACPrintStream.java b/java/EAC/EACPrintStream.java
deleted file mode 100644
index 9e8d82d03f0..00000000000
--- a/java/EAC/EACPrintStream.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * Title: EACFileStream
- * Description: A stream class for conducting file I/O in the Event Analysis Configurator.
- */
-package EAC;
-
-import java.io.RandomAccessF;
-
-public class EACPrintStream {
-
- PrintStream ps;
-
- public EACPrintStream(String filename) {
- ps = new PrintStream(new FileOutputStream(filename), true);
- }
-} \ No newline at end of file
diff --git a/java/EAC/EmptyQueueException.java b/java/EAC/EmptyQueueException.java
deleted file mode 100644
index 0b2af00c36f..00000000000
--- a/java/EAC/EmptyQueueException.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Title: EmptyQueueException
- * Description: An exception class for when an attempt is made to access
- * the head of the event queue when the queue is empty
- */
-package EAC;
-
-public class EmptyQueueException extends Exception {
-
- public EmptyQueueException(String msg) {
- super(msg);
- }
-} \ No newline at end of file
diff --git a/java/EAC/File.java b/java/EAC/File.java
deleted file mode 100644
index 6ba151cddc0..00000000000
--- a/java/EAC/File.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/**
- * Title: File
- * Description: A file I/O class for the Event Analysis Configurator
- */
-package EAC;
-
-import java.io.RandomAccessFile;
-
-public class File extends RandomAccessFile {
-
- public final int SOURCE = 1;
- public final int SINK = 2;
- public final int COMPONENT = 3;
- public final int CONNECTOR = 4;
- public final int UNION = 5;
- public final int INTERSECTION = 6;
- public final int LABEL = 7;
-
- protected Configuration config;
-
- protected EACPanel canvas;
-
- public File(String filename, String mode, Configuration c, EACPanel p)
- throws java.io.FileNotFoundException {
- super(filename,mode);
- config = c;
- canvas = p;
- } /* constructor */
-
- public void writeConfiguration() throws java.io.IOException {
- int i;
-
- // write number of primitives
- writeInt(config.getPrimitiveCount());
-
- // write primitives
- for (i = 0; i < config.getPrimitiveCount(); i++)
- config.getPrimitive(i).write(this);
-
- } /* writeConfiguration */
-
- public void readConfiguration() throws java.io.IOException, TooManyPrimitivesException {
- int i,
- num,
- label_length, // for reading the number of chars in an EACLabel
- primitiveID;
-
- Primitive next_primitive = new Union(canvas); // dummy initialization
-
- Connector next_connector;
-
- // read number of primitives
- num = readInt();
-
- for (i = 0; i < num; i++) {
- primitiveID = readInt();
- switch(primitiveID) {
- case SOURCE:
- next_primitive = new Source(canvas,config);
- next_primitive.read(this);
- i++; // Add one more to the loop counter 'cause we read our own label
- break;
- case SINK:
- next_primitive = new Sink(canvas);
- next_primitive.read(this);
- break;
- case COMPONENT:
- next_primitive = new EACComponent(canvas,config);
- next_primitive.read(this);
- i++; // Add one more to the loop counter 'cause we read our own label
- break;
- case CONNECTOR:
- next_connector = new Connector(canvas);
- next_primitive = next_connector; // so it can be added to the config
- next_connector.read(this);
- try {
- int connector_start_index = config.leftSideOverlaps(next_connector);
- int connector_end_index = config.rightSideOverlaps(next_connector);
-
- Primitive startP = config.getPrimitive(connector_start_index);
- Primitive endP = config.getPrimitive(connector_end_index);
-
- // reinstate connection
- startP.addOutput(next_connector);
- next_connector.setInput(startP);
- next_connector.setOutput(endP);
- endP.addInput(next_connector);
-
- } catch (ConnectionException ce) {
- // can't happen (right?)
- } /* try */
- break;
- case UNION:
- next_primitive = new Union(canvas);
- next_primitive.read(this);
- break;
- case INTERSECTION:
- next_primitive = new Intersection(canvas);
- next_primitive.read(this);
- break;
- case LABEL:
- label_length = readInt();
- next_primitive = new EACLabel(canvas,label_length);
- next_primitive.read(this);
- break;
- } /* switch */
-
- // add to configuration
- config.addPrimitive(next_primitive);
-
- } /* for */
-
- // draw the configuration
- config.draw();
-
- } /* readConfiguration */
-
-} \ No newline at end of file
diff --git a/java/EAC/InputMode.java b/java/EAC/InputMode.java
deleted file mode 100644
index c44e4a45c4d..00000000000
--- a/java/EAC/InputMode.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * Title: InputMode
- * Description: Maintains Configurator state for deciding how to handle input
- */
-package EAC;
-
-public class InputMode {
-
- public final int COMMAND = 0;
- public final int SELECT = 1;
- public final int CUT = 2;
- public final int COPY = 3;
- public final int PASTE = 4;
- public final int EDIT = 5;
- public final int RESIZE = 6;
-
- protected int mode;
-
- protected Primitive current_shape;
-
- public InputMode() {
- mode = COMMAND;
- } /* constructor */
-
- public int getMode() {
- return mode;
- } /* getMode */
-
- protected void setMode(int m) {
- mode = m;
- } /* setMode */
-} \ No newline at end of file
diff --git a/java/EAC/Intersection.java b/java/EAC/Intersection.java
deleted file mode 100644
index 1e1beafb770..00000000000
--- a/java/EAC/Intersection.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Title: Intersection
- * Description: A binary intersection operator class for the Event Analysis
- * Configurator. Acts as a sort of filter, combining two event
- * streams into one.
- */
-package EAC;
-import java.awt.*;
-
-public class Intersection extends Operator {
-
- // Where did the last event come from?
- protected Primitive last_event_source;
-
- public Intersection(EACPanel p) {
- super(p);
- last_event_source = null;
- } /* constructor */
-
- public void draw() throws BoundsException {
- // the intersection symbol
- final char iSymbol = '^';
-
- // subtle adjustments to position symbol within circle
- final int xTweak = 2;
- final int yTweak = -5;
-
- char symbol[] = new char[1];
- Graphics g = canvas.getGraphics();
-
- super.draw();
- symbol[0] = iSymbol;
- g.drawChars(symbol,0,1,
- anchor.x + (int) (DIAMETER / 2) - xTweak,
- anchor.y + (int) (DIAMETER / 2) - yTweak);
- } /* draw */
-
- public void event(Source s) throws ConnectionException {
- //System.out.println("Intersection event");
- if (last_event_source == null)
- last_event_source = s;
- else if (last_event_source != s) { // we've now gotten events from two distinct sources
- int i;
-
- last_event_source = null;
- for (i = 0; i < output_count; i++)
- output[i].event(s);
- } // else no-op, because this event is from the same source as the last event
- } /* event */
-
- public void write(File f) throws java.io.IOException {
- f.writeInt(f.INTERSECTION);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- } /* read */
-} \ No newline at end of file
diff --git a/java/EAC/Operator.java b/java/EAC/Operator.java
deleted file mode 100644
index 724c9583b20..00000000000
--- a/java/EAC/Operator.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/**
- * Title: Operator
- * Description: An abstract binary operator class for the Event Analysis
- * Configurator
- */
-package EAC;
-import java.awt.*;
-
-public abstract class Operator extends Primitive {
-
- // Radius of the circle
- protected final int DIAMETER = 40;
-
- // inputs
- protected Connector left_input,
- right_input;
-
- // outputs
- protected Connector output[] = new Connector[MAX_OUTPUTS];
- protected int output_count = 0;
-
- // helps with dragging the operator
- protected boolean selected;
- Point old_anchor;
-
- public Operator(EACPanel p) {
- super(p);
- } /* constructor */
-
- public void setTop(Point p) {
- anchor = new Point(p.x - (int) (DIAMETER / 2), p.y);
- } /* setTop */
-
- public Point getTop() {
- return new Point(anchor.x + (int) (DIAMETER / 2), anchor.y);
- } /* getTop */
-
- public void draw() throws BoundsException {
- Graphics g = canvas.getGraphics();
-
- if (selected)
- selected = false;
- else if (inBounds())
- g.drawOval(anchor.x, anchor.y, DIAMETER, DIAMETER);
- else
- throw new BoundsException("ERROR: Attempted to place Operator partially out of bounds");
- } /* draw */
-
- public void specialDraw() {
- Graphics g = canvas.getGraphics();
-
- g.setXORMode(canvas.getBackground());
- g.drawOval(anchor.x,anchor.y,DIAMETER,DIAMETER);
- } /* specialDraw */
-
- public void specialUndraw() {
- Graphics g = canvas.getGraphics();
-
- g.setColor(canvas.getBackground());
- g.setXORMode(canvas.getForeground());
- g.drawOval(anchor.x,anchor.y,DIAMETER,DIAMETER);
- } /* specialUndraw */
-
- public void selectedDraw() {
- old_anchor = anchor;
- selected = true;
- super.selectedDraw();
- } /* selectedDraw */
-
- public void reconnect() {
- int i;
-
- // move output anchors
- for (i = 0; i < output_count; i++)
- output[i].setAnchor(new Point(output[i].getAnchor().x + anchor.x - old_anchor.x,
- output[i].getAnchor().y + anchor.y - old_anchor.y));
-
- // move input endpoints
- if (left_input != null)
- left_input.setEndpoint(new Point(left_input.upperRight().x + anchor.x - old_anchor.x,
- left_input.upperRight().y + anchor.y - old_anchor.y));
- if (right_input != null)
- right_input.setEndpoint(new Point(right_input.upperRight().x + anchor.x - old_anchor.x,
- right_input.upperRight().y + anchor.y - old_anchor.y));
-
- } /* reconnect */
-
- public boolean contains(Point p) {
- if ((p.x >= anchor.x) &&
- (p.x <= anchor.x + DIAMETER) &&
- (p.y >= anchor.y) &&
- (p.y <= anchor.y + DIAMETER))
- return true;
- else
- return false;
- } /* contains */
-
- public Point upperLeft() {
- return anchor;
- } /* upperLeft */
-
- public Point lowerRight() {
- return new Point(anchor.x + DIAMETER, anchor.y + DIAMETER);
- } /* lowerRight */
-
- public Point upperRight() {
- return new Point(anchor.x + DIAMETER, anchor.y);
- } /* upperRight */
-
- public Point lowerLeft() {
- return new Point(anchor.x, anchor.y + DIAMETER);
- } /* lowerLeft */
-
- public int addInput(Connector c) throws ConnectionException {
- if (left_input == null) {
- left_input = c;
- return 0;
- } else if (right_input == null) {
- right_input = c;
- return 1;
- } else
- throw new ConnectionException("ERROR: Operator already has two inputs");
- } /* addInput */
-
- public int addOutput(Connector c) throws ConnectionException {
- if (output_count < MAX_OUTPUTS)
- output[output_count++] = c;
- else
- throw new ConnectionException("ERROR: Maximum outputs established for this operator");
-
- return output_count;
- } /* addOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- if ((i < 0) || (i > 1))
- throw new ConnectionException("ERROR: Bad input index for operator");
- else if (i == 0) {
- if (left_input == null)
- throw new ConnectionException("ERROR: No left input for operator");
- else
- return left_input;
- } else // i == 1
- if (right_input == null)
- throw new ConnectionException("ERROR: No right input for operator");
-
- return right_input;
- } /* getInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- if ((i >= 0) && (i < output_count))
- return output[i];
- else
- throw new ConnectionException("ERROR: Bad output index for operator");
- } /* getOutput */
-
- public void removeInput(int i) throws ConnectionException {
- if ((i < 0) || (i > 1))
- throw new ConnectionException("ERROR: Bad input index for operator");
- else if (i == 0) {
- if (left_input == null)
- throw new ConnectionException("ERROR: No left input for operator");
- else
- left_input = null;
- } else if (i == 1) {
- if (right_input == null)
- throw new ConnectionException("ERROR: No right input for operator");
- else
- right_input = null;
- }
- } /* removeInput */
-
- public void removeOutput(int i) throws ConnectionException {
- if ((i < 0) || (i > output_count))
- throw new ConnectionException("ERROR: Bad output index for operator");
- else {
- output[i] = output[output_count-1];
- --output_count;
- }
- } /* removeOutput */
-
- public int getOutputCount() throws ConnectionException {
- return output_count;
- } /* getOutputCount */
-
- public int getInputCount() throws ConnectionException {
- if (left_input == null)
- return 0;
- else if (right_input == null)
- return 1;
- else
- return 2;
- } /* getInputCount */
-
- public void wakeup(long t) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to wake up operator");
- } /* wakeup */
-
- public boolean inBounds() {
- if (canvas.contains(anchor.x,anchor.y) &&
- canvas.contains(anchor.x + DIAMETER, anchor.y + DIAMETER))
- return true;
- else
- return false;
- } /* inBounds */
-
-} \ No newline at end of file
diff --git a/java/EAC/Primitive.java b/java/EAC/Primitive.java
deleted file mode 100644
index a0532a9731b..00000000000
--- a/java/EAC/Primitive.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * Title: Primitive
- * Description: An abstract class for Event Analysis Configurator graphical
- * primitives
- */
-package EAC;
-import java.awt.*;
-import java.io.*;
-
-public abstract class Primitive {
-
- // maximum number of outputs from any primitive
- public final int MAX_OUTPUTS = 8;
-
- // maximum number of inputs to a sink
- public final int MAX_INPUTS = 8;
-
- // where the primitive will be drawn
- protected EACPanel canvas;
-
- // anchor point of the graphical shape
- protected Point anchor;
-
- // associated label
- protected EACLabel label;
-
- public Primitive(EACPanel p) {
- canvas = p;
- } /* constructor */
-
- public void setAnchor(Point p) {
- anchor = p;
- } /* setAnchor */
-
- public Point getAnchor() {
- return anchor;
- } /* getAnchor */
-
- public void setLabel(EACLabel l) {
- label = l;
- } /* setLabel */
-
- public EACLabel getLabel() {
- return label;
- } /* getLabel */
-
- public void restart() {
- // no-op for most primitives
- // overload as needed
- } /* restart */
-
- public void specialDraw() {
- // no-op for some primitives
- // overload as needed
- } /* specialDraw */
-
- public void specialUndraw() {
- // no-op for some primitives
- // overload as needed
- } /* specialUndraw */
-
- public void reconnect() {
- // no-op for some primitives
- // overload as needed
- } /* reconnect */
-
- public void selectedDraw() {
- final int d = 4; // dimension of hotspot
- Graphics g = canvas.getGraphics();
-
- g.setColor(java.awt.Color.darkGray);
- g.drawRect(upperLeft().x - (d/2),upperLeft().y - (d/2), d, d);
- g.drawRect(lowerLeft().x - (d/2),lowerLeft().y - (d/2), d, d);
- g.drawRect(upperRight().x - (d/2),upperRight().y - (d/2), d, d);
- g.drawRect(lowerRight().x - (d/2),lowerRight().y - (d/2), d, d);
- } /* selectedDraw */
-
- // establish the top center point of the graphical shape
- public abstract void setTop(Point p);
-
- public abstract Point getTop();
-
- public abstract boolean inBounds();
-
- public abstract int addInput(Connector c) throws ConnectionException;
-
- public abstract int addOutput(Connector c) throws ConnectionException;
-
- public abstract Connector getInput(int i) throws ConnectionException;
-
- public abstract Connector getOutput(int i) throws ConnectionException;
-
- public abstract void removeInput(int i) throws ConnectionException;
-
- public abstract void removeOutput(int i) throws ConnectionException;
-
- public abstract int getInputCount() throws ConnectionException;
-
- public abstract int getOutputCount() throws ConnectionException;
-
- public abstract void event(Source s) throws ConnectionException;
-
- public abstract void wakeup(long t) throws ConnectionException;
-
- public abstract void draw() throws BoundsException;
-
- public abstract void write(File f) throws java.io.IOException;
-
- public abstract void read(File f) throws java.io.IOException;
-
- public abstract boolean contains(Point p);
-
- public abstract Point upperLeft();
-
- public abstract Point lowerRight();
-
- public abstract Point upperRight();
-
- public abstract Point lowerLeft();
-
-} \ No newline at end of file
diff --git a/java/EAC/Queue.java b/java/EAC/Queue.java
deleted file mode 100644
index 20c4483a17a..00000000000
--- a/java/EAC/Queue.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Title: Queue
- * Description: The primary event queue for the Event Analysis Configurator
- */
-package EAC;
-
-public class Queue {
-
- private class Node {
-
- public Primitive primitive;
- public long time;
- public Node next;
-
- public Node(Primitive p, long t, Node n) {
- primitive = p;
- time = t;
- next = n;
- } /* constructor */
-
- } /* Node */
-
- private Node head;
-
- private int count;
-
- public Queue() {
- count = 0;
- } /* constructor */
-
- public boolean empty() {
- return (count == 0);
- } /* empty */
-
- public void clear() {
- while (!empty())
- try {
- dequeue();
- } catch (EmptyQueueException eqe) {
- // can't happen
- }
- } /* clear */
-
- public void enqueue(Primitive p, long t) {
- if (head == null) {
- head = new Node(p,t,null);
- count = 1;
- } else { // non-empty
- if ((head.time == t) && (head.primitive == p))
- return; // no duplicates
- else if (head.time >= t) { // need new head
- Node temp = new Node(p,t,head);
- head = temp;
- } else { // find insertion point
- Node ptr = head;
-
- while (ptr.next != null)
- if (ptr.next.time < t)
- ptr = ptr.next;
- else
- break;
-
- if (ptr.next == null)
- ptr.next = new Node(p,t,null);
- else if ((ptr.next.time == t) && (ptr.next.primitive == p))
- return; // no duplicates
- else {
- Node temp = new Node(p,t,ptr.next);
- ptr.next = temp;
- }
- }
-
- count++;
- } /* else */
- } /* enqueue */
-
- public Primitive dequeue () throws EmptyQueueException {
- if (count == 0)
- throw new EmptyQueueException("ERROR: dequeue called when queue empty");
-
- Primitive temp = head.primitive;
- head = head.next;
- --count;
- return temp;
- } /* dequeue */
-
- public long frontTime () throws EmptyQueueException {
- if (count == 0)
- throw new EmptyQueueException("ERROR: frontTime called when queue empty");
-
- return head.time;
- } /* frontTime */
-
-} \ No newline at end of file
diff --git a/java/EAC/README b/java/EAC/README
deleted file mode 100644
index 91773ab16bd..00000000000
--- a/java/EAC/README
+++ /dev/null
@@ -1,6 +0,0 @@
-This directory contains the source code for the Event Analysis Configurator (EAC).
-The EAC was built as a final project for an Advanced User Interface (CS 501) course,
-taught by Dr. Kimura in the fall of 2000.
-
-There are also two MS-Word documents which were written as part of the project.
-Hopefully these will explain what the EAC is, what it does, and how it works.
diff --git a/java/EAC/ResourcePool.java b/java/EAC/ResourcePool.java
deleted file mode 100644
index c2200baa2fc..00000000000
--- a/java/EAC/ResourcePool.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Title: ResourcePool
- * Description: An abstraction of a collection of resources that can be
- * reserved and released by real-time components
- */
-package EAC;
-
-public class ResourcePool {
-
- // percentage of resources reserved
- protected int reserved;
-
- public ResourcePool()
- {
- reserved = 0;
- } /* default constructor */
-
- public ResourcePool(int r) {
- reserved = r;
- } /* constructor */
-
- public int usage() {
- return reserved;
- } /* usage */
-
- public boolean reserve(int r) {
- if (reserved + r > 100)
- return false;
- else {
- //System.out.println("Reservation ok: " + java.lang.Integer.toString(r));
- reserved += r;
- return true;
- } /* else */
- } /* reserve */
-
- public boolean release(int r) {
- if (reserved - r < 0)
- return false;
- else {
- //System.out.println("Release ok: " + java.lang.Integer.toString(r));
- reserved -= r;
- return true;
- } /* else */
- } /* release */
-
-} \ No newline at end of file
diff --git a/java/EAC/Rubberband.java b/java/EAC/Rubberband.java
deleted file mode 100644
index b5fcf7e60a0..00000000000
--- a/java/EAC/Rubberband.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * A abstract base class for rubberbands.<p>
- *
- * Rubberbands do their rubberbanding inside of a Component,
- * which must be specified at construction time.<p>
- *
- * Subclasses are responsible for implementing
- * <em>void drawLast(Graphics g)</em> and
- * <em>void drawNext(Graphics g)</em>.
- *
- * drawLast() draws the appropriate geometric shape at the last
- * rubberband location, while drawNext() draws the appropriate
- * geometric shape at the next rubberband location. All of the
- * underlying support for rubberbanding is taken care of here,
- * including handling XOR mode setting; extensions of Rubberband
- * need not concern themselves with anything but drawing the
- * last and next geometric shapes.<p>
- *
- * @version 1.00, 12/27/95
- * @author David Geary
- */
-package EAC;
-import java.awt.*;
-
-abstract public class Rubberband {
- protected Point anchor = new Point(0,0);
- protected Point stretched = new Point(0,0);
- protected Point last = new Point(0,0);
- protected Point end = new Point(0,0);
-
- private Component component;
- private boolean firstStretch = true;
-
- abstract public void drawLast(Graphics g);
- abstract public void drawNext(Graphics g);
-
- public Rubberband(Component component) {
- this.component = component;
- }
-
- public Point getAnchor () { return anchor; }
- public Point getStretched() { return stretched; }
- public Point getLast () { return last; }
- public Point getEnd () { return end; }
- public void setAnchor(Point p) { anchor = p; }
- public void setEnd(Point p) { end = p; }
-
- public void anchor(Point p) {
- firstStretch = true;
- anchor.x = p.x;
- anchor.y = p.y;
-
- stretched.x = last.x = anchor.x;
- stretched.y = last.y = anchor.y;
- }
-
- public void stretch(Point p) {
- last.x = stretched.x;
- last.y = stretched.y;
- stretched.x = p.x;
- stretched.y = p.y;
-
- Graphics g = component.getGraphics();
- if (g != null) {
- g.setXORMode(component.getBackground());
-
- if (firstStretch == true)
- firstStretch = false;
- else
- drawLast(g);
-
- drawNext(g);
- }
- }
-
- public void end(Point p) {
- last.x = end.x = p.x;
- last.y = end.y = p.y;
-
- Graphics g = component.getGraphics();
- if(g != null) {
- g.setXORMode(component.getBackground());
- drawLast(g);
- }
- }
-
- public Rectangle bounds() {
- return new Rectangle(stretched.x < anchor.x ?
- stretched.x : anchor.x,
- stretched.y < anchor.y ?
- stretched.y : anchor.y,
- Math.abs(stretched.x - anchor.x),
- Math.abs(stretched.y - anchor.y));
- }
-
- public Rectangle lastBounds() {
- return new Rectangle(
- last.x < anchor.x ? last.x : anchor.x,
- last.y < anchor.y ? last.y : anchor.y,
- Math.abs(last.x - anchor.x),
- Math.abs(last.y - anchor.y));
- }
-}
diff --git a/java/EAC/RubberbandLine.java b/java/EAC/RubberbandLine.java
deleted file mode 100644
index 8a4ebfd2230..00000000000
--- a/java/EAC/RubberbandLine.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * Title: RubberbandLine
- * Description: A line subclass of Rubberband
- */
-package EAC;
-import java.awt.*;
-
-public class RubberbandLine extends Rubberband {
-
- public RubberbandLine(EACPanel p) {
- super(p);
- } /* RubberbandLine constructor */
-
- public void drawNext(Graphics g) {
- g.drawLine(getAnchor().x,
- getAnchor().y,
- getStretched().x,
- getStretched().y);
- } /* drawNext */
-
- public void drawLast(Graphics g) {
- g.drawLine(getAnchor().x,
- getAnchor().y,
- getLast().x,
- getLast().y);
- } /* drawLast */
-
-} /* RubberbandLine */
diff --git a/java/EAC/Sink.java b/java/EAC/Sink.java
deleted file mode 100644
index f4f8d02d0fe..00000000000
--- a/java/EAC/Sink.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/**
- * Title: Sink
- * Description: An event sink for the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-
-public class Sink extends Primitive {
-
- // triangle dimensions
- protected final int WIDTH = 20;
- protected final int HEIGHT = 35;
-
- // lower left and lower right corner points
- // inherited anchor attribute holds the top point
- protected Point p2,
- p3;
-
- // inputs
- protected Connector input[] = new Connector[MAX_INPUTS];
- protected int input_count;
-
- // for help with dragging this Sink
- Point old_anchor;
-
- public Sink(EACPanel p) {
- super(p);
- } /* constructor */
-
- public void draw() throws BoundsException {
- int x[] = new int[3],
- y[] = new int[3];
-
- if (inBounds()) {
- Graphics g = canvas.getGraphics();
-
- g.drawLine(anchor.x,anchor.y,p2.x,p2.y);
- g.drawLine(p2.x,p2.y,p3.x,p3.y);
- g.drawLine(p3.x,p3.y,anchor.x,anchor.y);
-
- /* Make it black */
- x[0] = anchor.x;
- x[1] = p2.x;
- x[2] = p3.x;
-
- y[0] = anchor.y;
- y[1] = p2.y;
- y[2] = p3.y;
-
- g.fillPolygon(x,y,3);
- } else
- throw new BoundsException("ERROR: Attempted to place Sink partially out of bounds");
- } /* draw */
-
- public void selectedDraw() {
- old_anchor = anchor;
- super.selectedDraw();
- } /* selectedDraw */
-
- public void specialDraw() {
- int x[] = new int[3],
- y[] = new int[3];
-
- Graphics g = canvas.getGraphics();
-
- g.setXORMode(canvas.getBackground());
- g.drawLine(anchor.x,anchor.y,p2.x,p2.y);
- g.drawLine(p2.x,p2.y,p3.x,p3.y);
- g.drawLine(p3.x,p3.y,anchor.x,anchor.y);
-
- /* Make it black */
- x[0] = anchor.x;
- x[1] = p2.x;
- x[2] = p3.x;
-
- y[0] = anchor.y;
- y[1] = p2.y;
- y[2] = p3.y;
-
- g.fillPolygon(x,y,3);
- } /* specialDraw */
-
- public void specialUndraw() {
- int x[] = new int[3],
- y[] = new int[3];
-
- Graphics g = canvas.getGraphics();
-
- g.setColor(canvas.getBackground());
- g.setXORMode(canvas.getForeground());
- g.drawLine(anchor.x,anchor.y,p2.x,p2.y);
- g.drawLine(p2.x,p2.y,p3.x,p3.y);
- g.drawLine(p3.x,p3.y,anchor.x,anchor.y);
-
- /* Make it black */
- x[0] = anchor.x;
- x[1] = p2.x;
- x[2] = p3.x;
-
- y[0] = anchor.y;
- y[1] = p2.y;
- y[2] = p3.y;
-
- g.fillPolygon(x,y,3);
- } /* specialUndraw */
-
- public void reconnect() {
- int i;
-
- for (i = 0; i < input_count; i++)
- input[i].setEndpoint(new Point(input[i].upperRight().x + anchor.x - old_anchor.x,
- input[i].upperRight().y + anchor.y - old_anchor.y));
- } /* reconnect */
-
- public boolean contains(Point p) {
- if ((p.x >= p2.x) &&
- (p.x <= p3.x) &&
- (p.y >= anchor.y) &&
- (p.y <= anchor.y + HEIGHT))
- return true;
- else
- return false;
- } /* contains */
-
- public Point upperLeft() {
- return new Point(p2.x,anchor.y);
- } /* upperLeft */
-
- public Point lowerRight() {
- return p3;
- } /* lowerRight */
-
- public Point upperRight() {
- return new Point(p3.x,anchor.y);
- } /* upperRight */
-
- public Point lowerLeft() {
- return p2;
- } /* lowerLeft */
-
- public void setTop(Point p) {
- anchor = p;
- p2 = bottomLeft();
- p3 = bottomRight();
- } /* setTop */
-
- public Point getTop() {
- return anchor;
- } /* getTop */
-
- public boolean inBounds() {
- if (canvas.contains(bottomLeft()) &&
- canvas.contains(bottomRight()))
- return true;
- else
- return false;
- } /* inBounds */
-
- private Point bottomLeft() {
- return new Point(anchor.x - WIDTH, anchor.y + HEIGHT);
- } /* bottomLeft */
-
- private Point bottomRight() {
- return new Point(anchor.x + WIDTH, anchor.y + HEIGHT);
- } /* bottomRight */
-
- public void write(File f) throws java.io.IOException {
- f.writeInt(f.SINK);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- p2 = bottomLeft();
- p3 = bottomRight();
- } /* read */
-
- public int addInput(Connector c) throws ConnectionException {
- if (input_count == MAX_INPUTS)
- throw new ConnectionException("ERROR: Maximum inputs established for sink");
- else
- input[input_count++] = c;
-
- return input_count;
- } /* addInput */
-
- public int addOutput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to add output to sink");
- } /* addOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- if ((i < 0) || (i >= input_count))
- throw new ConnectionException("ERROR: Bad input index for sink");
- else
- return input[i];
- } /* getInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve output from source");
- } /* getOutput */
-
- public void removeOutput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to remove output from source");
- } /* removeOutput */
-
- public void removeInput(int i) throws ConnectionException {
- if ((i >= 0) && (i < input_count)) {
- input[i] = input[input_count-1];
- --input_count;
- } else
- throw new ConnectionException("ERROR: Bad input index for sink");
- } /* removeInput */
-
- public int getInputCount() throws ConnectionException {
- return input_count;
- } /* getInputCount */
-
- public int getOutputCount() throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve output count from sink");
- } /* getOutputCount */
-
- public void event(Source s) {
- } /* event */
-
- public void wakeup(long t) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to wake up sink");
- } /* wakeup */
-} \ No newline at end of file
diff --git a/java/EAC/Source.java b/java/EAC/Source.java
deleted file mode 100644
index d8b50ee224f..00000000000
--- a/java/EAC/Source.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/**
- * Title: Source
- * Description: An event source for the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-
-public class Source extends Primitive {
-
- // Font for text
- protected Font text_font = new EACFont().getFont();
-
- // triangle dimensions
- protected final int WIDTH = 20;
- protected final int HEIGHT = 35;
-
- // lower left and lower right corner points
- // inherited anchor attribute holds the top point
- protected Point p2,
- p3;
-
- // period at which events will be generated
- protected int period;
-
- // where the Source was anchored prior to a move
- protected Point old_anchor;
-
- // where events will be pushed
- protected Connector output[] = new Connector[MAX_OUTPUTS];
- protected int output_count;
-
- // Is this Source currently selected for dragging?
- protected boolean selected = false;
-
- // Black-on-white (normal) or white-on-black (reversed)?
- protected boolean reverse_color = false;
-
- // configuration to which the Source belongs
- Configuration config;
-
- public Source(EACPanel p, Configuration c) {
- super(p);
- config = c;
- output_count = 0;
- period = 0;
- } /* constructor */
-
- private void drawTriangle(Graphics g) {
- g.drawLine(anchor.x,anchor.y,p2.x,p2.y);
- g.drawLine(p2.x,p2.y,p3.x,p3.y);
- g.drawLine(p3.x,p3.y,anchor.x,anchor.y);
- } /* drawTriangle */
-
- public void draw() throws BoundsException {
- int x[] = new int[3],
- y[] = new int[3];
-
- if (selected)
- selected = false;
- else if (inBounds()) {
- Graphics g = canvas.getGraphics();
- Color bg,
- fg;
-
- x[0] = anchor.x;
- x[1] = p2.x;
- x[2] = p3.x;
-
- y[0] = anchor.y;
- y[1] = p2.y;
- y[2] = p3.y;
-
- if (reverse_color) {
- bg = Color.black;
- fg = Color.white;
- } else {
- bg = Color.white;
- fg = Color.black;
- }
-
- g.setColor(bg); // for interior
- g.fillPolygon(x,y,3);
-
- g.setColor(Color.black); // triangle itself is always black
- drawTriangle(g);
-
- g.setColor(fg); // for text
-
- // print period
- if (period > 0) {
- g.setFont(text_font);
- g.drawString(java.lang.String.valueOf(period),
- anchor.x - (3 * java.lang.String.valueOf(period).length()),
- anchor.y + 28);
- }
- } else
- throw new BoundsException("ERROR: Attempted to place source partially out of bounds");
- } /* draw */
-
- public void selectedDraw() {
- Graphics g = canvas.getGraphics();
- int x[] = new int[3],
- y[] = new int[3];
-
- old_anchor = anchor;
- x[0] = anchor.x;
- x[1] = p2.x;
- x[2] = p3.x;
-
- y[0] = anchor.y;
- y[1] = p2.y;
- y[2] = p3.y;
-
- //drawTriangle();
- g.setColor(canvas.getBackground());
- g.fillPolygon(x,y,3);
-
- // this will preclude drawing this Source for one repaint() call
- selected = true;
-
- super.selectedDraw();
- } /* selectedDraw */
-
- public void specialDraw() {
- Graphics g = canvas.getGraphics();
-
- g.setXORMode(canvas.getBackground());
- drawTriangle(g);
- } /* specialDraw */
-
- public void specialUndraw() {
- Graphics g = canvas.getGraphics();
-
- g.setColor(canvas.getBackground());
- g.setXORMode(canvas.getForeground());
- drawTriangle(g);
- } /* specialUndraw */
-
- public void reverseColor() {
- reverse_color = true;
- } /* reverseColor */
-
- public void normalColor() {
- reverse_color = false;
- } /* normalColor */
-
- public void reconnect() {
- int i;
-
- for (i = 0; i < output_count; i++)
- output[i].setAnchor(new Point(output[i].getAnchor().x + anchor.x - old_anchor.x,
- output[i].getAnchor().y + anchor.y - old_anchor.y));
-
- // move label anchor
- label.setAnchor(new Point(label.getAnchor().x + anchor.x - old_anchor.x,
- label.getAnchor().y + anchor.y - old_anchor.y));
- } /* reconnect */
-
- public boolean contains(Point p) {
- if ((p.x >= p2.x) &&
- (p.x <= p3.x) &&
- (p.y >= anchor.y) &&
- (p.y <= anchor.y + HEIGHT))
- return true;
- else
- return false;
- } /* contains */
-
- public Point upperLeft() {
- return new Point(p2.x,anchor.y);
- } /* upperLeft */
-
- public Point lowerRight() {
- return p3;
- } /* lowerRight */
-
- public Point upperRight() {
- return new Point(p3.x,anchor.y);
- } /* upperRight */
-
- public Point lowerLeft() {
- return p2;
- } /* lowerLeft */
-
- public void setTop(Point p) {
- anchor = p;
- p2 = bottomLeft();
- p3 = bottomRight();
- } /* setTop */
-
- public Point getTop() {
- return anchor;
- } /* getTop */
-
- public void setPeriod(int p) throws NumberFormatException {
- if (p > 0) {
- period = p;
- config.eventEnqueue(this,period); // Enqueue first wakeup time
- }
- else
- throw new NumberFormatException();
- } /* setPeriod */
-
- public int getPeriod() {
- return period;
- } /* getPeriod */
-
- public void restart() {
- config.eventEnqueue(this,period);
- reverse_color = false;
- selected = false;
- } /* restart */
-
- public int addOutput(Connector c) throws ConnectionException {
- if (output_count == MAX_OUTPUTS)
- throw new ConnectionException("ERROR: Maximum outputs established for source");
- else
- output[output_count++] = c;
-
- return output_count;
- } /* addOutput */
-
- public int addInput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to add input to source");
- } /* addInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- if ((i < 0) || (i >= output_count))
- throw new ConnectionException("ERROR: Bad output index for source");
- else
- return output[i];
- } /* getOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve input from source");
- } /* getInput */
-
- public void removeInput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to remove input from source");
- } /* removeInput */
-
- public void removeOutput(int i) throws ConnectionException {
- if ((i >= 0) && (i < output_count)) {
- output[i] = output[output_count-1];
- --output_count;
- } else
- throw new ConnectionException("ERROR: Bad output index for source");
- } /* removeOutput */
-
- public int getOutputCount() throws ConnectionException {
- return output_count;
- } /* getOutputCount */
-
- public int getInputCount() throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve input count from source");
- } /* getInputCount */
-
- public void event(Source s) throws ConnectionException {
- throw new ConnectionException("Internal error: event() called on source");
- } /* event */
-
- public void wakeup(long t) throws ConnectionException {
- int i;
-
- //System.out.println("Source wakeup at: " + java.lang.Long.toString(t));
- config.eventEnqueue(this,t + period); // enqueue next wakeup time
-
- // send an event to all outputs
- for (i = 0; i < output_count; i++)
- output[i].event(this);
- } /* wakeup */
-
- public boolean inBounds() {
- if (canvas.contains(bottomLeft()) &&
- canvas.contains(bottomRight()) &&
- canvas.contains(anchor))
- return true;
- else
- return false;
- } /* inBounds */
-
- private Point bottomLeft() {
- return new Point(anchor.x - WIDTH, anchor.y + HEIGHT);
- } /* bottomLeft */
-
- private Point bottomRight() {
- return new Point(anchor.x + WIDTH, anchor.y + HEIGHT);
- } /* bottomRight */
-
- public void write(File f) throws java.io.IOException {
- char temp[]; // for reading label
- int i, n;
-
- f.writeInt(f.SOURCE);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- f.writeInt(period);
-
- // Write out the associated label
- n = label.getText().length();
- f.writeInt(n); // text length
- temp = new char[n];
- temp = label.getText().toCharArray();
-
- for (i = 0; i < n; i++)
- f.writeChar(temp[i]);
- f.writeInt(label.getAnchor().x); // label position
- f.writeInt(label.getAnchor().y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- char temp[]; // for reading label
- int i, n;
- int label_x, label_y;
-
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- period = f.readInt();
- config.eventEnqueue(this,period); // Enqueue first event
- p2 = bottomLeft();
- p3 = bottomRight();
-
- // get label info
- n = f.readInt(); // text length
- label = new EACLabel(canvas,n);
- temp = new char[n];
- for (i = 0; i < n; i++)
- temp[i] = f.readChar();
- label.setText(java.lang.String.valueOf(temp));
- label_x = f.readInt();
- label_y = f.readInt();
- label.setAnchor(new Point(label_x,label_y));
- label.setLabelee(this);
- try {
- config.addPrimitive(label);
- } catch (TooManyPrimitivesException tmpe) {
- // have faith :-)
- }
- } /* read */
-} \ No newline at end of file
diff --git a/java/EAC/System_Manual.doc b/java/EAC/System_Manual.doc
deleted file mode 100644
index 89d76eba720..00000000000
--- a/java/EAC/System_Manual.doc
+++ /dev/null
Binary files differ
diff --git a/java/EAC/TooManyPrimitivesException.java b/java/EAC/TooManyPrimitivesException.java
deleted file mode 100644
index d9cb8efa733..00000000000
--- a/java/EAC/TooManyPrimitivesException.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Title: TooManyPrimitivesException
- * Description: An exception class for when an attempt is made to add a
- * primitives when the maximum number have already been added
- */
-package EAC;
-
-public class TooManyPrimitivesException extends Exception {
-
- public TooManyPrimitivesException(String msg) {
- super(msg);
- }
-} \ No newline at end of file
diff --git a/java/EAC/Union.java b/java/EAC/Union.java
deleted file mode 100644
index 107390dc560..00000000000
--- a/java/EAC/Union.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Title: Union
- * Description: A binary union operator class for the Event Analysis
- * Configurator. Acts as a sort of multiplexor, combining two
- * event streams into one.
- */
-package EAC;
-import java.awt.*;
-
-public class Union extends Operator {
-
- public Union(EACPanel p) {
- super(p);
- } /* constructor */
-
- public void draw() throws BoundsException {
- // the union symbol
- final char uSymbol = 'U';
-
- // subtle adjustments to position symbol within circle
- final int xTweak = 4;
- final int yTweak = -4;
-
- char symbol[] = new char[1];
-
- Graphics g = canvas.getGraphics();
-
- super.draw();
- symbol[0] = (char) uSymbol;
- g.drawChars(symbol,0,1,
- anchor.x + (int) (DIAMETER / 2) - xTweak,
- anchor.y + (int) (DIAMETER / 2) - yTweak);
- } /* draw */
-
- public void event(Source s) throws ConnectionException {
- int i;
-
- //System.out.println("Union event");
-
- // send an event to all outputs
- for (i = 0; i < output_count; i++)
- output[i].event(s);
- } /* event */
-
- public void write(File f) throws java.io.IOException {
- f.writeInt(f.UNION);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- } /* read */
-} \ No newline at end of file
diff --git a/java/EAC/User_Manual.doc b/java/EAC/User_Manual.doc
deleted file mode 100644
index 5f17fc98f37..00000000000
--- a/java/EAC/User_Manual.doc
+++ /dev/null
Binary files differ
diff --git a/java/ImageProcessing/filters/Assert.java b/java/ImageProcessing/filters/Assert.java
deleted file mode 100644
index c83f9ca94c0..00000000000
--- a/java/ImageProcessing/filters/Assert.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package imaging.filters;
-
-/**
- * A simple assertion mechanism for asserting validity of
- * arguments.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- */
-class Assert {
- static public void notFalse(boolean b)
- throws IllegalArgumentException {
- if(b == false)
- throw new IllegalArgumentException(
- "boolean expression false");
- }
- static public void notNull(Object obj)
- throws IllegalArgumentException {
- if(obj == null)
- throw new IllegalArgumentException("null argument");
- }
-
- static public void notFalse(boolean b, String s)
- throws IllegalArgumentException {
- if(b == false)
- throw new IllegalArgumentException(s);
- }
- static public void notNull(Object obj, String s)
- throws IllegalArgumentException {
- if(obj == null)
- throw new IllegalArgumentException(s);
- }
-}
diff --git a/java/ImageProcessing/filters/BleachFilter.java b/java/ImageProcessing/filters/BleachFilter.java
deleted file mode 100644
index e9d6a0b9e0e..00000000000
--- a/java/ImageProcessing/filters/BleachFilter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-/**
- * A derivation of RGBImageFilter that bleaches an image.<p>
- *
- * Extent of the bleaching effect is controlled by the only
- * constructor argument: an integer representing the percentage
- * of bleaching. The percentage of bleaching may also be
- * controlled after instantiation by invoking the
- * void percent(int) method.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see RGBImageFilter
- */
-public class BleachFilter extends RGBImageFilter implements MedFilter
-{
- private int percent;
-
- public BleachFilter()
- {
- this(25);
- }
-
- public BleachFilter(int percent)
- {
- Assert.notFalse(percent >= 0 && percent <= 100);
- this.percent = percent;
- canFilterIndexColorModel = true;
- }
-
- public String info ()
- {
- return "Bleaches/Lightens an image";
- }
-
- public int percent() { return percent; }
- public void percent(int percent) { percent = percent; }
-
- public int filterRGB(int x, int y, int rgb) {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
-
- int alpha = cm.getAlpha(rgb);
- int red = cm.getRed (rgb);
- int green = cm.getGreen(rgb);
- int blue = cm.getBlue (rgb);
- double percentMultiplier = (double)percent/100;
-
- red = Math.min((int)
- (red + (red * percentMultiplier)), 255);
- green = Math.min((int)
- (green + (green * percentMultiplier)), 255);
- blue = Math.min((int)
- (blue + (blue * percentMultiplier)), 255);
-
- alpha = alpha << 24;
- red = red << 16;
- green = green << 8;
-
- return alpha | red | green | blue;
- }
-}
diff --git a/java/ImageProcessing/filters/BlurFilter.java b/java/ImageProcessing/filters/BlurFilter.java
deleted file mode 100644
index e071324e491..00000000000
--- a/java/ImageProcessing/filters/BlurFilter.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class BlurFilter extends SpatialFilter
-{
- private int[][] mean_filter;
- private int degree_ = 3;
-
- public BlurFilter()
- {
- }
-
- public BlurFilter(int degree)
- {
- degree_ = degree;
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error");
- return;
- }
-
- System.gc();
-
- int[] pixels = new int[columns_*rows_];
- int pixel = 0, count = 0;
- int red, green, blue, index;
- int alpha, n2 = degree_/2;
-
- profile_timer_.start();
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
-
- for (int y = 0, i = 0; y < rows_; y++)
- {
- for (int x = 0; x < columns_; x++, i++)
- {
- red = 0; green = 0; blue = 0; count = 0;
- alpha = (raster_[i] >> 24) & 0xff;
-
- for (int y1 = y - n2; y1 < y + n2; y1++)
- {
- index = y1*columns_;
- if (y1 >= 0 && y1 < rows_)
- {
- for (int x1 = x - n2; x1 < x + n2; x1++)
- {
- if (x1 >= 0 && x1 < columns_)
- {
- pixel = raster_[index + x1];
-
- red += (pixel >> 16) & 0xff;
- green += (pixel >> 8) & 0xff;
- blue += (pixel) & 0xff;
- count++;
- }
- }
- }
- }
-
- red /= count;
- green /= count;
- blue /= count;
-
- if (red < 0) red = 0;
- if (green < 0) green = 0;
- if (blue < 0) blue = 0 ;
-
- if (red > 255) red = 255;
- if (green > 255) green = 255;
- if (blue > 255) blue = 255;
-
- pixels[i] = (alpha << 24) | (red << 16) | (green << 8) | blue;
- }
- }
- }
-
- profile_timer_.stop();
-
- System.out.println("Finished altering image");
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- consumer.imageComplete(status);
- }
-
- public String info ()
- {
- return "Blurs an image.";
- }
-}
diff --git a/java/ImageProcessing/filters/DarkenFilter.java b/java/ImageProcessing/filters/DarkenFilter.java
deleted file mode 100644
index ea20d15a46b..00000000000
--- a/java/ImageProcessing/filters/DarkenFilter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class DarkenFilter extends RGBImageFilter implements MedFilter
-{
- private int percent_;
-
- public DarkenFilter ()
- {
- percent_ = 50;
- canFilterIndexColorModel = true;
- }
-
- public DarkenFilter(int percent)
- {
- Assert.notFalse(percent >= 0 && percent <= 100);
- percent_ = percent;
- canFilterIndexColorModel = true;
- }
-
- public String info ()
- {
- return "Darkens an image.";
- }
-
- public int filterRGB(int x, int y, int rgb)
- {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
-
- int alpha = cm.getAlpha(rgb);
- int red = cm.getRed (rgb);
- int green = cm.getGreen(rgb);
- int blue = cm.getBlue (rgb);
- double percentMultiplier = (double)((double)1.0 - (double)percent_/100);
-
- red *= percentMultiplier;
- blue *= percentMultiplier;
- green *= percentMultiplier;
-
- alpha = alpha << 24;
- red = red << 16;
- green = green << 8;
-
- return alpha | red | green | blue;
- }
-}
diff --git a/java/ImageProcessing/filters/DeSpeckleFilter.java b/java/ImageProcessing/filters/DeSpeckleFilter.java
deleted file mode 100644
index d9bff1de3b5..00000000000
--- a/java/ImageProcessing/filters/DeSpeckleFilter.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class DeSpeckleFilter extends SpatialFilter
-{
- private int degree_ = 3;
-
- public DeSpeckleFilter()
- {
- }
-
- public DeSpeckleFilter(int degree)
- {
- degree_ = degree;
- }
-
- public String info ()
- {
- return "Removes speckles from an image.";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("DeSpeckleFilter Image Error: " + status);
- return;
- }
-
- System.gc();
-
- int rsum, bsum, gsum, r, g, b, a;
- int count, n2, nsq, c2, lcv, lcv2, index;
- int[] rtab, gtab, btab;
- int[] pixels = new int[columns_*rows_];
-
- profile_timer_.start();
-
- n2 = degree_/2;
- nsq = degree_ * degree_;
-
- rtab = new int[nsq];
- gtab = new int[nsq];
- btab = new int[nsq];
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
- for (int y = 0, k = 0; y < rows_; y++)
- {
- lcv = y + n2;
- for (int x = 0; x < columns_; x++, k++)
- {
- rsum = gsum = bsum = 0;
- count = 0;
-
- lcv2 = x + n2;
- for (int y1 = y - n2; y1 < lcv; y1++)
- {
- index = y1*columns_;
- if (y1 >= 0 && y1 < rows_)
- {
- for (int x1 = x - n2; x1 < lcv2; x1++)
- {
- if (x1 >= 0 && x1 < columns_)
- {
- int pixel = raster_[index + x1];
- rtab[count] = (pixel >> 16) & 0xff;
- gtab[count] = (pixel >> 8) & 0xff;
- btab[count] = (pixel) & 0xff;
- count++;
- }
- }
- }
- }
-
- for (int d = count >> 1; d > 0; d >>= 1)
- {
- for (int i = d; i < count; i++)
- {
- for (int j = i - d; j >= 0 && rtab[j] > rtab[j+d]; j -= d)
- {
- int t = rtab[j];
- rtab[j] = rtab[j + d];
- rtab[j + d] = t;
- }
-
- for (int j = i - d; j >= 0 && gtab[j] > gtab[j+d]; j -= d)
- {
- int t = gtab[j];
- gtab[j] = gtab[j + d];
- gtab[j + d] = t;
- }
-
- for (int j = i - d; j >= 0 && btab[j] > btab[j+d]; j -= d)
- {
- int t = btab[j];
- btab[j] = btab[j + d];
- btab[j + d] = t;
- }
- }
- }
-
- c2 = count >> 1;
-
- a = (raster_[k] >> 24) & 0xff;
- r = ( (count % 2 == 0) ? (rtab[c2] + rtab[c2 - 1]) >> 1 : rtab[c2]);
- g = ( (count % 2 == 0) ? (gtab[c2] + gtab[c2 - 1]) >> 1 : gtab[c2]);
- b = ( (count % 2 == 0) ? (btab[c2] + btab[c2 - 1]) >> 1 : btab[c2]);
-
- pixels[k] = (a << 24) | (r << 16) | (g << 8) | b;
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- consumer.imageComplete(status);
- }
-
-}
diff --git a/java/ImageProcessing/filters/DissolveFilter.java b/java/ImageProcessing/filters/DissolveFilter.java
deleted file mode 100644
index 0225aad6ad1..00000000000
--- a/java/ImageProcessing/filters/DissolveFilter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-/**
- * A derivation of RGBImageFilter that partially or wholly
- * dissolves an image.<p>
- *
- * Extent of dissolving is set by the setOpacity(int) method,
- * which is passed an integer between 0 and 255 (inclusive).
- * The integer represents the alpha value to be applied to
- * every color in the image.<p>
- *
- * An alpha value of 255 signifies an opaque color, while an
- * alpha value of 0 signifies a translucent color.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see RGBImageFilter
- */
-public class DissolveFilter extends RGBImageFilter implements MedFilter
-{
- private int opacity;
-
- public DissolveFilter() {
- this(0);
- }
- public DissolveFilter(int opacity) {
- canFilterIndexColorModel = true;
- setOpacity(opacity);
- }
- public String info ()
- {
- return "Dissolves an image";
- }
- public void setOpacity(int opacity) {
- Assert.notFalse(opacity >= 0 && opacity <= 255);
- this.opacity = opacity;
- }
- public int filterRGB(int x, int y, int rgb) {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
- int alpha = cm.getAlpha(rgb);
- int red = cm.getRed (rgb);
- int green = cm.getGreen(rgb);
- int blue = cm.getBlue (rgb);
-
- alpha = opacity;
-
- return alpha << 24 | red << 16 | green << 8 | blue;
- }
-}
diff --git a/java/ImageProcessing/filters/EdgeDetectFilter.java b/java/ImageProcessing/filters/EdgeDetectFilter.java
deleted file mode 100644
index 87cc88d475d..00000000000
--- a/java/ImageProcessing/filters/EdgeDetectFilter.java
+++ /dev/null
@@ -1,250 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class EdgeDetectFilter extends SpatialFilter
-{
- public EdgeDetectFilter()
- {
- }
-
- public String info ()
- {
- return "Edge detection filter.";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error");
- return;
- }
-
- System.gc();
-
- int[] pixels = new int[columns_*rows_];
- int pixel = 0;
- int red, green, blue;
- int row1, row2, row3;
- int new_red1 = 0, new_green1 = 0, new_blue1 = 0,
- new_red2 = 0, new_green2 = 0, new_blue2 = 0;
- int ul, um, ur, ll, lm, lr, ml, mr;
- int alpha, lcv, lcv2;
-
- profile_timer_.start();
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
- lcv = rows_ - 1;
- lcv2 = columns_ - 1;
- for (int x = 1, index = 0; x < lcv; x++, index += columns_)
- {
- for (int y = 1; y < lcv2; y++)
- {
- row1 = index + y;
- row2 = row1 + columns_;
- row3 = row2 + columns_;
-
- ul = raster_[row1 - 1];
- um = raster_[row1];
- ur = raster_[row1 + 1];
- ml = raster_[row2 - 1];
- mr = raster_[row2 + 1];
- ll = raster_[row3 - 1];
- lm = raster_[row3];
- lr = raster_[row3 + 1];
-
- alpha = (raster_[row2] >> 24) & 0xff;
-
- new_red1 =
- (((ul >> 16) & 0xff)
- + (((um >> 16) & 0xff) << 1)
- + ((ur >> 16) & 0xff)
- - ((ll >> 16) & 0xff)
- - (((lm >> 16) & 0xff) << 1)
- - ((lr >> 16) & 0xff));
-
- new_green1 =
- (((ul >> 8) & 0xff)
- + (((um >> 8) & 0xff) << 1)
- + ((ur >> 8) & 0xff)
- - ((ll >> 8) & 0xff)
- - (((lm >> 8) & 0xff) << 1)
- - ((lr >> 8) & 0xff));
-
- new_blue1 =
- (((ul) & 0xff)
- + (((um) & 0xff) << 1)
- + ((ur) & 0xff)
- - ((ll) & 0xff)
- - (((lm) & 0xff) << 1)
- - ((lr) & 0xff));
-
- new_red2 =
- (- ((ul >> 16) & 0xff)
- + ((ur >> 16) & 0xff)
- - (((ml >> 16) & 0xff) << 1)
- + (((mr >> 16) & 0xff) << 1)
- - ((ll >> 16) & 0xff)
- + ((lr >> 16) & 0xff));
-
- new_green2 =
- (- ((ul >> 8) & 0xff)
- + ((ur >> 8) & 0xff)
- - (((ml >> 8) & 0xff) << 1)
- + (((mr >> 8) & 0xff) << 1)
- - ((ll >> 8) & 0xff)
- + ((lr >> 8) & 0xff));
-
- new_blue2 =
- (- ((ul) & 0xff)
- + ((ur) & 0xff)
- - (((ml) & 0xff) << 1)
- + (((mr) & 0xff) << 1)
- - ((ll) & 0xff)
- + ((lr) & 0xff));
-
-
- new_red1 = (int)Math.sqrt(new_red1*new_red1 + new_red2*new_red2);
- new_green1 = (int)Math.sqrt(new_green1*new_green1 + new_green2*new_green2);
- new_blue1 = (int)Math.sqrt(new_blue1*new_blue1 + new_blue2*new_blue2);
-
- if (new_red1 < 0) red = 0;
- if (new_green1 < 0) green = 0;
- if (new_blue1 < 0) blue = 0 ;
-
-
- if (new_red1 > 255)
- new_red1 = 255;
-
- if (new_green1 > 255)
- new_green1 = 255;
-
- if (new_blue1 > 255)
- new_blue1 = 255;
-
- pixels[row2] = (alpha << 24) | (new_red1 << 16) | (new_green1 << 8) | new_blue1;
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- consumer.imageComplete(status);
- }
-
- /*
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error");
- return;
- }
-
- int[][] pixels = new int[rows_*columns_];
- int pixel = 0;
- int red, green, blue;
- int row1, row2, row3, row4, row5;
- int a, b, c, d, rsum, gsum, bsum, v, maxv = 0;
- int ul, um, ur, ml, mr, ll, lm, lr, lcv, lcv2;
- int alpha;
-
- lcv = rows_ -1;
- for (int y = 1; y < lcv; y++)
- {
- lcv2 = columns_ -1;
- for (int x = 1; x < lcv2; x++)
- {
- row1 = columns_*(y-1) + x;
- row2 = row1 + columns_;
- row3 = row2 + columns_;
- ul = raster_[row1 - 1];
- um = raster_[row1];
- ur = raster_[row1 + 1];
- ml = raster_[row2 - 1];
- mr = raster_[row2 + 1];
- ll = raster_[row3 - 1];
- lm = raster_[row3];
- lr = raster_[row3 + 1];
-
- alpha = defaultRGB_.getAlpha(raster_[row2]);
-
- a = ((lr >> 16) & 0xff) - ((ul >> 16) & 0xff);
- b = ((mr >> 16) & 0xff) - ((ml >> 16) & 0xff);
- c = ((ur >> 16) & 0xff) - ((ll >> 16) & 0xff);
- d = ((um >> 16) & 0xff) - ((lm >> 16) & 0xff);
-
- rsum = a + b + c;
- if (rsum < 0) rsum = -rsum;
- a = a - c - d;
- if (a < 0) a = -a;
- if (rsum > a) rsum = a;
- rsum /= 3;
-
- a = ((lr >> 8) & 0xff) - ((ul >> 8) & 0xff);
- b = ((mr >> 8) & 0xff) - ((ml >> 8) & 0xff);
- c = ((ur >> 8) & 0xff) - ((ll >> 8) & 0xff);
- d = ((um >> 8) & 0xff) - ((lm >> 8) & 0xff);
-
- gsum = a + b + c;
- if (gsum < 0) gsum = -gsum;
- a = a - c - d;
- if (a < 0) a = -a;
- if (gsum > a) gsum = a;
- gsum /= 3;
-
- a = ((lr) & 0xff) - ((ul) & 0xff);
- b = ((mr) & 0xff) - ((ml) & 0xff);
- c = ((ur) & 0xff) - ((ll) & 0xff);
- d = ((um) & 0xff) - ((lm) & 0xff);
-
- bsum = a + b + c;
- if (bsum < 0) bsum = -bsum;
- a = a - c - d;
- if (a < 0) a = -a;
- if (bsum > a) bsum = a;
- bsum /= 3;
-
- pixels[row2] = (alpha << 24) | (rsum << 16) | (gsum << 8) | bsum;
-
- v = (((int)(rsum)*11 + ((int)(gsum) << 4) + (int)(bsum)*5) >> 5);
-
- if (maxv < v)
- maxv = v;
- }
-
- }
-
- for (int y = 1; y < rows_ - 1; y++)
- {
- for (int x = 1; x < columns_ - 1; x++)
- {
- pixel = pixels[y][x];
- alpha = (pixel >> 24) & 0xff;
- red = (((pixel >> 16) & 0xff) * 255) / maxv;
- green = (((pixel >> 8) & 0xff) * 255) / maxv;
- blue = ((pixel & 0xff) * 255) / maxv;
-
- if (red < 0) red = 0;
- if (green < 0) green = 0;
- if (blue < 0) blue = 0 ;
-
- if (red > 255) red = 255;
- if (green > 255) green = 255;
- if (blue > 255) blue = 255;
-
- pixels[y*x] = (alpha << 24) | (red << 16) | (green << 8) | blue;
- }
-
- consumer.setPixels(0, y, columns_, 1, defaultRGB_, pixels[y], 0, columns_);
- }
-
- consumer.imageComplete(status);
- }
- */
-}
diff --git a/java/ImageProcessing/filters/EmbossFilter.java b/java/ImageProcessing/filters/EmbossFilter.java
deleted file mode 100644
index e6d5833ee39..00000000000
--- a/java/ImageProcessing/filters/EmbossFilter.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class EmbossFilter extends SpatialFilter
-{
-
- public EmbossFilter()
- {
- }
-
- public String info ()
- {
- return "Embosses an image.";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Emboss: Image Error: " + status);
- return;
- }
-
- System.out.println("Beginning to emboss an image.");
- System.gc();
-
- int[] pixels = new int[columns_*rows_];
- int pixel = 0;
- int red, green, blue;
- int row1, row2, row3, ul, um, ml, mr, lm, lr;
- int new_grey = 0, lcv, lcv2;
- int alpha;
-
- profile_timer_.start();
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
- lcv = rows_ -1;
- for (int x = 1, index = 0; x < lcv; x++, index += columns_)
- {
- lcv2 = columns_ - 1;
- for (int y = 1; y < lcv2; y++)
- {
-
- row1 = index + y;
- row2 = row1 + columns_;
- row3 = row2 + columns_;
-
- ul = raster_[row1 - 1];
- um = raster_[row1];
- ml = raster_[row2 - 1];
- mr = raster_[row2 + 1];
- lm = raster_[row3];
- lr = raster_[row3 + 1];
-
- alpha = (raster_[row2] >> 24) & 0xff;
-
- red = ((- (((ul >> 16) & 0xff) << 1) - ((um >> 16) & 0xff) -
- ((ml >> 16) & 0xff) + ((mr >> 16) & 0xff) +
- ((lm >> 16) & 0xff) + (((lr >> 16) & 0xff) << 1)) >> 3) + 128;
-
- green = ((- (((ul >> 8) & 0xff) << 1) - ((um >> 8) & 0xff) -
- ((ml >> 8) & 0xff) + ((mr >> 8) & 0xff) +
- ((lm >> 8) & 0xff) + (((lr >> 8) & 0xff) << 1)) >> 3) + 128;
-
- blue = ((- ((ul & 0xff) << 1) - (um & 0xff) -
- (ml & 0xff) + (mr & 0xff) +
- (lm & 0xff) + ((lr & 0xff) << 1)) >> 3) + 128;
-
- new_grey = (((int)(red)*11 + ((int)(green) << 4) + (int)(blue)*5) >> 5);
-
- pixels[row2] = (alpha << 24) | (new_grey << 16) | (new_grey << 8) | new_grey;
-
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- // System.out.println(timer);
- consumer.imageComplete(status);
- }
-}
diff --git a/java/ImageProcessing/filters/MedFilter.java b/java/ImageProcessing/filters/MedFilter.java
deleted file mode 100644
index def0bd2075a..00000000000
--- a/java/ImageProcessing/filters/MedFilter.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package imaging.filters;
-
-public interface MedFilter
-{
- String info ();
-}
diff --git a/java/ImageProcessing/filters/OilPaintFilter.java b/java/ImageProcessing/filters/OilPaintFilter.java
deleted file mode 100644
index 68bcf79e5c2..00000000000
--- a/java/ImageProcessing/filters/OilPaintFilter.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class OilPaintFilter extends SpatialFilter
-{
- private int degree_ = 3;
-
- public OilPaintFilter()
- {
- }
-
- public OilPaintFilter(int degree)
- {
- degree_ = degree;
- }
-
- public String info ()
- {
- return "Converts an image into an oil painting.";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Oil Paint FilterImage Error: " + status);
- return;
- }
-
- System.gc();
-
- int[] pixels = new int[columns_*rows_];
- int[] nnrect = new int[degree_*degree_];
- int offset = degree_/2, cnt = 0, maxcnt = 0, col = 0, tmp;
- int lcv1 = rows_,
- lcv2 = columns_,
- lcv3 = degree_*degree_;
-
- profile_timer_.start();
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
- for (int y = 0, index = 0; y < lcv1; y++)
- {
- for (int x = 0; x < lcv2; x++, index++)
- {
- cnt = 0;
- for (int i = y - offset; i < y + offset; i++)
- {
- tmp = i*columns_;
- for (int j = x - offset; j < x + offset; j++, cnt++)
- {
- if (i >= 0 && i < lcv1 && j >= 0 && j < lcv2)
- nnrect[cnt] = raster_[tmp + j];
- else
- nnrect[cnt] = -1;
- }
- }
-
- maxcnt = 0;
- col = 0;
- cnt = 0;
- for (int i = 0; i < lcv3; i++)
- {
- if (nnrect[i] != -1)
- {
- cnt = 1;
-
- for (int j = i+1; j < lcv3; j++)
- {
- if (nnrect[i] == nnrect[j])
- cnt++;
- }
-
- if (cnt > maxcnt)
- {
- col = nnrect[i];
- maxcnt = cnt;
- }
- }
- }
-
- pixels[index] = col;
- }
- }
- }
-
- System.err.println("Oil Paint should be finished.");
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- consumer.imageComplete(status);
- }
-}
diff --git a/java/ImageProcessing/filters/PixelizeFilter.java b/java/ImageProcessing/filters/PixelizeFilter.java
deleted file mode 100644
index cdfe768789a..00000000000
--- a/java/ImageProcessing/filters/PixelizeFilter.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class PixelizeFilter extends SpatialFilter
-{
- private int pwidth_ = 4;
- private int pheight_ = 4;
-
- public PixelizeFilter()
- {
- }
-
- public PixelizeFilter(int pwidth, int pheight)
- {
- pwidth_ = pwidth;
- pheight_ = pheight;
- }
-
- public String info ()
- {
- return "Pixelizes the image.";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Pixelize Image Error: " + status);
- return;
- }
-
- System.gc();
-
- int pixel;
- int nsum, asum, rsum, gsum, bsum, nwide, nhigh, stx, sty, x, y;
- int x_offset, y_offset, x_extent, y_extent, lcv, lcv2, lcv3, index;
- int[] results = new int[rows_*columns_];
-
- profile_timer_.start();
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
- lcv3 = pwidth_*pheight_;
- nwide = (columns_ + pwidth_ - 1) / pwidth_;
- nhigh = (rows_ + pheight_ - 1) / pheight_;
-
- stx = -(nwide*pwidth_ - columns_)/2;
- sty = -(nhigh*pheight_ - rows_)/2;
-
- y = sty;
- for (int i = 0; i < nhigh; i++, y += pheight_)
- {
- x = stx;
- for (int j = 0; j < nwide; j++, x += pwidth_)
- {
- nsum = asum = rsum = bsum = gsum = 0;
-
- lcv = y + pheight_;
- lcv2 = x + pwidth_;
- for (int y1 = y; y1 < lcv; y1++)
- {
- index = y1*columns_;
- for (int x1 = x; x1 < lcv2; x1++)
- {
- if (x1 >= 0 && y1 >= 0 && x1 < columns_ && y1 < rows_)
- {
- nsum++;
- pixel = raster_[index + x1];
-
- asum += (pixel >> 24) & 0xff;
- rsum += (pixel >> 16) & 0xff;
- gsum += (pixel >> 8 ) & 0xff;
- bsum += pixel & 0xff;
- }
- }
- }
-
- if (nsum > 0)
- {
- rsum /= nsum;
- gsum /= nsum;
- bsum /= nsum;
-
- if (asum < 0) asum = 0;
- if (rsum < 0) rsum = 0;
- if (gsum < 0) gsum = 0;
- if (bsum < 0) bsum = 0;
-
- if (asum > 255) asum = 255;
- if (rsum > 255) rsum = 255;
- if (gsum > 255) gsum = 255;
- if (bsum > 255) bsum = 255;
-
- }
-
- for (int y1 = y; y1< lcv; y1++)
- {
- index = y1*columns_;
- for (int x1 = x; x1 < lcv2; x1++)
- {
- if (x1 >= 0 && y1 >= 0 && x1 < columns_ && y1 < rows_)
- results[index + x1]
- = (asum << 24) | (rsum << 16) | (gsum << 8) | bsum;
- }
- }
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, results, 0, columns_);
- consumer.imageComplete(status);
- }
-}
diff --git a/java/ImageProcessing/filters/RandomizeFilter.java b/java/ImageProcessing/filters/RandomizeFilter.java
deleted file mode 100644
index 438f79e01c0..00000000000
--- a/java/ImageProcessing/filters/RandomizeFilter.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-import java.util.Random;
-
-public class RandomizeFilter extends RGBImageFilter implements MedFilter
-{
- private static Random rand = new Random(System.currentTimeMillis());
-
- public RandomizeFilter ()
- {
- canFilterIndexColorModel = true;
- }
-
- public String info ()
- {
- return "Randomizes an image.";
- }
-
- public int filterRGB(int x, int y, int rgb)
- {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
-
- int alpha = cm.getAlpha(rgb);
- int red = rand.nextInt() % 255;
- int green = rand.nextInt() % 255;
- int blue = rand.nextInt() % 255;
-
- alpha = alpha << 24;
- red = red << 16;
- green = green << 8;
-
- return alpha | red | green | blue;
- }
-}
diff --git a/java/ImageProcessing/filters/RotateFilter.java b/java/ImageProcessing/filters/RotateFilter.java
deleted file mode 100644
index 39551017a4b..00000000000
--- a/java/ImageProcessing/filters/RotateFilter.java
+++ /dev/null
@@ -1,358 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class RotateFilter extends SpatialFilter
-{
- private double angle_;
- private int rotx_, roty_;
- private int rotheight_, rotwidth_;
-
- public RotateFilter ()
- {
- this.angle_ = 90.0;
- }
-
- public RotateFilter(double angle)
- {
- this.angle_ = angle;
- }
-
- public String info ()
- {
- return "Rotates an image";
- }
-
- public void setDimensions(int width, int height)
- {
- DoublePoint temp;
-
- rows_ = height;
- columns_ = width;
-
- // Convert the angle into radians
- double rotrad = angle_ * Math.PI / (double)180.0;
-
- // Compute the corner points after rotation
- double center_x = (double)(columns_ - 1) / (double)2.0;
- double center_y = (double)(rows_ - 1) / (double)2.0;
-
- // The new top left corner
- temp = rotatePoint(0, 0, center_x, center_y, rotrad);
- int rtl_x = (int)(temp.x_ + ((temp.x_ < 0) ? -0.5 : 0.5));
- int rtl_y = (int)(temp.y_ + ((temp.y_ < 0) ? -0.5 : 0.5));
-
- // the new top right corner
- temp = rotatePoint(0, rows_, center_x, center_y, rotrad);
- int rtr_x = (int)(temp.x_ + ((temp.x_ < 0) ? -0.5 : 0.5));
- int rtr_y = (int)(temp.y_ + ((temp.y_ < 0) ? -0.5 : 0.5));
-
- // the new bottom left corner
- temp = rotatePoint(columns_, 0, center_x, center_y, rotrad);
- int rbl_x = (int)(temp.x_ + ((temp.x_ < 0) ? -0.5 : 0.5));
- int rbl_y = (int)(temp.y_ + ((temp.y_ < 0) ? -0.5 : 0.5));
-
- // the new bottom right corner
- temp = rotatePoint(columns_, rows_, center_x, center_y, rotrad);
- int rbr_x = (int)(temp.x_ + ((temp.x_ < 0) ? -0.5 : 0.5));
- int rbr_y = (int)(temp.y_ + ((temp.y_ < 0) ? -0.5 : 0.5));
-
- //System.out.println(" ( " + center_x + "," + center_y + " ) ");
- //System.out.println(" ( " + rtl_x + "," + rtl_y + " ) ");
- //System.out.println(" ( " + rtr_x + "," + rtr_y + " ) ");
- //System.out.println(" ( " + rbr_x + "," + rbr_y + " ) ");
- //System.out.println(" ( " + rbl_x + "," + rbl_y + " ) ");
-
- // rotated bounding box
- int rbbx1, rbby1;
- int rbbx = rbbx1 = rtl_x;
- int rbby = rbby1 = rtl_y;
-
- if (rtr_x < rbbx) rbbx = rtr_x;
- if (rtr_x > rbbx1) rbbx1 = rtr_x;
- if (rtr_y < rbby) rbby = rtr_y;
- if (rtr_y > rbby1) rbby1 = rtr_y;
-
- if (rbl_x < rbbx) rbbx = rbl_x;
- if (rbl_x > rbbx1) rbbx1 = rbl_x;
- if (rbl_y < rbby) rbby = rbl_y;
- if (rbl_y > rbby1) rbby1 = rbl_y;
-
- if (rbr_x < rbbx) rbbx = rbr_x;
- if (rbr_x > rbbx1) rbbx1 = rbr_x;
- if (rbr_y < rbby) rbby = rbr_y;
- if (rbr_y > rbby1) rbby1 = rbr_y;
-
- int rbbw = rbbx1 - rbbx;
- int rbbh = rbby1 - rbby;
-
- //System.out.println("(rbbx, rbby): " + rbbx + " " + rbby);
- //System.out.println("(rbbx1, rbby1): " + rbbx1 + " " + rbby1);
- //System.out.println("(rbbw, rbbh): " + rbbw + " " + rbbh);
-
-
- //rbbx--; rbby--; rbbw+=2; rbbh+=2;
-
-
- // Ensure we haven't increased the size of the image
-
- /*
- int x = rbbx + rbbw - 1, y = rbby + rbbh - 1;
- if (rbbx < 0) rbbx = 0;
- if (rbbx > columns_ - 1 ) rbbx = columns_ - 1;
- if (rbby < 0) rbby = 0;
- if (rbby > rows_ - 1) rbby = rows_ - 1;
- */
-
- /*
-
- if (x < 0) x = 0;
- if (x > columns_ - 1) x = columns_ - 1;
- if (y < 0) y = 0;
- if (y > rows_ - 1) y = rows_ - 1;
-
- if (x < rbbx) x = rbbx;
- if (y < rbby) y = rbby;
- rbbw = (x - rbbx) + 1;
- rbbh = (y - rbby) + 1;
-
- */
-
- rotx_ = rbbx;
- roty_ = rbby;
- rotheight_ = rbbh;
- rotwidth_ = rbbw;
-
- //System.out.println("(rotx,roty): " + rotx_ + " " +
- // roty_);
- //System.out.println("(rotwidth,rotheight): " + rotwidth_ + " " +
- // rotheight_);
- //System.out.println("(columns,rows): " + columns_ +
- // " " + rows_);
-
-
- raster_ = new int[columns_*rows_];
- consumer.setDimensions(rotwidth_, rotheight_);
- }
-
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error: " + status);
- return;
- }
-
- // For each pixel in the dimensions of the rotated image, if the
- // inverse rotation falls in the bounds of the original image. If
- // it does, compute and store an appropriate color, otherwise skip
- // it.
-
- System.gc();
-
- double xf, yf, px, py, apx, apy;
- int[] pixels = new int[rotwidth_*rotheight_];
- int ox, oy, ox1, oy1, index, pixel;
- double cx = (columns_ - 1) / 2;
- double cy = (rows_ - 1) / 2;
- double rotrad = angle_ * Math.PI / 180.0, ang, d;
- int p0r = 0, p0g = 0, p0b = 0,
- p1r = 0, p1g = 0,p1b = 0,
- p2r = 0, p2g = 0, p2b = 0,
- p3r = 0, p3g = 0, p3b = 0, lcv, lcv2;
- int rv,gv,bv, alpha;
- double rd,gd,bd, p0wgt = 0,
- p1wgt = 0, p2wgt = 0, p3wgt = 0, xfrac, yfrac;
-
- profile_timer_.start();
-
- lcv = roty_ + rotheight_;
- lcv2 = rotx_ + rotwidth_;
- for (int y = roty_, i = 0; y < lcv; y++)
- {
- for (int x = rotx_; x < lcv2; x++, i++)
- {
- // Inverse rotate the point (x,y)
- // Inlining the call to rotatePoint
- xf = (double)x;
- yf = (double)y;
- d = Math.sqrt((xf - cx) * (xf - cx) + (yf - cy) * (yf - cy));
-
- if ((xf - cx) != 0.0)
- {
- ang = Math.atan((cy-yf)/(xf-cx));
- if ((xf - cx) < 0)
- ang += Math.PI;
- }
- else
- {
- if ((yf - cy) > 0.0)
- ang = (Math.PI * 3.0) / 2;
- else
- ang = Math.PI / 2;
- }
-
- xf = cx + (d * Math.cos(ang - rotrad));
- yf = cy - (d * Math.sin(ang - rotrad));
- // end inline
-
- // Cheat a little
- if (xf < 0.0 && xf > -0.5) xf = 0.0;
- if (yf < 0.0 && yf > -0.5) yf = 0.0;
-
- ox = (int)Math.floor(xf);
- oy = (int)Math.floor(yf);
-
- if ((ox >= 0) && (oy >= 0) &&
- (ox < columns_) && (oy < rows_) )
- {
- // The color will be a linear combination of the colors of
- // the center pixel, its left or right neighbor, its top
- // or bottom neighbor, and its corner neighbor. Which
- // neighbors are used is determined by the position of
- // the fractional part of xf, xy within the 1-unit square
- // of the pixel.
-
- /* compute px,py: fractional offset from center of pixel (x.5,y.5) */
- xfrac = xf - ox; /* 0 - .9999 */
- yfrac = yf - oy;
- px = ((xfrac >= .5) ? (xfrac - .5) : (-.5 + xfrac));
- py = ((yfrac >= .5) ? (yfrac - .5) : (-.5 + yfrac));
- apx = ((px < 0) ? -px : px);
- apy = ((py < 0) ? -py : py);
-
- /* get neighbor colors: p0col, p1col, p2col, p3col */
- ox1 = ox + ((px < 0.0) ? -1 : 1);
- oy1 = oy + ((py < 0.0) ? -1 : 1);
-
- index = oy * columns_ + ox;
- pixel = raster_[index];
- alpha = (pixel >> 24) & 0xff;
- p0r = (pixel >> 16) & 0xff;
- p0g = (pixel >> 8) & 0xff;
- p0b = pixel & 0xff;
-
- if (ox1 >= 0 && ox1 < columns_)
- {
- index = oy*columns_ + ox1;
- pixel = raster_[index];
- p1r = (pixel >> 16) & 0xff;
- p1g = (pixel >> 8) & 0xff;
- p1b = pixel & 0xff;
- p1wgt = apx * (1.0 - apy);
- }
- else { p1r=p1g=p1b=0; p1wgt = 0.0; }
-
- if (oy1 >= 0 && oy1 < rows_)
- {
- index = oy1*columns_ + ox;
- pixel = raster_[index];
- p2r = (pixel >> 16) & 0xff;
- p2g = (pixel >> 8) & 0xff;
- p2b = pixel & 0xff;
- p2wgt = apx * (1.0 - apy);
- }
- else { p2r=p2g=p2b=0; p2wgt = 0.0; }
-
- if (ox1 >= 0 && ox1 < columns_ &&
- oy1 >= 0 && oy1 < rows_)
- {
- index = oy1 * columns_ + ox1;
- pixel = raster_[index];
- p3r = (pixel >> 16) & 0xff;
- p3g = (pixel >> 8) & 0xff;
- p3b = pixel & 0xff;
- p3wgt = apx * (1.0 - apy);
- }
- else { p3r=p3g=p3b=0; p3wgt = 0.0; }
-
- p1wgt = p1wgt * .7; /* black art */
- p2wgt = p2wgt * .7;
- p3wgt = p3wgt * .7;
-
- p0wgt = 1.0 - (p1wgt + p2wgt + p3wgt);
-
- /* okay, compute and store resulting color */
- rd = p0r * p0wgt + p1r * p1wgt + p2r * p2wgt + p3r * p3wgt;
- gd = p0g * p0wgt + p1g * p1wgt + p2g * p2wgt + p3g * p3wgt;
- bd = p0b * p0wgt + p1b * p1wgt + p2b * p2wgt + p3b * p3wgt;
-
- rv = (int) (rd + 0.5);
- gv = (int) (gd + 0.5);
- bv = (int) (bd + 0.5);
-
- if (rv < 0) rv = 0;
- if (gv < 0) gv = 0;
- if (bv < 0) bv = 0 ;
-
- if (rv > 255) rv = 255;
- if (gv > 255) gv = 255;
- if (bv > 255) bv = 255;
-
- pixels[i] = (alpha << 24) | (rv << 16) | (gv << 8) | bv;
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, rotwidth_, rotheight_, defaultRGB_,
- pixels, 0, rotwidth_);
-
- consumer.imageComplete(status);
- }
-
- private final static DoublePoint rotatePoint(int x, int y,
- double cx, double cy, double rad)
- {
- /* rotate point x, y 'rad' radians around cx, cy, return rx, ry */
- double d, xf, yf, ang, rx, ry;
-
- xf = (double)x;
- yf = (double)y;
-
- // d = distance from the point to the center
- d = Math.sqrt((xf - cx) * (xf - cx) + (yf - cy) * (yf - cy));
-
- if ((xf - cx) != 0.0)
- {
- // Compute the angle between the axis and the point in radians
- // using the inverse tangent function.
- ang = Math.atan((cy-yf)/(xf-cx));
-
- // If the x value falls below the axis the angle is between
- // PI and 2*PI.
- if ((xf - cx) < 0)
- ang += Math.PI;
- }
- else
- {
- // The point is on the positive y-axis so its angle is 3/2*PI
- // I'm guessing this the cooridnate system is flipped in
- // screen graphics.
- if ((yf - cy) > 0.0)
- ang = (Math.PI * 3.0) / 2;
- else
- ang = Math.PI / 2;
- }
-
- rx = cx + (d * Math.cos(ang + rad));
- ry = cy - (d * Math.sin(ang + rad));
-
- return new DoublePoint(rx, ry);
- }
-}
-
-class DoublePoint
-{
- public double x_;
- public double y_;
-
- DoublePoint(double x, double y)
- {
- x_ = x;
- y_ = y;
- }
-}
diff --git a/java/ImageProcessing/filters/SharpenFilter.java b/java/ImageProcessing/filters/SharpenFilter.java
deleted file mode 100644
index fcb6f03c7ac..00000000000
--- a/java/ImageProcessing/filters/SharpenFilter.java
+++ /dev/null
@@ -1,272 +0,0 @@
-package imaging.filters;
-
-import java.awt.Color;
-import java.awt.image.*;
-import java.util.*;
-
-public class SharpenFilter extends SpatialFilter
-{
- float percentage_ = (float)75.0;
-
- public SharpenFilter()
- {
- }
-
- public SharpenFilter(float percentage)
- {
- percentage_ = percentage;
- }
-
- public String info ()
- {
- return "Sharpens an image.";
- }
-
-
- public void imageComplete(int status)
- {
- System.out.println("Image Complete called");
-
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error");
- return;
- }
-
- System.gc();
-
- float[] hsv = new float[3];
- int rgb, red, green, blue;
- int pixel, alpha, lcv, lcv2, lcv3;
- int[] pixels = new int[columns_*rows_];
- float fact, ifact, hue, sat, val, vsum;
- float[] line0 = new float[columns_],
- linep1 = new float[columns_],
- linem1 = new float[columns_],
- tmpptr;
-
- profile_timer_.start();
-
- for (int z = 0; z < SpatialFilter.iterations_; z++)
- {
- fact = percentage_/(float)100.0;
- ifact = (float)1.0 - fact;
-
- for (int x = 0; x < columns_; x++)
- {
- pixel = raster_[x];
- hsv = getHSV(((pixel >> 16) & 0xff), ((pixel >> 8) & 0xff), (pixel & 0xff),hsv);
- line0[x] = hsv[2];
- }
-
- lcv = columns_ << 1;
- for (int x = columns_, index = 0; x < lcv; x++, index++)
- {
- pixel = raster_[x];
- hsv = getHSV(((pixel >> 16) & 0xff), ((pixel >> 8) & 0xff), (pixel & 0xff),hsv);
- linep1[index] = hsv[2];
- }
-
- lcv = columns_ - 1;
- lcv2 = rows_ - 1;
- for (int y = 1, i = columns_; y < lcv2; y++)
- {
- tmpptr = linem1;
- linem1 = line0;
- line0 = linep1;
- linep1 = tmpptr;
-
- lcv3 = columns_*(y+2);
- for (int x = columns_*(y+1), index= 0; x < lcv; x++, index++)
- {
- pixel = raster_[x];
- // Note hsv is only instantiated once
- hsv = getHSV(((pixel >> 16) & 0xff), ((pixel >> 8) & 0xff), (pixel & 0xff), hsv);
- linep1[index] = hsv[2];
- }
-
- i++;
- for (int x = 1; x < lcv; x++, i++)
- {
- vsum = (float)0.0;
- vsum = linem1[x-1] + linem1[x] + linem1[x+1] +
- line0[x-1] + line0[x] + line0[x + 1] +
- linep1[x-1] + linep1[x] + linep1[x + 1];
-
- pixel = raster_[i];
- alpha = (pixel >> 24) & 0xff;
- hsv = getHSV(((pixel >> 16) & 0xff), ((pixel >> 8) & 0xff), (pixel & 0xff), hsv);
-
- val = ((hsv[2] - (fact * vsum) / 9) / ifact);
- if (val < 1.0)
- {
- if (val < 0.0)
- val = (float)0.0;
- }
- else
- val = (float)1.0;
-
- hsv[2] = val;
- rgb = getRGB(hsv[0], hsv[1], hsv[2]);
-
- red = (rgb >> 16) & 0xff;
- green = (rgb >> 8) & 0xff;
- blue = rgb & 0xff;
-
- if (red < 0) red = 0;
- if (green < 0) green = 0;
- if (blue < 0) blue = 0 ;
-
- if (red > 255) red = 255;
- if (green > 255) green = 255;
- if (blue > 255) blue = 255;
-
- pixels[i] =
- (alpha << 24) | (red << 16) | (green << 8) | blue;
- }
- i++;
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
-
- System.out.println("Finished altering image");
- consumer.imageComplete(status);
- }
-
-
- static private float[] getHSV(int red, int green, int blue, float[] hsv)
- {
- float rd, gd, bd, max, min, del, rc, gc, bc, hue, sat;
- if (hsv == null)
- hsv = new float[3];
-
- /* convert RGB to HSV */
- rd = red / (float)255.0; /* rd,gd,bd range 0-1 instead of 0-255 */
- gd = green / (float)255.0;
- bd = blue / (float)255.0;
-
- /* compute maximum of rd,gd,bd */
- if (rd >= gd)
- {
- if (rd >= bd)
- max = rd;
- else
- max = bd;
- }
- else
- {
- if (gd >= bd)
- max = gd;
- else
- max = bd;
- }
-
- /* compute minimum of rd,gd,bd */
- if (rd<=gd)
- {
- if (rd<=bd)
- min = rd;
- else
- min = bd;
- }
- else
- {
- if (gd<=bd)
- min = gd;
- else
- min = bd;
- }
-
- del = max - min;
- hsv[2] = max;
-
- if (max != 0.0)
- sat = (del) / max;
- else
- sat = (float)0.0;
-
- hue = -1;
-
- if (sat != 0.0)
- {
- rc = (max - rd) / del;
- gc = (max - gd) / del;
- bc = (max - bd) / del;
-
- if (rd == max)
- hue = bc - gc;
- else
- if (gd == max)
- hue = 2 + rc - bc;
- else
- if (bd == max)
- hue = 4 + gc - rc;
-
- hue *= 60;
- if (hue<0)
- hue += 360;
- }
-
- hsv[0] = hue;
- hsv[1] = sat;
- return hsv;
- }
-
- static private int getRGB(float hue, float sat, float val)
- {
- int j, r, g, b;
- float rd, gd, bd;
- float f, p, q, t;
-
- /* convert HSV back to RGB */
- if (hue == -1 || sat == 0.0)
- {
- rd = val; gd = val; bd = val;
- }
- else
- {
- if (hue==(float)360.0) hue = (float)0.0;
- hue = hue / (float)60.0;
- j = (int) hue;
- if (j<0) j=0; /* either hue or floor seem to go neg on some sys */
- f = hue - j;
- p = val * (1-sat); // val - sat* val
- q = val * (1 - (sat*f)); // val - val*sat*f
- t = val * (1 - (sat*(1 - f)));
-
- switch (j) {
- case 0: rd = val; gd = t; bd = p; break;
- case 1: rd = q; gd = val; bd = p; break;
- case 2: rd = p; gd = val; bd = t; break;
- case 3: rd = p; gd = q; bd = val; break;
- case 4: rd = t; gd = p; bd = val; break;
- case 5: rd = val; gd = p; bd = q; break;
- default: rd = val; gd = t; bd = p; break; /* never happen */
- }
- }
- r = (int)(rd * 255.0 + 0.5);
- g = (int)(gd * 255.0 + 0.5);
- b = (int)(bd * 255.0 + 0.5);
-
- return 0xff000000 | (r << 16) | (g << 8) | b;
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java/ImageProcessing/filters/SpatialFilter.java b/java/ImageProcessing/filters/SpatialFilter.java
deleted file mode 100644
index ad56164819e..00000000000
--- a/java/ImageProcessing/filters/SpatialFilter.java
+++ /dev/null
@@ -1,213 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-import JACE.Timers.ProfileTimer;
-
-public class SpatialFilter extends ImageFilter implements MedFilter
-{
- public SpatialFilter()
- {
- }
-
- public SpatialFilter(int[][] matrix, int degree)
- {
- this(matrix, degree, 1, 0);
- }
-
- public SpatialFilter(int[][] matrix, int degree, int div_factor, int offset)
- {
- matrix_ = matrix;
- div_factor_ = div_factor;
- offset_ = offset;
- degree_ = degree;
- }
-
- public void setFilter(int[][] matrix, int degree, int div_factor)
- {
- matrix_ = matrix;
- degree_ = degree;
- div_factor_ = div_factor;
- }
-
- public String info ()
- {
- return "Base Filter class. Doesn't do much";
- }
-
- public long filterTime()
- {
- return profile_timer_.elapsedTime();
- }
-
- public static void setTimer(int internal_iterations)
- {
- iterations_ = internal_iterations;
- }
-
- public void setDimensions(int width, int height)
- {
- rows_ = height;
- columns_ = width;
- raster_ = new int[width * height];
- consumer.setDimensions(width, height);
- }
-
- public void setPixels(int x, int y, int w, int h, ColorModel model,
- byte pixels[], int off, int scansize)
- {
- int source_offset = off;
- int dest_offset = y * columns_ + x;
-
- for (int y_ind = 0; y_ind < h; y_ind++)
- {
- for (int x_ind = 0; x_ind < w; x_ind++)
- {
- raster_[dest_offset] = model.getRGB(pixels[source_offset] & 0xff);
- dest_offset++;
- source_offset++;
- }
-
- source_offset += (scansize - w);
- dest_offset += (columns_ - w);
- }
- }
-
- public void setPixels(int x, int y, int w, int h, ColorModel model,
- int pixels[], int off, int scansize)
- {
- int source_offset = off;
- int dest_offset = y * columns_ + x;
-
- if (model == defaultRGB_)
- {
- for (int yc = 0; yc < h; yc++)
- {
- System.arraycopy(pixels, source_offset, raster_, dest_offset, w);
- source_offset += scansize;
- dest_offset += columns_;
- }
- }
- else
- {
-
- for (int yc = 0; yc < h; yc++)
- {
- for (int xc = 0; xc < w; xc++)
- {
- raster_[dest_offset] = model.getRGB(pixels[source_offset]);
- dest_offset++;
- source_offset++;
- }
- source_offset += (scansize - w);
- dest_offset += (columns_ - w);
- }
- }
- }
-
- public void setColorModel(ColorModel model)
- {
- consumer.setColorModel(defaultRGB_);
- }
-
- public void setHints(int hintflags)
- {
- consumer.setHints(TOPDOWNLEFTRIGHT
- | COMPLETESCANLINES
- | SINGLEPASS
- | (hintflags & SINGLEFRAME));
- }
-
-
- public void imageComplete(int status)
- {
- System.out.println("Image Complete called");
-
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error");
- return;
- }
-
- int[] pixels = new int[columns_];
- int[][] new_raster= expandRaster();
- int pixel = 0;
- int red, green, blue;
- int new_red = 0, new_green = 0, new_blue = 0;
- int alpha;
-
- for (int x = raster_offset_; x < rows_; x++)
- {
- for (int y = raster_offset_; y < columns_; y++)
- {
- new_red = 0; new_green = 0; new_blue = 0;
- alpha = defaultRGB_.getAlpha(new_raster[x][y]);
- for (int i = 0; i < degree_; i++)
- {
- for (int j = 0; j < degree_; j++)
- {
- pixel = new_raster[x + (i - raster_offset_)][y + (j - raster_offset_)];
-
- red = defaultRGB_.getRed(pixel) * matrix_[i][j];
- blue = defaultRGB_.getBlue(pixel) * matrix_[i][j];
- green = defaultRGB_.getGreen(pixel) * matrix_[i][j];
-
- new_red += red;
- new_green += green;
- new_blue += blue;
- }
- }
-
- new_red /= div_factor_;
- new_green /= div_factor_;
- new_blue /= div_factor_;
-
- new_red = Math.min(Math.abs(new_red), 255);
- new_green = Math.min(Math.abs(new_green), 255);
- new_blue = Math.min(Math.abs(new_blue), 255);
-
- pixels[y - raster_offset_] =
- (alpha << 24) | (new_red << 16) | (new_green << 8) | new_blue;
- }
-
- consumer.setPixels(0, x - raster_offset_, columns_, 1, defaultRGB_, pixels, 0, columns_);
- }
-
- System.out.println("Finished altering image");
- consumer.imageComplete(status);
- }
-
- protected int[][] expandRaster()
- {
- int[][] new_raster;
- int index = 0;
-
- raster_offset_ = degree_ / 2;
- new_raster = new int[rows_ + raster_offset_*2][columns_ + raster_offset_*2];
-
- for (int x = 0; x < rows_; x++)
- {
- for (int y = 0; y < columns_; y++)
- {
- new_raster[x + raster_offset_][y + raster_offset_] = raster_[index];
- index++;
- }
- }
-
- return new_raster;
- }
-
- protected static final int intensity(int rd, int gn, int bl)
- {
- return (((int)(rd)*11 + (int)(gn)*16 + (int)(bl)*5) >> 5);
- }
-
- protected static int iterations_ = 1;
- protected static final ColorModel defaultRGB_ = ColorModel.getRGBdefault();
- protected int[][] matrix_;
- protected int[] raster_;
- protected int rows_ = 0, columns_ = 0;
- protected int div_factor_ = 1, offset_, degree_;
- protected int raster_offset_ = 0;
- protected final ProfileTimer profile_timer_ = new ProfileTimer();
-}
diff --git a/java/ImageProcessing/filters/SpreadFilter.java b/java/ImageProcessing/filters/SpreadFilter.java
deleted file mode 100644
index c78790c9235..00000000000
--- a/java/ImageProcessing/filters/SpreadFilter.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-import java.util.Random;
-
-public class SpreadFilter extends SpatialFilter
-{
- private int pwidth_ = 5;
- private int pheight_ = 5;
-
- public SpreadFilter()
- {
- }
-
- public SpreadFilter(int pwidth, int pheight)
- {
- pwidth_ = pwidth;
- pheight_ = pheight;
- }
-
- public String info ()
- {
- return "Spreads an image (an effect of being under water).";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Spread Image Error: " + status);
- return;
- }
-
- System.gc();
-
- Random rand = new Random();
- int[] pixels = new int[columns_*rows_];
- int d, dx, dy, x1, y1, xrng, xoff, yrng, yoff;
- int minx, maxx, miny, maxy, rdist, tmp;
-
- profile_timer_.start();
-
- for (int z = 0; z < SpatialFilter.iterations_; z++)
- {
- for (int y = 0, i=0; y < rows_; y++)
- {
- for (int x = 0; x < columns_; x++, i++)
- {
- if (pwidth_ < 0)
- {
- d = (pwidth_ < 0 ? -pwidth_ : pwidth_);
-
- minx = x - d;
- if (minx < 0)
- minx = 0;
-
- maxx = x + d;
- if (maxx >= columns_)
- maxx = columns_ - 1;
-
- tmp = rand.nextInt();
- tmp = (tmp < 0 ? -tmp : tmp);
- x1 = minx + tmp % ((maxx - minx) + 1);
-
- miny = y - d;
- if (miny < 0)
- miny = 0;
-
- maxy = y + d;
- if (maxy >= rows_)
- maxy = rows_ - 1;
-
- rdist = d - (x1 < x ? -(x1 - x) : x1 - x);
- if (y - miny > rdist)
- miny = (y - rdist);
- if (maxy - y > rdist)
- maxy = (y + rdist);
-
- tmp = rand.nextInt();
- tmp = (tmp < 0 ? -tmp : tmp);
- y1 = miny + tmp % ((maxy - miny) + 1);
- }
- else
- {
- minx = x - pwidth_;
- if (minx < 0)
- minx = 0;
-
- maxx = x + pwidth_;
- if (maxx >= columns_)
- maxx = columns_ - 1;
-
- tmp = rand.nextInt();
- tmp = (tmp < 0 ? -tmp : tmp);
- x1 = minx + tmp % ((maxx - minx) + 1);
-
- miny = y - pheight_;
- if (miny < 0)
- miny = 0;
-
- maxy = y + pheight_;
- if (maxx >= columns_)
- maxx = columns_ - 1;
-
- tmp = rand.nextInt();
- tmp = (tmp < 0 ? -tmp : tmp);
- y1 = miny + tmp % ((maxy - miny) + 1);
- }
-
- if (x1 >= 0 && y1 >= 0 && x1 < columns_ && y1 < rows_)
- {
- int pixel = raster_[i];
- int alpha = (pixel >> 24) & 0xff;
- int red = (pixel >> 16) & 0xff;
- int green = (pixel >> 8) & 0xff;
- int blue = pixel & 0xff;
-
- pixels[i] = (alpha << 24) | (red << 16) | (green << 8) | blue;
- }
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- consumer.imageComplete(status);
- }
-}
diff --git a/java/ImageProcessing/filters/Timer.java b/java/ImageProcessing/filters/Timer.java
deleted file mode 100644
index 609ec8aa366..00000000000
--- a/java/ImageProcessing/filters/Timer.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package imaging.filters;
-
-public class Timer
-{
- long start_time_;
- long stop_time_;
-
- public void start()
- {
- start_time_ = System.currentTimeMillis();
- }
-
- public void stop()
- {
- stop_time_ = System.currentTimeMillis();
- }
-
- public String toString()
- {
- long total = stop_time_ - start_time_;
- return "Total Time:" + total + " ms";
- }
-}
diff --git a/java/ImageProcessing/framework/BaseButton.java b/java/ImageProcessing/framework/BaseButton.java
deleted file mode 100644
index 794670b2f3f..00000000000
--- a/java/ImageProcessing/framework/BaseButton.java
+++ /dev/null
@@ -1,234 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import imaging.filters.*;
-
-public class BaseButton extends Panel
-{
- public BaseButton (String title, String description, ImageApp parent)
- {
- this.setLayout (new BorderLayout ());
- this.button_ = new Button (title);
- this.add ("Center", this.button_);
- this.resize (100, 100);
- this.description_ = description;
- this.parent_ = parent;
- }
-
- public boolean mouseEnter(Event evt, int x, int y)
- {
- this.parent_.displayStatus (this.description_);
- return true;
- }
-
- public boolean mouseExit(Event evt, int x, int y)
- {
- this.parent_.displayStatus ("");
- return true;
- }
-
- protected ImageApp parent_;
- private String description_;
- private Button button_;
-}
-
-class URLDialogButton extends BaseButton
-{
- public URLDialogButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- this.openURLFrame_ = new LoadURLFrame ("Open URL <2>", this.parent_);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.openURLFrame_.show ();
- return true;
- }
- private LoadURLFrame openURLFrame_;
-}
-
-// ******************
-// Should continue to remember the password
-// ******************
-class SaveButton extends BaseButton
-{
- public SaveButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- this.openURLFrame_ = new SaveURLFrame ("Save Image <2>", this.parent_);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.openURLFrame_.show ();
- return true;
- }
- private SaveURLFrame openURLFrame_;
-}
-
-class ReloadButton extends BaseButton
-{
- public ReloadButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.parent_.reloadFilters ();
- return true;
- }
-}
-
-class ApplyButton extends BaseButton
-{
- public ApplyButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.parent_.apply ();
- return true;
- }
-}
-
-class ResetButton extends BaseButton
-{
- public ResetButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.parent_.resetImage ();
- return true;
- }
-}
-
-class ZoomInButton extends BaseButton
-{
- public ZoomInButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.parent_.zoomFactor (1.6);
- return true;
- }
-}
-
-class ZoomOutButton extends BaseButton
-{
- public ZoomOutButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.parent_.zoomFactor (0.625);
- return true;
- }
-}
-
-
-class AboutButton extends BaseButton
-{
- public AboutButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- DialogManager.popDialog (DialogType.ABOUT, null);
- return true;
- }
-}
-
-class HelpButton extends BaseButton
-{
- public HelpButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- DialogManager.popDialog (DialogType.HELP, null);
- return true;
- }
-}
-
-class ChoicePanel extends Panel
-{
- public ChoicePanel (String desc, ImageApp parent)
- {
- this.description_ = desc;
- this.parent_ = parent;
-
- this.loadFilters ();
- // Set the layout of the Choice Panel. Note that the Choice Panel
- // holds the choice button of filters.
- this.setLayout (new FlowLayout ());
- this.resize (150, 100);
- }
-
- public void choice (Choice choice)
- {
- this.choice_ = choice;
- }
-
- public Choice choice ()
- {
- return this.choice_;
- }
-
- public void loadFilters ()
- {
- // First remove all components of the panel including the
- // choices of filters
- this.removeAll ();
-
- // Now create new choices
- this.choice_ = this.parent_.getFilters ();
-
- // Add the choices to our choice panel
- this.add (this.choice_);
- }
-
- public boolean mouseEnter(Event evt, int x, int y)
- {
- MedFilter filter = null;
- String displayString = null;
- String filterName = this.choice_.getSelectedItem ();
-
- if (filterName.compareTo ("Filters:") == 0)
- displayString = "No filter selected";
- else
- {
- filter = (MedFilter) this.parent_.getFilter (filterName);
- displayString = filter.info ();
- }
- this.parent_.displayStatus (displayString);
- // this.parent_.displayStatus (this.description_);
- return true;
- }
-
- public boolean mouseExit(Event evt, int x, int y)
- {
- this.parent_.displayStatus ("");
- return true;
- }
-
- private Choice choice_;
- private ImageApp parent_;
- String description_;
-}
-
diff --git a/java/ImageProcessing/framework/BenchmarkApplet.java b/java/ImageProcessing/framework/BenchmarkApplet.java
deleted file mode 100644
index ac125a1d9de..00000000000
--- a/java/ImageProcessing/framework/BenchmarkApplet.java
+++ /dev/null
@@ -1,622 +0,0 @@
-package imaging.framework;
-
-import JACE.Timers.ProfileTimer;
-import imaging.filters.*;
-import java.awt.*;
-import java.awt.image.*;
-import java.applet.*;
-import java.net.*;
-import java.util.*;
-import java.io.*;
-import gjt.*;
-
-public class BenchmarkApplet extends Applet implements Runnable
-{
- public static final Font GLOBAL_FONT = new Font("Dialog", Font.BOLD, 10);
- private static final String NEW_LINE = System.getProperty("line.separator");
- private static final String WELCOME = "Welcome to MedJava Image Processing Benchmarking Tool";
- private static final String COPYRIGHT = "(c) 1997 Distributed Object Computing Group, Washington Univesity";
- private static final String ABORT = "Image Processing Tests Aborted";
- private static final String STOP = "Stop";
- private static final String START= "Start";
- private static final String CLEAR= "Clear";
- private static final String RANDOM= "Create Random Image";
- private static final int INTERNAL_ITERATIONS = 10;
- private static final int TRIALS = 1;
-
- private List images_, filters_;
- private TextArea console_;
- private TextField new_image_;
- private Button start_button_;
- private Button stop_button_;
- private Button clear_button_;
- private Button random_button_;
- private ButtonPanel button_panel_ = new ButtonPanel();
- private Hashtable filter_table_ = new Hashtable();
- private Hashtable image_table_ = new Hashtable();
- private Thread benchmarker_;
- private long elapsed_time_;
- private SpatialFilter filter_;
- private Object monitor_ = new Object();
-
- public void init()
- {
- Panel control_panel = new Panel();
- Panel sub_panel1 = new Panel();
- Panel filter_panel = new Panel();
- Panel image_panel = new Panel();
- Label image_panel_label = new Label("Images");
- Label filter_panel_label = new Label("Filters");
-
- new_image_ = new TextField();
- console_ = new TextArea();
- images_ = new List();
- filters_ = new List();
-
- console_.setEditable(false);
- images_.setMultipleSelections(true);
- filters_.setMultipleSelections(true);
- console_.setFont(GLOBAL_FONT);
- images_.setFont(GLOBAL_FONT);
- filters_.setFont(GLOBAL_FONT);
- image_panel_label.setFont(GLOBAL_FONT);
- filter_panel_label.setFont(GLOBAL_FONT);
-
- console_.appendText(WELCOME + NEW_LINE);
- console_.appendText(COPYRIGHT + NEW_LINE);
-
- image_panel.setLayout(new BorderLayout());
- image_panel.add("North", image_panel_label);
- image_panel.add("Center", images_);
- image_panel.add("South", new_image_);
-
- filter_panel.setLayout(new BorderLayout());
- filter_panel.add("North", filter_panel_label);
- filter_panel.add("Center", filters_);
-
- sub_panel1.setLayout(new GridLayout(1, 2, 5, 5));
- sub_panel1.add(filter_panel);
- sub_panel1.add(image_panel);
-
- control_panel.setLayout(new GridLayout(2, 1, 5, 5));
- control_panel.add(sub_panel1);
- control_panel.add(console_);
-
- setLayout(new BorderLayout());
-
- stop_button_ = button_panel_.add(STOP);
- start_button_ = button_panel_.add(START);
- clear_button_ = button_panel_.add(CLEAR);
- random_button_ = button_panel_.add(RANDOM);
-
- stop_button_.disable();
- add("Center", control_panel);
- add("South", button_panel_);
-
- getFilters();
- getImages();
- }
-
- synchronized public void run()
- {
- Image image;
- String image_name, filter_name;
- int image_height, image_width;
- String[] image_list = images_.getSelectedItems();
- String[] filter_list = filters_.getSelectedItems();
- ImageProducer image_source;
- FilteredImageSource filtered_image;
- // BenchmarkFrame bframe = BenchmarkFrame.instance();
-
- double cumulative_time;
- double best_time;
-
- SpatialFilter.setTimer(INTERNAL_ITERATIONS);
- console_.appendText(NEW_LINE);
- console_.appendText("Benchmark tests: [mem=" +
- Runtime.getRuntime().freeMemory() +"/" +
- Runtime.getRuntime().totalMemory() +"]"
- + NEW_LINE);
-
- for (int i = 0; i < image_list.length; i++)
- {
-
- image_name = image_list[i];
- image = (Image)image_table_.get(image_name);
-
- image_width = image.getWidth(this);
- image_height = image.getHeight(this);
-
- console_.appendText("Begining tests for image " + image_name);
- console_.appendText(" (size " + image_width + "x" + image_height +
- " = " + image_height*image_width*4 + " bytes )");
- console_.appendText(NEW_LINE);
-
- console_.appendText(NEW_LINE + " ********** " + NEW_LINE);
- // bframe.init("Begining tests for image " + image_name, image, image_width, image_height);
-
- // if (! bframe.isShowing())
- // bframe.show();
-
- for (int j = 0; j < filter_list.length; j++)
- {
- filter_name = filter_list[j];
- filter_ = (SpatialFilter)filter_table_.get(filter_name);
-
- if (filter_ == null)
- System.err.println(filter_name + " is null");
-
- best_time = Double.MAX_VALUE;
- cumulative_time = 0;
- image_source = image.getSource();
- filtered_image = new FilteredImageSource(image.getSource(), filter_);
-
- for (int l = 0; l < TRIALS; l++)
- {
- elapsed_time_ = 0;
- prepareImage(createImage(filtered_image), this);
-
- try
- {
- // synchronized(monitor_)
- // {
- while (elapsed_time_ == 0)
- {
- System.out.println("Waiting for image loading to complete.");
- // monitor_.wait();
- wait();
- }
-
- System.out.println("Image loading has completed.");
- // }
- }
- catch(Exception excp)
- {
- System.out.println(excp);
- stop();
- }
-
- cumulative_time = (double)elapsed_time_ / (double)INTERNAL_ITERATIONS;
- System.out.println(image_name + " " + filter_name + " " + elapsed_time_);
-
- if (best_time > cumulative_time)
- best_time = cumulative_time;
- }
-
- console_.appendText(filter_name + ": best time from " +
- TRIALS + " trials of " + INTERNAL_ITERATIONS +
- " iterations equals: " + best_time + " ms");
- console_.appendText(NEW_LINE);
- Thread.yield();
- }
-
- console_.appendText(NEW_LINE);
- }
-
- console_.appendText("Tests concluded." + NEW_LINE);
-
- // if (bframe.isShowing())
- // bframe.hide();
-
- stop_button_.disable();
- start_button_.enable();
- }
-
- synchronized public boolean imageUpdate(Image img, int infoflags, int x, int y,
- int width, int height)
- {
- System.out.println("Image Update called");
-
- boolean return_value = false;
- try
- {
- if ((infoflags & ALLBITS) != 0 ||
- (infoflags & SOMEBITS) != 0)
- {
- System.out.println("notify called" + width + " " + height);
- elapsed_time_ = filter_.filterTime();
- return_value = true;
- // monitor_.notify();
- notifyAll();
- }
- else if ((infoflags & ImageObserver.ABORT) != 0 ||
- (infoflags & ERROR) != 0)
- {
- System.out.println("image error!");
- // stop();
- return_value = true;
- }
- }
- catch(SecurityException excp)
- {
- System.err.println(excp);
- }
-
- return return_value;
- }
-
- public void stop()
- {
- try
- {
- if (benchmarker_.isAlive())
- {
- BenchmarkFrame bframe = BenchmarkFrame.instance();
-
- if (bframe.isShowing())
- bframe.hide();
-
- System.out.println("Stopping tests...");
- benchmarker_.stop();
- console_.appendText(NEW_LINE + ABORT + NEW_LINE);
- }
-
- start_button_.enable();
- stop_button_.disable();
- }
- catch(SecurityException exception)
- {
- console_.appendText(NEW_LINE + "Stop Failed." + NEW_LINE);
- }
- }
-
- public boolean action(Event evt, Object what)
- {
- if (what.equals(START))
- {
- boolean proceed = ! (benchmarker_ != null && benchmarker_.isAlive());
-
- stop_button_.enable();
-
- if (proceed &&
- images_.getSelectedIndexes() != null &&
- filters_.getSelectedIndexes() != null)
- {
- System.out.println("Starting tests...");
- start_button_.disable();
- benchmarker_ = new Thread(this);
- benchmarker_.setPriority(Math.min(Thread.currentThread().getPriority() + 2,
- Thread.MAX_PRIORITY - 1));
- benchmarker_.start();
- }
- }
- else if (what.equals(STOP))
- {
- stop();
- }
- else if (what.equals(CLEAR))
- {
- console_.setText("");
- console_.appendText(WELCOME + NEW_LINE);
- console_.appendText(COPYRIGHT + NEW_LINE);
- }
- else if (what.equals(RANDOM))
- {
- RandomImageDialog.instance(this).show();
- }
- else if (evt.target == new_image_)
- {
- getSingleImage(new_image_.getText());
- }
-
-
- return true;
- }
-
- private void getSingleImage(String image_url)
- {
- Image image;
- MediaTracker tracker = new MediaTracker(this);
-
- try
- {
- image = getImage(new URL(image_url));
- tracker.addImage(image, 0);
- tracker.waitForID(0);
-
- if (image != null)
- {
- int index = image_url.lastIndexOf('/');
-
- if (index != -1)
- image_url = image_url.substring(index + 1);
-
- image_table_.put(image_url, image);
- images_.addItem(image_url);
- }
- }
- catch(MalformedURLException e)
- {
- System.err.println(e);
- }
- catch(InterruptedException excp)
- {
- System.err.println(excp);
- }
-
- }
-
- private void getImages()
- {
- Image image;
- String image_list = getParameter("images"), image_url;
- StringTokenizer str_tok = new StringTokenizer(image_list, ",");
-
- while (str_tok.hasMoreTokens())
- {
- image_url = str_tok.nextToken();
- getSingleImage(image_url);
- }
- }
-
- private void getFilters()
- {
- URL url;
- Object download;
- String config_file;
- String configInfo= null;
- Choice choice = new Choice ();
- ImageFilter filter;
-
- config_file = getParameter ("configFile");
-
- if (config_file == null)
- config_file = "http://www.cs.wustl.edu/~pjain/java/ACE_wrappers/java/ImageProcessing/framework/filter.conf";
-
- try
- {
- System.out.println ("Configuration File: " + config_file);
- // Create a new URL
- url = new URL (config_file);
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (url.openStream ());
-
- // Create a buffer to hold all the data we get
- StringBuffer tempBuf = new StringBuffer ();
- // Keep reading the data until we are done
- String tempString = iStream.readLine ();
- while (tempString != null)
- {
- tempBuf.append (tempString);
- tempBuf.append (" ");
- tempString = iStream.readLine ();
- }
-
- configInfo = tempBuf.toString ();
- System.out.println(configInfo);
-
- if (configInfo != null)
- {
- StringTokenizer tokens = new StringTokenizer (configInfo);
- String fullFilterName = null;
- String filterName = null;
- // Now parse the string, picking up filter names. Use these
- // names to load the actual filters as well add new choices to
- // the filter choices.
- while (tokens.hasMoreTokens ())
- {
- // Get the next token
- fullFilterName = tokens.nextToken ();
- filterName = this.extractFilterName (fullFilterName);
-
- System.out.println ("Loading: " + fullFilterName);
- // Load the filter class
- Class c = Class.forName (fullFilterName);
- // Class c = this.filterRepository_.load (filter);
-
- filter = (ImageFilter)c.newInstance();
-
- if (filter instanceof SpatialFilter)
- {
- // Add the filter to the Filter Repository
- filter_table_.put(filterName, filter);
-
- // Add filter name to the list of filter choices
- filters_.addItem (filterName);
- }
- }
- }
- }
- catch (Exception e)
- {
- System.err.println ("Filter not found: " + e);
- }
- }
-
- private String extractFilterName (String s)
- {
- String filterName = null;
- StringTokenizer tokens = new StringTokenizer (s, ".");
- while (tokens.hasMoreTokens ())
- filterName = tokens.nextToken ();
- return filterName;
- }
-
- public void generateRandomImage(String name, int width, int height)
- {
- Image image = createImage(width, height);
- Graphics g = image.getGraphics();
- FilteredImageSource filtered_image;
-
- if (g != null)
- {
- ImageFilter filter = new RandomizeFilter();
- g.fillRect(0, 0, width, height);
- filtered_image = new FilteredImageSource(image.getSource(), filter);
- image_table_.put(name, createImage(filtered_image));
- images_.addItem(name);
- }
- }
-}
-
-class RandomImageDialog extends Frame
-{
- private static String GENERATE = "Generate";
- private static String CANCEL = "Cancel";
-
- private TextField name_ = new TextField(30),
- width_ = new TextField(5),
- height_= new TextField(5);
- private BenchmarkApplet applet_;
- private Button generate_button_;
- private Button cancel_button_;
- private ButtonPanel button_panel_ = new ButtonPanel();
-
- private static RandomImageDialog instance_;
-
- public static RandomImageDialog instance(BenchmarkApplet applet)
- {
- if (instance_ == null)
- instance_ = new RandomImageDialog(applet);
-
- return instance_;
- }
-
- protected RandomImageDialog(BenchmarkApplet applet)
- {
- super("Generate Random Image");
- applet_ = applet;
-
- Panel controls = new Panel();
- GridBagLayout gb = new GridBagLayout();
- GridBagConstraints gc = new GridBagConstraints();
- Label width = new Label("Width: "),
- height = new Label("Height: "),
- name = new Label("Name: ");
-
- reshape (0, 0, 300, 200);
-
- controls.setLayout(gb);
- gc.gridx = 0;
- gc.gridy = 0;
- gc.gridwidth = 1;
- gc.insets = new Insets(5,5,5,5);
- gc.anchor = GridBagConstraints.WEST;
- width.setFont(BenchmarkApplet.GLOBAL_FONT);
- gb.setConstraints(width, gc);
- controls.add(width);
-
- gc.gridx = 1;
- gc.anchor = GridBagConstraints.CENTER;
- gc.fill = GridBagConstraints.HORIZONTAL;
- gb.setConstraints(width_, gc);
- controls.add(width_);
-
- gc.gridx = 2;
- gc.anchor = GridBagConstraints.WEST;
- gc.fill = GridBagConstraints.NONE;
- height.setFont(BenchmarkApplet.GLOBAL_FONT);
- gb.setConstraints(height, gc);
- controls.add(height);
-
- gc.gridx = 3;
- gc.anchor = GridBagConstraints.CENTER;
- gc.fill = GridBagConstraints.HORIZONTAL;
- gb.setConstraints(height_, gc);
- controls.add(height_);
-
- gc.gridx = 0;
- gc.gridy = 1;
- gc.gridwidth = 1;
- gc.fill = GridBagConstraints.NONE;
- gc.anchor = GridBagConstraints.WEST;
- name.setFont(BenchmarkApplet.GLOBAL_FONT);
- gb.setConstraints(name, gc);
- controls.add(name);
-
- gc.gridx = 1;
- gc.gridwidth = GridBagConstraints.REMAINDER;
- gc.anchor = GridBagConstraints.CENTER;
- gc.fill = GridBagConstraints.HORIZONTAL;
- gb.setConstraints(name_, gc);
- controls.add(name_);
-
- setLayout(new BorderLayout());
- generate_button_ = button_panel_.add(GENERATE);
- cancel_button_ = button_panel_.add(CANCEL);
- add("Center", controls);
- add("South", button_panel_);
-
- }
-
- public boolean action(Event evt, Object what)
- {
- if (what.equals(GENERATE))
- {
- String width = width_.getText(),
- height = height_.getText(),
- name = name_.getText();
-
- try
- {
- int width_num = Integer.parseInt(width),
- height_num = Integer.parseInt(height);
-
- applet_.generateRandomImage(name, width_num, height_num);
- dispose();
- }
- catch(NumberFormatException nfe)
- {
- width_.setText("");
- height_.setText("");
- }
- }
- else if (what.equals(CANCEL))
- dispose();
-
- return true;
- }
-}
-
-class BenchmarkFrame extends Frame
-{
- private String desc_;
- private Image image_;
- private int height_, width_;
- private static BenchmarkFrame instance_;
- private static final Font FONT = new Font("Dialog", Font.BOLD, 12);
-
- public static BenchmarkFrame instance()
- {
- if (instance_ == null)
- instance_ = new BenchmarkFrame();
-
- return instance_;
- }
-
- public void init(String desc, Image image, int width, int height)
- {
- reshape(0, 0, width, height + 50);
- setImage(desc, image);
- }
-
- public void setImage(String desc, Image image)
- {/*
- try
- {
- MediaTracker tracker = new MediaTracker(this);
- tracker.addImage(image, 0);
- tracker.waitForID(0);
- }
- catch(InterruptedException excp)
- {
- }
- */
- desc_ = desc;
- image_ = image;
- }
-
- public void paint(Graphics g)
- {
- g.setColor(Color.black);
- g.setFont(FONT);
- g.drawImage(image_, 0, 50, this);
- g.drawString(desc_, 5, 40);
- }
-
- protected BenchmarkFrame()
- {
- super("Benchmark Frame");
- }
-}
diff --git a/java/ImageProcessing/framework/DialogManager.java b/java/ImageProcessing/framework/DialogManager.java
deleted file mode 100644
index cca0c037af1..00000000000
--- a/java/ImageProcessing/framework/DialogManager.java
+++ /dev/null
@@ -1,277 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import java.applet.*;
-import java.util.*;
-import java.io.*;
-import java.net.*;
-
-class DialogManager
-{
- public static void initialize (Applet parent)
- {
- codeBase_ = parent.getCodeBase ().toString ();
- aboutFrame_ = new AboutFrame ();
- helpFrame_ = new HelpFrame (codeBase_);
- }
-
- public static void popDialog (int type, String message)
- {
- Frame frame = null;
-
- switch (type)
- {
- case DialogType.ABOUT:
- aboutFrame_.show ();
- break;
- case DialogType.HELP:
- helpFrame_.show ();
- break;
- case DialogType.MALFORMED_URL:
- case DialogType.NOT_SUPPORTED:
- case DialogType.URL_NOT_FOUND:
- frame = new MessageFrame ("Error", message);
- break;
- case DialogType.NOT_YET_IMPLEMENTED:
- frame = new MessageFrame ("", message);
- break;
- }
- Dimension d = Toolkit.getDefaultToolkit ().getScreenSize ();
- frame.move ((d.width - frame.size ().width)/2,
- (d.height - frame.size ().height)/2);
- frame.show ();
- }
-
- private static String codeBase_ = "";
- private static AboutFrame aboutFrame_;
- private static HelpFrame helpFrame_;
-}
-
-class MessageFrame extends Frame
-{
- public MessageFrame (String title, String message)
- {
- super (title);
-
- this.resize (message.length () * 8, 100);
- this.setLayout (new BorderLayout ());
-
- this.text_ = new TextField (message);
- this.text_.setEditable (false);
-
- Panel okButtonPanel = new Panel ();
- okButtonPanel.add (this.okButton_);
- okButtonPanel.resize (100, 100);
-
- this.add ("Center", this.text_);
- this.add ("South", okButtonPanel);
- }
-
- public boolean handleEvent (Event evt)
- {
- if (evt.id == Event.WINDOW_DESTROY)
- {
- this.dispose ();
- return true;
- }
- return super.handleEvent (evt);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.okButton_)
- {
- this.dispose ();
- }
- return true;
- }
- else
- return false;
- }
-
- private Button okButton_ = new Button (" ok ");
- private TextField text_ = null;
-}
-
-class AboutFrame extends Frame
-{
- public AboutFrame ()
- {
- super ("About");
- this.resize (300,300);
- this.setLayout (new BorderLayout ());
-
- Panel okButtonPanel = new Panel ();
- okButtonPanel.add (this.okButton_);
- AboutFrameTextPanel textPanel = new AboutFrameTextPanel ();
-
- this.add ("Center", textPanel);
- this.add ("South", okButtonPanel);
- }
-
- // Handle window destroy events
- public boolean handleEvent (Event evt)
- {
- if (evt.id == Event.WINDOW_DESTROY)
- {
- this.hide ();
- return true;
- }
- return super.handleEvent (evt);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.okButton_)
- {
- this.hide ();
- }
- return true;
- }
- else
- return false;
- }
- private Button okButton_ = new Button (" ok ");
-}
-
-class AboutFrameTextPanel extends Panel
-{
- public void paint (Graphics g)
- {
- int width = this.size ().width;
- int height = this.size ().height;
-
- g.clearRect (0, 0, width, height);
- this.setBackground (Color.cyan);
-
- // First draw the title
- g.setFont (new Font ("TimesRoman", Font.BOLD | Font.ITALIC, 48));
- FontMetrics fontMetrics = g.getFontMetrics ();
- int x = (width - fontMetrics.stringWidth (title_))/2;
- int y = 100;
-
- Color color = g.getColor ();
- g.setColor (Color.orange);
- g.drawString(title_, x+2, y+2);
- g.setColor (color);
- g.drawString(title_, x, y);
-
- // Then draw author's name
- g.setFont (new Font ("TimesRoman", Font.ITALIC, 24));
- fontMetrics = g.getFontMetrics ();
- x = (width - fontMetrics.stringWidth (by_))/2;
- y += 50;
- g.drawString(by_, x, y);
-
- x = (width - fontMetrics.stringWidth (author_))/2;
- y += 50;
- g.drawString(author_, x, y);
-
- // Finally draw other information -- version number etc.
- g.setFont (new Font ("TimesRoman", Font.ITALIC, 18));
- fontMetrics = g.getFontMetrics ();
- x = (width - fontMetrics.stringWidth (info_))/2;
- y += 50;
- g.drawString(info_, x, y);
- }
-
- private String title_ = "MedJava";
- private String by_ = "by";
- private String author_ = "Prashant Jain";
- private String info_ = "Version 1.0";
-}
-
-class HelpFrame extends Frame
-{
- public HelpFrame (String codeBase)
- {
- super ("Help");
- this.setBackground (Color.white);
- this.text_.setEditable (false);
- Font defaultFont = new Font ("TimesRoman", Font.PLAIN, 14);
- this.text_.setFont (defaultFont);
-
- try
- {
- URL url = new URL (codeBase + "../ImageProcessing/framework/help.conf");
- String delim = "\n";
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (url.openStream ());
-
- // Keep reading the data until we are done
- String tempString = iStream.readLine ();
- while (tempString != null)
- {
- if (tempString.startsWith ("<START>"))
- delim = "";
- else if (tempString.startsWith ("<END>"))
- delim = "\n";
- else if (tempString.startsWith ("<TAB>"))
- this.text_.appendText ("\t");
- else if (tempString.startsWith ("<P>"))
- this.text_.appendText ("\n");
- else
- {
- this.text_.appendText (tempString);
- this.text_.appendText (delim);
- }
- tempString = iStream.readLine ();
- }
- }
- catch (MalformedURLException e)
- {
- System.err.println (e);
- }
- catch (IOException e)
- {
- System.err.println (e);
- }
-
- this.resize (600,700);
- this.setLayout (new BorderLayout ());
-
- Panel okButtonPanel = new Panel ();
- okButtonPanel.add (this.okButton_);
- this.add ("South", okButtonPanel);
- this.add ("Center", this.text_);
- }
-
- // Handle window destroy events
- public boolean handleEvent (Event evt)
- {
- if (evt.id == Event.WINDOW_DESTROY)
- {
- this.hide ();
- return true;
- }
- return super.handleEvent (evt);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.okButton_)
- {
- this.hide ();
- }
- return true;
- }
- else
- return false;
- }
-
- private Vector helpInfo_ = new Vector ();
- private Button okButton_ = new Button (" ok ");
- private TextArea text_ = new TextArea ();
-}
-
diff --git a/java/ImageProcessing/framework/DialogType.java b/java/ImageProcessing/framework/DialogType.java
deleted file mode 100644
index c95372c08e1..00000000000
--- a/java/ImageProcessing/framework/DialogType.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package imaging.framework;
-
-public class DialogType
-{
- public static final int ABOUT = 0;
- public static final int MALFORMED_URL = 1;
- public static final int URL_NOT_FOUND = 2;
- public static final int NOT_SUPPORTED = 3;
- public static final int HELP = 4;
- public static final int NOT_YET_IMPLEMENTED = 10;
-}
diff --git a/java/ImageProcessing/framework/FileBrowser.java b/java/ImageProcessing/framework/FileBrowser.java
deleted file mode 100644
index 27245b1f2f4..00000000000
--- a/java/ImageProcessing/framework/FileBrowser.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import java.net.*;
-import java.applet.*;
-import gjt.Separator;
-import gjt.ComponentScroller;
-
-class FileNode extends HierarchyAdapter
-{
- public FileNode (String name,
- Icon icon,
- boolean root,
- ImageApp app)
- {
- super (name, icon, root);
- this.app_ = app;
- }
-
- public FileNode (String name,
- Icon icon,
- ListFiles list,
- ImageApp app)
- {
- super (name, icon);
- this.list_ = list;
- this.app_ = app;
- }
-
- public ImageApp app ()
- {
- return this.app_;
- }
-
- public void handleEvent ()
- {
- String s = null;
- String pString = "";
- Hierarchy p = this.getHierarchyParent ();
-
- while (p != null)
- {
- pString = p.getName () + pString;
- p = p.getHierarchyParent ();
- }
-
- if (pString.endsWith ("/"))
- s = "http://" + pString + this.getName ();
- else
- s = "http://" + pString + "/" + this.getName ();
-
- System.out.println ("Opening: " + s);
-
- // If list is null, then it is a file, else it is a directory and
- // use list to get the rest of the directory.
- if (this.list_ == null)
- this.app_.openURL (s); // It is a file
- else
- this.list_.listFiles (s, this); // It is a directory.
- }
-
- private ListFiles list_ = null;
- private ImageApp app_ = null;
-}
-
-class BrowserPanel extends Panel
-{
- public BrowserPanel (ImageApp parent)
- {
- this.resize (300, 300);
- this.parent_ = parent;
- this.setLayout (new BorderLayout ());
- }
-
- public int initialize (String url, ListFiles list)
- {
- String directory = null;
- int index = -1;
-
- String pString = list.stripProtocolHeader (url);
- if (!pString.endsWith ("/"))
- pString = pString + "/";
-
- try
- {
- Icon dirIcon = new Icon (this.parent_.getCodeBase () +
- "../ImageProcessing/framework/" +
- "file03.gif", (Applet) this.parent_);
- System.out.println (this.parent_.getCodeBase () +
- "../ImageProcessing/framework/" +
- "file03.gif");
- this.root_ = new FileNode (pString,
- dirIcon, true, this.parent_);
- }
- catch (MalformedURLException e)
- {
- }
-
- int count = list.listFiles (url, this.root_);
- // System.out.println ("Count: " + count);
- if (count > 0)
- {
- // Add the root to the component scroller and then add the
- // component scroller to the panel.
- this.scroller_ = new ComponentScroller (this.root_);
- this.add ("Center", this.scroller_);
- }
- return count;
- }
-
- private FileNode root_ = null;
- private ImageApp parent_;
- private ComponentScroller scroller_;
-}
-
-class FileBrowser extends Frame
-{
- public FileBrowser (String title, ImageApp parent)
- {
- super (title);
- this.resize (300, 300);
- this.browser_ = new BrowserPanel (parent);
- this.setLayout (new BorderLayout ());
-
- this.cancelButton_ = new Button (" cancel ");
- Panel buttonPanel = new Panel ();
- buttonPanel.add (this.cancelButton_);
- buttonPanel.resize (100, 100);
-
- Panel southPanel = new Panel ();
- southPanel.setLayout (new BorderLayout ());
- southPanel.add ("North", new Separator ());
- southPanel.add ("South", buttonPanel);
- this.add ("South", southPanel);
- this.add ("Center", this.browser_);
- }
-
- public int initialize (String url, ListFiles list)
- {
- return this.browser_.initialize (url, list);
- }
-
- // Handle window destroy events
- public boolean handleEvent (Event evt)
- {
- if (evt.id == Event.WINDOW_DESTROY)
- {
- this.dispose ();
- return true;
- }
- return super.handleEvent (evt);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.cancelButton_)
- {
- this.dispose ();
- }
- validate ();
- return true;
- }
- else
- return false;
- }
-
- private Button cancelButton_;;
- private BrowserPanel browser_;
-}
diff --git a/java/ImageProcessing/framework/FilePanel.java b/java/ImageProcessing/framework/FilePanel.java
deleted file mode 100644
index f8ffc7dbca8..00000000000
--- a/java/ImageProcessing/framework/FilePanel.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-
-// Create a panel for all the buttons
-class FilePanel extends Panel
-{
- FilePanel (ImageApp parent)
- {
- this.parent_ = parent;
-
- this.setLayout (new GridLayout (2, 1));
-
- // First create all the buttons
- this.URLDialogButton_ = new URLDialogButton ("Open URL", "Download an image", this.parent_);
- this.saveButton_ = new SaveButton ("Save", "Upload an image", this.parent_);
-
- // Place the created buttons in the panel
- this.add (this.URLDialogButton_);
- this.add (this.saveButton_);
-
- // Disable the save button for now
- this.disableSaveButton ();
- this.resize (400, 400);
- }
-
- public void enableSaveButton ()
- {
- this.saveButton_.enable ();
- }
-
- public void disableSaveButton ()
- {
- this.saveButton_.disable ();
- }
-
- // All the created buttons
- private URLDialogButton URLDialogButton_;
- private SaveButton saveButton_;
-
- private ImageApp parent_;
-}
-
-// Create a panel for all the buttons
-class ResetPanel extends Panel
-{
- ResetPanel (ImageApp parent)
- {
- this.parent_ = parent;
-
- this.setLayout (new GridLayout (2, 1));
-
- // First create all the buttons
- this.reloadButton_ = new ReloadButton ("Reload Filters", "Reload all filters", this.parent_);
-
- // **********************
- // Disable this until it works
- // **********************
- this.reloadButton_.disable();
-
-
- this.resetButton_ = new ResetButton ("Reset", "Reset the image", this.parent_);
-
-
- // Place the created buttons in the panel
- this.add (this.resetButton_);
- this.add (this.reloadButton_);
-
- this.resize (400, 400);
- }
-
- // All the created buttons
- private ReloadButton reloadButton_;
- private ResetButton resetButton_;
-
- private ImageApp parent_;
-}
-
-
-class ZoomPanel extends Panel
-{
- ZoomPanel (ImageApp parent)
- {
- this.parent_ = parent;
-
- this.setLayout (new GridLayout (2, 1));
-
- // First create the two zoom buttons
- this.zoomInButton_ = new ZoomInButton ("<< Zoom in", "Zoom into the image", this.parent_);
- this.zoomOutButton_ = new ZoomOutButton ("Zoom out >>", "Zoom out of the image", this.parent_);
-
- // Now add the buttons to the panel
- this.add (this.zoomInButton_);
- this.add (this.zoomOutButton_);
-
- this.resize (100, 100);
- }
-
- private ZoomInButton zoomInButton_;
- private ZoomOutButton zoomOutButton_;
-
- private ImageApp parent_;
-}
-
-
-class FilterPanel extends Panel
-{
- FilterPanel (ImageApp parent)
- {
- this.parent_ = parent;
-
- this.setLayout (new GridLayout (2, 1));
- this.applyButton_ = new ApplyButton ("Apply", "Apply the selected filter", this.parent_);
-
- // Set the layout of the Choice Panel. Note that the Choice Panel
- // holds the choice button of filters.
- this.choicePanel_ = new ChoicePanel ("Select filter", this.parent_);
-
- this.add (this.applyButton_);
- this.add (this.choicePanel_);
- this.resize (200,200);
- }
-
- public Choice choice ()
- {
- return this.choicePanel_.choice ();
- }
-
- public void loadFilters ()
- {
- this.choicePanel_.loadFilters ();
- }
-
- private ChoicePanel choicePanel_;
- private ApplyButton applyButton_;
- private ImageApp parent_;
-}
-
-class HelpPanel extends Panel
-{
- HelpPanel (ImageApp parent)
- {
- this.parent_ = parent;
-
- this.setLayout (new GridLayout (2, 1));
-
- this.aboutButton_ = new AboutButton ("About", "About the applet", this.parent_);
- this.helpButton_ = new HelpButton ("Help", "Help on how to use the applet", this.parent_);
-
- // Now add the buttons to the panel
- this.add (this.aboutButton_);
- this.add (this.helpButton_);
-
- this.resize (100, 100);
- }
-
- private AboutButton aboutButton_;
- private HelpButton helpButton_;
-
- private ImageApp parent_;
-}
diff --git a/java/ImageProcessing/framework/FilterTest.java b/java/ImageProcessing/framework/FilterTest.java
deleted file mode 100644
index b1e33482be9..00000000000
--- a/java/ImageProcessing/framework/FilterTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import imaging.filters.Timer;
-
-public class FilterTest
-{
- public static void main(String[] args)
- {
- Timer timer = new Timer();
- ImageProcessor ip = new ImageProcessor();
- ImageFilterFactory iff = new ImageFilterFactory();
- Frame frame = new Frame("Rotate Example");
- Toolkit tk = Toolkit.getDefaultToolkit();
- Dimension d = tk.getScreenSize();
- Image old_image = tk.getImage("myphoto.gif"), image;
- int image_x, image_y, x = 50, y = 50;
- Graphics g;
-
- frame.reshape(d.width/4, d.height/8, d.width/2, 3*d.height/4);
- frame.show();
- g = frame.getGraphics();
- d = frame.size();
-
- MediaTracker tracker = new MediaTracker(frame);
- tracker.addImage(old_image, 0);
- try { tracker.waitForID(0); } catch(InterruptedException excp) {}
- g.drawImage(old_image, x, y, frame);
- x += old_image.getWidth(frame) + 50;
-
- timer.start();
- image = ip.processImage(old_image, iff.createMeanImageFilter(), frame);
- timer.stop();
- System.out.println(timer);
- g.drawImage(image, x, y, frame);
- x += old_image.getWidth(frame) + 50;
-
- timer.start();
- image = ip.processImage(old_image, iff.createSobelFilter(), frame);
- timer.stop();
- System.out.println(timer);
- g.drawImage(image, x, y, frame);
- x = 50;
- y += old_image.getHeight(frame) + 50;
-
- timer.start();
- image = ip.processImage(old_image, iff.createEmbossFilter(), frame);
- timer.stop();
- System.out.println(timer);
- g.drawImage(image, x, y, frame);
- x += old_image.getWidth(frame) + 50;
-
- image = ip.processImage(old_image, iff.createSharpenFilter(), frame);
- g.drawImage(image, x, y, frame);
- x = 50;
- y += old_image.getHeight(frame) + 50;
-
- image = ip.processImage(old_image, iff.createRotateImageFilter(), frame);
- g.drawImage(image, x, y, frame);
- }
-}
diff --git a/java/ImageProcessing/framework/GIFHandler.java b/java/ImageProcessing/framework/GIFHandler.java
deleted file mode 100644
index 3d099ba294c..00000000000
--- a/java/ImageProcessing/framework/GIFHandler.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.io.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-
-public class GIFHandler extends BlobWriter
-{
- public GIFHandler (String filename, Image image, int length)
- {
- super (null, length, 0, filename);
- this.image_ = image;
- }
-
- /******************************
- * Used for HTTP 1.1 PUT authorization
- *****************************/
- public GIFHandler (String filename, Image image, int length, String authentication)
- {
- super (null, length, 0, filename, authentication);
- this.image_ = image;
- }
-
- protected int sendRequest ()
- {
- if (this.sendHeader () == -1)
- {
- ACE.ERROR ("GIFHandler::sendHeader failed.");
- return -1;
- }
- else
- if (this.sendData () == -1)
- {
- ACE.ERROR ("GIFHandler::sendData failed.");
- return -1;
- }
- return 0;
- }
-
- // Send the data
- protected int sendData ()
- {
-
-
- try
- {
- if (this.length_ > 0)
- {
- OutputStream ostream = this.peer ().outputStream ();
-
- this.encoder_ = new GifEncoder (this.image_, ostream);
-
- this.encoder_.encode ();
-
- ostream.flush();
-
- // this.encoder_ = new GIFEncoder (this.image_);
- // this.encoder_.Write (ostream);
- }
- this.bytesWritten_ = this.length_;
-
- }
- catch (IOException e)
- {
- ACE.ERROR ("Error writing to server");
- }
- return 0;
- }
-
- GifEncoder encoder_ = null;
- // GIFEncoder encoder_ = null;
- Image image_ = null;
-}
diff --git a/java/ImageProcessing/framework/GifEncoder.java b/java/ImageProcessing/framework/GifEncoder.java
deleted file mode 100644
index 91a3927d95d..00000000000
--- a/java/ImageProcessing/framework/GifEncoder.java
+++ /dev/null
@@ -1,693 +0,0 @@
-// GifEncoder - write out an image as a GIF
-//
-// Transparency handling and variable bit size courtesy of Jack Palevich.
-//
-// Copyright (C) 1996 by Jef Poskanzer <jef@acme.com>. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-// SUCH DAMAGE.
-//
-// Visit the ACME Labs Java page for up-to-date versions of this and other
-// fine Java utilities: http://www.acme.com/java/
-
-package imaging.framework;
-
-import java.util.*;
-import java.io.*;
-import java.awt.Image;
-import java.awt.image.*;
-
-/// Write out an image as a GIF.
-// <P>
-// <A HREF="/resources/classes/Acme/JPM/Encoders/GifEncoder.java">Fetch the software.</A><BR>
-// <A HREF="/resources/classes/Acme.tar.Z">Fetch the entire Acme package.</A>
-// <P>
-// @see ToGif
-
-public class GifEncoder extends ImageEncoder
- {
-
- private boolean interlace = false;
-
- /// Constructor from Image.
- // @param img The image to encode.
- // @param out The stream to write the GIF to.
- public GifEncoder( Image img, OutputStream out ) throws IOException
- {
- super( img, out );
- }
-
- /// Constructor from Image with interlace setting.
- // @param img The image to encode.
- // @param out The stream to write the GIF to.
- // @param interlace Whether to interlace.
- public GifEncoder( Image img, OutputStream out, boolean interlace ) throws IOException
- {
- super( img, out );
- this.interlace = interlace;
- }
-
- /// Constructor from ImageProducer.
- // @param prod The ImageProducer to encode.
- // @param out The stream to write the GIF to.
- public GifEncoder( ImageProducer prod, OutputStream out ) throws IOException
- {
- super( prod, out );
- }
-
- /// Constructor from ImageProducer with interlace setting.
- // @param prod The ImageProducer to encode.
- // @param out The stream to write the GIF to.
- public GifEncoder( ImageProducer prod, OutputStream out, boolean interlace ) throws IOException
- {
- super( prod, out );
- this.interlace = interlace;
- }
-
-
- int width, height;
- int[][] rgbPixels;
-
- void encodeStart( int width, int height ) throws IOException
- {
- this.width = width;
- this.height = height;
- rgbPixels = new int[height][width];
- }
-
- void encodePixels(
- int x, int y, int w, int h, int[] rgbPixels, int off, int scansize )
- throws IOException
- {
- // Save the pixels.
- for ( int row = 0; row < h; ++row )
- System.arraycopy(
- rgbPixels, row * scansize + off,
- this.rgbPixels[y + row], x, w );
-
- }
-
- IntHashtable colorHash;
-
- void encodeDone() throws IOException
- {
- int transparentIndex = -1;
- int transparentRgb = -1;
- // Put all the pixels into a hash table.
- colorHash = new IntHashtable();
- int index = 0;
- for ( int row = 0; row < height; ++row )
- {
- int rowOffset = row * width;
- for ( int col = 0; col < width; ++col )
- {
- int rgb = rgbPixels[row][col];
- boolean isTransparent = ( ( rgb >>> 24 ) < 0x80 );
- if ( isTransparent )
- {
- if ( transparentIndex < 0 )
- {
- // First transparent color; remember it.
- transparentIndex = index;
- transparentRgb = rgb;
- }
- else if ( rgb != transparentRgb )
- {
- // A second transparent color; replace it with
- // the first one.
- rgbPixels[row][col] = rgb = transparentRgb;
- }
- }
- GifEncoderHashitem item =
- (GifEncoderHashitem) colorHash.get( rgb );
- if ( item == null )
- {
- if ( index >= 256 )
- throw new IOException( "too many colors for a GIF" );
- item = new GifEncoderHashitem(
- rgb, 1, index, isTransparent );
- ++index;
- colorHash.put( rgb, item );
- }
- else
- ++item.count;
- }
- }
-
- // Figure out how many bits to use.
- int logColors;
- if ( index <= 2 )
- logColors = 1;
- else if ( index <= 4 )
- logColors = 2;
- else if ( index <= 16 )
- logColors = 4;
- else
- logColors = 8;
-
- // Turn colors into colormap entries.
- int mapSize = 1 << logColors;
- byte[] reds = new byte[mapSize];
- byte[] grns = new byte[mapSize];
- byte[] blus = new byte[mapSize];
- for ( Enumeration e = colorHash.elements(); e.hasMoreElements(); )
- {
- GifEncoderHashitem item = (GifEncoderHashitem) e.nextElement();
- reds[item.index] = (byte) ( ( item.rgb >> 16 ) & 0xff );
- grns[item.index] = (byte) ( ( item.rgb >> 8 ) & 0xff );
- blus[item.index] = (byte) ( item.rgb & 0xff );
- }
-
- GIFEncode(
- out, width, height, interlace, (byte) 0, transparentIndex,
- logColors, reds, grns, blus );
- }
-
- byte GetPixel( int x, int y ) throws IOException
- {
- GifEncoderHashitem item =
- (GifEncoderHashitem) colorHash.get( rgbPixels[y][x] );
- if ( item == null )
- throw new IOException( "color not found" );
- return (byte) item.index;
- }
-
- static void writeString( OutputStream out, String str ) throws IOException
- {
- int len = str.length();
- byte[] buf = new byte[len];
- str.getBytes( 0, len, buf, 0 );
- out.write( buf );
- }
-
- // Adapted from ppmtogif, which is based on GIFENCOD by David
- // Rowley <mgardi@watdscu.waterloo.edu>. Lempel-Zim compression
- // based on "compress".
-
- int Width, Height;
- boolean Interlace;
- int curx, cury;
- int CountDown;
- int Pass = 0;
-
- void GIFEncode(
- OutputStream outs, int Width, int Height, boolean Interlace, byte Background, int Transparent, int BitsPerPixel, byte[] Red, byte[] Green, byte[] Blue )
- throws IOException
- {
- byte B;
- int LeftOfs, TopOfs;
- int ColorMapSize;
- int InitCodeSize;
- int i;
-
- this.Width = Width;
- this.Height = Height;
- this.Interlace = Interlace;
- ColorMapSize = 1 << BitsPerPixel;
- LeftOfs = TopOfs = 0;
-
- // Calculate number of bits we are expecting
- CountDown = Width * Height;
-
- // Indicate which pass we are on (if interlace)
- Pass = 0;
-
- // The initial code size
- if ( BitsPerPixel <= 1 )
- InitCodeSize = 2;
- else
- InitCodeSize = BitsPerPixel;
-
- // Set up the current x and y position
- curx = 0;
- cury = 0;
-
- // Write the Magic header
- writeString( outs, "GIF89a" );
-
- // Write out the screen width and height
- Putword( Width, outs );
- Putword( Height, outs );
-
- // Indicate that there is a global colour map
- B = (byte) 0x80; // Yes, there is a color map
- // OR in the resolution
- B |= (byte) ( ( 8 - 1 ) << 4 );
- // Not sorted
- // OR in the Bits per Pixel
- B |= (byte) ( ( BitsPerPixel - 1 ) );
-
- // Write it out
- Putbyte( B, outs );
-
- // Write out the Background colour
- Putbyte( Background, outs );
-
- // Pixel aspect ratio - 1:1.
- //Putbyte( (byte) 49, outs );
- // Java's GIF reader currently has a bug, if the aspect ratio byte is
- // not zero it throws an ImageFormatException. It doesn't know that
- // 49 means a 1:1 aspect ratio. Well, whatever, zero works with all
- // the other decoders I've tried so it probably doesn't hurt.
- Putbyte( (byte) 0, outs );
-
- // Write out the Global Colour Map
- for ( i = 0; i < ColorMapSize; ++i )
- {
- Putbyte( Red[i], outs );
- Putbyte( Green[i], outs );
- Putbyte( Blue[i], outs );
- }
-
- // Write out extension for transparent colour index, if necessary.
- if ( Transparent != -1 )
- {
- Putbyte( (byte) '!', outs );
- Putbyte( (byte) 0xf9, outs );
- Putbyte( (byte) 4, outs );
- Putbyte( (byte) 1, outs );
- Putbyte( (byte) 0, outs );
- Putbyte( (byte) 0, outs );
- Putbyte( (byte) Transparent, outs );
- Putbyte( (byte) 0, outs );
- }
-
- // Write an Image separator
- Putbyte( (byte) ',', outs );
-
- // Write the Image header
- Putword( LeftOfs, outs );
- Putword( TopOfs, outs );
- Putword( Width, outs );
- Putword( Height, outs );
-
- // Write out whether or not the image is interlaced
- if ( Interlace )
- Putbyte( (byte) 0x40, outs );
- else
- Putbyte( (byte) 0x00, outs );
-
- // Write out the initial code size
- Putbyte( (byte) InitCodeSize, outs );
-
- // Go and actually compress the data
- compress( InitCodeSize+1, outs );
-
- // Write out a Zero-length packet (to end the series)
- Putbyte( (byte) 0, outs );
-
- // Write the GIF file terminator
- Putbyte( (byte) ';', outs );
- }
-
- // Bump the 'curx' and 'cury' to point to the next pixel
- void BumpPixel()
- {
- // Bump the current X position
- ++curx;
-
- // If we are at the end of a scan line, set curx back to the beginning
- // If we are interlaced, bump the cury to the appropriate spot,
- // otherwise, just increment it.
- if ( curx == Width )
- {
- curx = 0;
-
- if ( ! Interlace )
- ++cury;
- else
- {
- switch( Pass )
- {
- case 0:
- cury += 8;
- if ( cury >= Height )
- {
- ++Pass;
- cury = 4;
- }
- break;
-
- case 1:
- cury += 8;
- if ( cury >= Height )
- {
- ++Pass;
- cury = 2;
- }
- break;
-
- case 2:
- cury += 4;
- if ( cury >= Height )
- {
- ++Pass;
- cury = 1;
- }
- break;
-
- case 3:
- cury += 2;
- break;
- }
- }
- }
- }
-
- static final int EOF = -1;
-
- // Return the next pixel from the image
- int GIFNextPixel() throws IOException
- {
- byte r;
-
- if ( CountDown == 0 )
- return EOF;
-
- --CountDown;
-
- r = GetPixel( curx, cury );
-
- BumpPixel();
-
- return r & 0xff;
- }
-
- // Write out a word to the GIF file
- void Putword( int w, OutputStream outs ) throws IOException
- {
- Putbyte( (byte) ( w & 0xff ), outs );
- Putbyte( (byte) ( ( w >> 8 ) & 0xff ), outs );
- }
-
- // Write out a byte to the GIF file
- void Putbyte( byte b, OutputStream outs ) throws IOException
- {
- outs.write( b );
- }
-
-
- // GIFCOMPR.C - GIF Image compression routines
- //
- // Lempel-Ziv compression based on 'compress'. GIF modifications by
- // David Rowley (mgardi@watdcsu.waterloo.edu)
-
- // General DEFINEs
-
- static final int BITS = 12;
-
- static final int HSIZE = 5003; // 80% occupancy
-
- // GIF Image compression - modified 'compress'
- //
- // Based on: compress.c - File compression ala IEEE Computer, June 1984.
- //
- // By Authors: Spencer W. Thomas (decvax!harpo!utah-cs!utah-gr!thomas)
- // Jim McKie (decvax!mcvax!jim)
- // Steve Davies (decvax!vax135!petsd!peora!srd)
- // Ken Turkowski (decvax!decwrl!turtlevax!ken)
- // James A. Woods (decvax!ihnp4!ames!jaw)
- // Joe Orost (decvax!vax135!petsd!joe)
-
- int n_bits; // number of bits/code
- int maxbits = BITS; // user settable max # bits/code
- int maxcode; // maximum code, given n_bits
- int maxmaxcode = 1 << BITS; // should NEVER generate this code
-
- final int MAXCODE( int n_bits )
- {
- return ( 1 << n_bits ) - 1;
- }
-
- int[] htab = new int[HSIZE];
- int[] codetab = new int[HSIZE];
-
- int hsize = HSIZE; // for dynamic table sizing
-
- int free_ent = 0; // first unused entry
-
- // block compression parameters -- after all codes are used up,
- // and compression rate changes, start over.
- boolean clear_flg = false;
-
- // Algorithm: use open addressing double hashing (no chaining) on the
- // prefix code / next character combination. We do a variant of Knuth's
- // algorithm D (vol. 3, sec. 6.4) along with G. Knott's relatively-prime
- // secondary probe. Here, the modular division first probe is gives way
- // to a faster exclusive-or manipulation. Also do block compression with
- // an adaptive reset, whereby the code table is cleared when the compression
- // ratio decreases, but after the table fills. The variable-length output
- // codes are re-sized at this point, and a special CLEAR code is generated
- // for the decompressor. Late addition: construct the table according to
- // file size for noticeable speed improvement on small files. Please direct
- // questions about this implementation to ames!jaw.
-
- int g_init_bits;
-
- int ClearCode;
- int EOFCode;
-
- void compress( int init_bits, OutputStream outs ) throws IOException
- {
- int fcode;
- int i /* = 0 */;
- int c;
- int ent;
- int disp;
- int hsize_reg;
- int hshift;
-
- // Set up the globals: g_init_bits - initial number of bits
- g_init_bits = init_bits;
-
- // Set up the necessary values
- clear_flg = false;
- n_bits = g_init_bits;
- maxcode = MAXCODE( n_bits );
-
- ClearCode = 1 << ( init_bits - 1 );
- EOFCode = ClearCode + 1;
- free_ent = ClearCode + 2;
-
- char_init();
-
- ent = GIFNextPixel();
-
- hshift = 0;
- for ( fcode = hsize; fcode < 65536; fcode *= 2 )
- ++hshift;
- hshift = 8 - hshift; // set hash code range bound
-
- hsize_reg = hsize;
- cl_hash( hsize_reg ); // clear hash table
-
- output( ClearCode, outs );
-
- outer_loop:
- while ( (c = GIFNextPixel()) != EOF )
- {
- fcode = ( c << maxbits ) + ent;
- i = ( c << hshift ) ^ ent; // xor hashing
-
- if ( htab[i] == fcode )
- {
- ent = codetab[i];
- continue;
- }
- else if ( htab[i] >= 0 ) // non-empty slot
- {
- disp = hsize_reg - i; // secondary hash (after G. Knott)
- if ( i == 0 )
- disp = 1;
- do
- {
- if ( (i -= disp) < 0 )
- i += hsize_reg;
-
- if ( htab[i] == fcode )
- {
- ent = codetab[i];
- continue outer_loop;
- }
- }
- while ( htab[i] >= 0 );
- }
- output( ent, outs );
- ent = c;
- if ( free_ent < maxmaxcode )
- {
- codetab[i] = free_ent++; // code -> hashtable
- htab[i] = fcode;
- }
- else
- cl_block( outs );
- }
- // Put out the final code.
- output( ent, outs );
- output( EOFCode, outs );
- }
-
- // output
- //
- // Output the given code.
- // Inputs:
- // code: A n_bits-bit integer. If == -1, then EOF. This assumes
- // that n_bits =< wordsize - 1.
- // Outputs:
- // Outputs code to the file.
- // Assumptions:
- // Chars are 8 bits long.
- // Algorithm:
- // Maintain a BITS character long buffer (so that 8 codes will
- // fit in it exactly). Use the VAX insv instruction to insert each
- // code in turn. When the buffer fills up empty it and start over.
-
- int cur_accum = 0;
- int cur_bits = 0;
-
- int masks[] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F,
- 0x001F, 0x003F, 0x007F, 0x00FF,
- 0x01FF, 0x03FF, 0x07FF, 0x0FFF,
- 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF };
-
- void output( int code, OutputStream outs ) throws IOException
- {
- cur_accum &= masks[cur_bits];
-
- if ( cur_bits > 0 )
- cur_accum |= ( code << cur_bits );
- else
- cur_accum = code;
-
- cur_bits += n_bits;
-
- while ( cur_bits >= 8 )
- {
- char_out( (byte) ( cur_accum & 0xff ), outs );
- cur_accum >>= 8;
- cur_bits -= 8;
- }
-
- // If the next entry is going to be too big for the code size,
- // then increase it, if possible.
- if ( free_ent > maxcode || clear_flg )
- {
- if ( clear_flg )
- {
- maxcode = MAXCODE(n_bits = g_init_bits);
- clear_flg = false;
- }
- else
- {
- ++n_bits;
- if ( n_bits == maxbits )
- maxcode = maxmaxcode;
- else
- maxcode = MAXCODE(n_bits);
- }
- }
-
- if ( code == EOFCode )
- {
- // At EOF, write the rest of the buffer.
- while ( cur_bits > 0 )
- {
- char_out( (byte) ( cur_accum & 0xff ), outs );
- cur_accum >>= 8;
- cur_bits -= 8;
- }
-
- flush_char( outs );
- }
- }
-
- // Clear out the hash table
-
- // table clear for block compress
- void cl_block( OutputStream outs ) throws IOException
- {
- cl_hash( hsize );
- free_ent = ClearCode + 2;
- clear_flg = true;
-
- output( ClearCode, outs );
- }
-
- // reset code table
- void cl_hash( int hsize )
- {
- for ( int i = 0; i < hsize; ++i )
- htab[i] = -1;
- }
-
- // GIF Specific routines
-
- // Number of characters so far in this 'packet'
- int a_count;
-
- // Set up the 'byte output' routine
- void char_init()
- {
- a_count = 0;
- }
-
- // Define the storage for the packet accumulator
- byte[] accum = new byte[256];
-
- // Add a character to the end of the current packet, and if it is 254
- // characters, flush the packet to disk.
- void char_out( byte c, OutputStream outs ) throws IOException
- {
- accum[a_count++] = c;
- if ( a_count >= 254 )
- flush_char( outs );
- }
-
- // Flush the packet to disk, and reset the accumulator
- void flush_char( OutputStream outs ) throws IOException
- {
- if ( a_count > 0 )
- {
- outs.write( a_count );
- outs.write( accum, 0, a_count );
- a_count = 0;
- }
- }
-
- }
-
-class GifEncoderHashitem
- {
-
- public int rgb;
- public int count;
- public int index;
- public boolean isTransparent;
-
- public GifEncoderHashitem( int rgb, int count, int index, boolean isTransparent )
- {
- this.rgb = rgb;
- this.count = count;
- this.index = index;
- this.isTransparent = isTransparent;
- }
-
- }
diff --git a/java/ImageProcessing/framework/Hierarchy.java b/java/ImageProcessing/framework/Hierarchy.java
deleted file mode 100644
index 41b1825ef4d..00000000000
--- a/java/ImageProcessing/framework/Hierarchy.java
+++ /dev/null
@@ -1,347 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.util.Vector;
-
-public class Hierarchy extends Canvas
-{
- // Attributes
- private String name_;
- private Hierarchy root_;
- private Hierarchy parent_;
- private Icon icon_ = null;
-
- // State
- private boolean collapsed_ = true;
- private boolean deadend_ = true;
- private Vector contained_ = new Vector();
- private Rectangle self_;
- private Rectangle scope_;
-
- // Constants
- private Color COLOR = Color.black;
- private Font FONT = new Font("Dialog", Font.BOLD, 12);
- private static int TRI_HEIGHT = 8;
- private int SPACE = 15;
-
- static Hierarchy last_lit_ = null;
-
- public Hierarchy(String name, boolean root)
- {
- name_ = name;
-
- if (root)
- {
- deadend_ = false;
- root_ = this;
- parent_ = null;
- }
- }
-
- public Hierarchy(String name, Icon icon, boolean root)
- {
- this(name, root);
- icon_ = icon;
- }
-
- public Hierarchy(String name)
- {
- this(name, false);
- }
-
- public Hierarchy(String name, Icon icon)
- {
- this(name, icon, false);
- }
-
- public void setExpandable(boolean expandable)
- {
- deadend_ = ! expandable;
-
- /*
- if (root_ != null)
- root_.repaint();
- */
- }
-
- public void setCollapsed(boolean collapsed)
- {
- collapsed_ = collapsed;
-
- if (root_ != null)
- root_.repaint();
- }
-
- public void addEntry(Hierarchy entry)
- {
- deadend_ = false;
- entry.parent_ = this;
- entry.root_ = root_;
- entry.FONT = FONT;
- entry.COLOR = COLOR;
- entry.SPACE = SPACE;
-
- contained_.addElement(entry);
- }
-
- public boolean removeEntry(String name)
- {
- if (contained_.size() == 1)
- deadend_ = true;
-
- return contained_.removeElement(name);
- }
-
- public String getName()
- {
- return name_;
- }
-
- public void setName(String name)
- {
- name_ = name;
- }
-
- public Hierarchy getHierarchyParent()
- {
- return parent_;
- }
-
- public void setFont(Font font)
- {
- FONT = font;
- }
-
- public void setColor(Color color)
- {
- COLOR = color;
- }
-
- public void setSpace(int space)
- {
- SPACE = space;
- }
-
- public void handleEvent() {}
-
- public boolean mouseDown(Event evt, int x, int y)
- {
- Hierarchy value = mouseInside(x, y);
-
- if (value != null)
- {
- if (! value.deadend_)
- {
- if (x < value.self_.x + TRI_HEIGHT + SPACE)
- {
- value.collapsed_ = ! value.collapsed_;
- if (value.contained_.isEmpty())
- value.handleEvent();
- repaint();
- }
- }
- else
- {
- if (value.contained_.isEmpty())
- value.handleEvent();
- }
- }
-
- return false;
- }
-
- public boolean mouseMove(Event evt, int x, int y)
- {
- Hierarchy value = mouseInside(x, y);
-
- if ((value != last_lit_) && (last_lit_ != null))
- last_lit_.highlight(getGraphics(), false);
-
- if (value != null && value.deadend_)
- value.highlight(getGraphics(), true);
-
- last_lit_ = value;
-
- return false;
- }
-
- public void paint(Graphics g)
- {
- Dimension d = size();
-
- drawLevel(g, SPACE, SPACE);
-
- if (d.width < scope_.width || d.height < scope_.height ||
- d.width > scope_.width || d.height > scope_.height)
- resize(scope_.width, scope_.height);
- }
-
-
- private Point drawLevel(Graphics g, int x, int y)
- {
- g.setFont(FONT);
- FontMetrics font_metrics = g.getFontMetrics();
- int string_height = font_metrics.getHeight();
- int string_width = font_metrics.stringWidth(name_);
- int entry_height = string_height;
- int entry_width = string_width + 2*SPACE + TRI_HEIGHT;
- int total_height, total_width, initial_x = x, initial_y = y;
- int indent = SPACE + TRI_HEIGHT/2;
- int temp_x = x;
- Point place_marker;
- Hierarchy entry;
-
- if (icon_ != null)
- {
- entry_height = Math.max(string_height, icon_.iconSize().height);
- entry_width += icon_.iconSize().width + SPACE;
- indent += icon_.iconSize().width/2;
- if (! deadend_)
- drawShape(g, x, y + (entry_height - TRI_HEIGHT)/2, deadend_, collapsed_);
- }
- else
- drawShape(g, x, y + (entry_height - TRI_HEIGHT)/2, deadend_, collapsed_);
-
- self_ = new Rectangle(initial_x, initial_y, entry_width, entry_height);
-
- temp_x += TRI_HEIGHT + SPACE;
-
- if (icon_ != null)
- {
- icon_.drawIcon(g, temp_x, y, root_);
- temp_x += SPACE + icon_.iconSize().width;
- }
-
- g.setColor(COLOR);
-
- g.drawString(name_, temp_x, y + (entry_height + string_height)/2);
-
- total_width = entry_width;
- y += entry_height + SPACE;
-
- if (! (deadend_ || collapsed_))
- {
- x += indent;
- for (int i = 0; i < contained_.size(); i++)
- {
- entry = (Hierarchy)contained_.elementAt(i);
- place_marker = entry.drawLevel(g, x, y);
- total_width = Math.max(total_width, entry.scope_.width + indent + SPACE);
- x = place_marker.x;
- y = place_marker.y;
- }
- x -= indent;
- }
-
- total_height = y - initial_y;
- scope_ = new Rectangle(initial_x, initial_y, total_width, total_height);
-
- return new Point(x, y);
- }
-
- private Hierarchy mouseInside(int x, int y)
- {
- Hierarchy entry;
- Hierarchy return_value = null;
-
- if (self_.inside(x, y))
- {
- return_value = this;
- }
- else
- {
- if (scope_.inside(x, y) && (! collapsed_))
- {
- for (int i = 0; i < contained_.size(); i++)
- {
- entry = (Hierarchy)contained_.elementAt(i);
- if ((return_value = entry.mouseInside(x, y)) != null)
- break;
- }
- }
- else
- return_value = null;
- }
-
- return return_value;
- }
-
- private void highlight(Graphics g, boolean lit)
- {
- g.setFont(FONT);
- FontMetrics fm = g.getFontMetrics();
- int string_height = fm.getHeight();
- int x = self_.x + SPACE + TRI_HEIGHT;
- int y = self_.y;
-
- if (icon_ != null)
- x += icon_.iconSize().width + SPACE;
-
- if (lit)
- g.setColor(Color.magenta);
- else
- g.setColor(COLOR);
-
- g.drawString(name_, x, y + (self_.height + string_height)/2);
- }
-
-
- private static void drawShape(Graphics g, int x, int y, boolean dead_end, boolean collapsed)
- {
- int xpoints[] = new int[3];
- int ypoints[] = new int[3];
-
- xpoints[0] = x;
- ypoints[0] = y;
-
- if (dead_end)
- {
- g.fillOval(x, y, TRI_HEIGHT, TRI_HEIGHT);
- }
- else
- {
- // Draw a small collapsed triangle: |>
- if (collapsed)
- {
- xpoints[1] = x;
- xpoints[2] = x + TRI_HEIGHT;
- ypoints[1] = y + TRI_HEIGHT;
- ypoints[2] = y + TRI_HEIGHT/2;
- g.fillPolygon(xpoints, ypoints, 3);
- }
- //Draw a small uncollapsed triangle
- else
- {
- xpoints[1] = x + TRI_HEIGHT;
- xpoints[2] = x + TRI_HEIGHT/2;
- ypoints[1] = y;
- ypoints[2] = y + TRI_HEIGHT;
- g.fillPolygon(xpoints, ypoints, 3);
- }
- }
- }
-
- private static void drawVertHashedLine(Graphics g, int x, int y1, int y2, int hashsize)
- {
- for (int ytemp = y1; ytemp < y2; ytemp += hashsize*3)
- {
- if (y2 - hashsize < ytemp)
- g.drawLine(x, ytemp, x, y2);
- else
- g.drawLine(x, ytemp, x, ytemp + hashsize);
- }
- }
-
- private static void drawHoroHashedLine(Graphics g, int y, int x1, int x2, Color color, int hashsize)
- {
- for (int xtemp = x1; xtemp < x2; xtemp += hashsize*3)
- {
- if (x2 - hashsize < xtemp)
- g.drawLine(xtemp, y, x1, y);
- else
- g.drawLine(xtemp, y, xtemp + hashsize, y);
- }
- }
-}
-
-
diff --git a/java/ImageProcessing/framework/HierarchyAdapter.java b/java/ImageProcessing/framework/HierarchyAdapter.java
deleted file mode 100644
index a265be656ea..00000000000
--- a/java/ImageProcessing/framework/HierarchyAdapter.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-
-class HierarchyAdapter extends Hierarchy
-{
- public HierarchyAdapter(String name, boolean root)
- {
- super(name, root);
- }
-
- public HierarchyAdapter(String name, Icon icon, boolean root)
- {
- super(name, icon, root);
- }
-
- public HierarchyAdapter(String name)
- {
- super(name);
- }
-
- public HierarchyAdapter(String name, Icon icon)
- {
- super(name, icon);
- }
-
- public void paint(Graphics g)
- {
- super.paint(g);
-
- Container p = getParent().getParent();
- p.getLayout ().layoutContainer (p);
- }
-}
diff --git a/java/ImageProcessing/framework/Icon.java b/java/ImageProcessing/framework/Icon.java
deleted file mode 100644
index eed91ed55c7..00000000000
--- a/java/ImageProcessing/framework/Icon.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.applet.*;
-import java.net.*;
-
-public class Icon
-{
- protected Image icon_;
- protected Dimension iconSize_;
-
- Icon()
- {
- super();
- }
-
- Icon(String file_name, Component comp)
- {
- this.icon_ = Toolkit.getDefaultToolkit().getImage(file_name);
- this.loadImage(comp);
- }
-
- Icon(Image icon_image, Component comp)
- {
- this.icon_ = icon_image;
- this.loadImage(comp);
- }
-
- Icon(String url, Applet applet) throws MalformedURLException
- {
- this.icon_ = applet.getImage(new URL(url));
- loadImage(applet);
- }
-
- public void drawIcon(Graphics g, int x, int y, Component comp)
- {
- g.drawImage(this.icon_, x, y, comp);
- }
-
- private void loadImage(Component comp)
- {
- try
- {
- MediaTracker tracker = new MediaTracker(comp);
- tracker.addImage(this.icon_, 0);
- tracker.waitForID(0);
-
- this.iconSize_ = new Dimension(this.icon_.getWidth(comp), this.icon_.getHeight(comp));
- }
- catch (InterruptedException excp)
- {
- System.err.println("Icon::getIcon image failed to load");
- }
- }
-
- public Dimension iconSize()
- {
- return this.iconSize_;
- }
-
- public Image getIconImage()
- {
- return this.icon_;
- }
-
-}
-
-
-
-
diff --git a/java/ImageProcessing/framework/ImageApp.java b/java/ImageProcessing/framework/ImageApp.java
deleted file mode 100644
index 486f45b9afb..00000000000
--- a/java/ImageProcessing/framework/ImageApp.java
+++ /dev/null
@@ -1,303 +0,0 @@
-package imaging.framework;
-
-import java.util.*;
-import java.awt.*;
-import java.net.*;
-import java.io.*;
-import java.awt.image.*;
-import java.applet.*;
-import gjt.Separator;
-import gjt.Util;
-
-public class ImageApp extends Applet
-{
- public void init ()
- {
- // Use BorderLayout for our applet frame
- this.setLayout (new BorderLayout ());
-
- // Now load all the filters specified in the config file
- // this.loadFilters ();
- this.setupButtonPanel ();
- this.add ("Center", this.imageCanvas_);
- // Check if we are running in test mode
- String testFile = getParameter ("testFile");
- if (testFile != null)
- {
- this.tester_ = new Tester (testFile, this);
- this.tester_.initialize ();
- }
- // Initialize the DialogManager
- DialogManager.initialize (this);
- }
-
- private void setupButtonPanel ()
- {
- Panel southPanel = new Panel ();
- southPanel.setLayout (new BorderLayout ());
-
- Panel buttonPanel = new Panel ();
- buttonPanel.setLayout (new GridLayout (1, 5));
-
- this.statusDisplay_ = new StatusDisplay ();
- // Create a panel for all the buttons
- this.filePanel_ = new FilePanel (this);
- this.resetPanel_ = new ResetPanel (this);
- this.zoomPanel_ = new ZoomPanel (this);
- this.filterPanel_ = new FilterPanel (this);
- this.helpPanel_ = new HelpPanel (this);
-
- buttonPanel.add (this.filePanel_);
- buttonPanel.add (this.resetPanel_);
- buttonPanel.add (this.zoomPanel_);
- buttonPanel.add (this.filterPanel_);
- buttonPanel.add (this.helpPanel_);
-
- southPanel.add ("North", new Separator ());
- southPanel.add ("Center", buttonPanel);
- southPanel.add ("South", this.statusDisplay_);
-
- southPanel.resize (400, 400);
-
- // Now add all these components to the main frame
- this.add ("South", southPanel);
- this.add ("North", new Panel ()); // Empty panel (for aesthetics)
- // this.add ("East", new Panel ()); // Empty panel (for aesthetics)
- // this.add ("West", new Panel ()); // Empty panel (for aesthetics)
- }
-
- public void displayStatus (String s)
- {
- this.statusDisplay_.setText (s);
- }
-
- // Handle all action events
- public void zoomFactor (double zoomFactor)
- {
- this.imageCanvas_.zoomFactor (zoomFactor);
- }
-
- public void reloadFilters ()
- {
- this.filterPanel_.loadFilters ();
- repaint ();
- }
-
- public Hashtable filterTable ()
- {
- return this.filterTable_;
- }
-
- public ImageFilter getFilter (String s)
- {
- return (ImageFilter) this.filterTable_.get (s);
- }
-
- public void apply ()
- {
- ImageFilter filter = this.getFilter (this.filterPanel_.choice ().getSelectedItem ());
- this.apply (filter);
- }
-
- public void apply (ImageFilter filter)
- {
- if (filter != null)
- {
- Util.getFrame (this).setCursor (Frame.WAIT_CURSOR);
- this.imageCanvas_.applyFilter (filter);
- Util.getFrame (this).setCursor (Frame.DEFAULT_CURSOR);
- }
- }
-
- public void resetImage ()
- {
- this.imageCanvas_.applyFilter (null);
- }
-
- public int openURL (String url)
- {
- if (url == null)
- return -1;
-
- Image image = null;
- try
- {
- System.out.println("Getting image");
- image = getImage (new URL (url));
- System.out.println("Done");
- }
- catch (MalformedURLException e)
- {
- return -1;
- }
-
- if (image != null)
- {
- // Check if the image was actually loaded. Note that we have
- // to wait for the potential image to finish loading before we
- // know if it is a valid image.
- if (this.imageCanvas_.setImage (image) == -1)
- return -1;
- else
- this.filePanel_.enableSaveButton ();
- }
- else
- return -1;
- return 0;
- }
-
- // maintain compatibility
- public void saveFile (String url)
- {
- this.saveFile (url, null);
- }
-
- public void saveFile (String url, String authentication)
- {
- ImageSender imageSender = new ImageSender (this);
- imageSender.open (this.imageCanvas_.getImage (), url);
- int bytesSent = imageSender.send (authentication);
- if (bytesSent == -1)
- DialogManager.popDialog (DialogType.NOT_SUPPORTED,
- "Server does not support uploading or URL not found");
- }
-
- public Choice getFilters ()
- {
- Choice choice = new Choice ();
-
- // Add the default choice first
- choice.addItem ("Filters:");
-
- // Now do the file processing -- to determine which filters need
- // to be loaded.
-
- // Check if the filename has been previously specified and
- // if not then check if the user has specified the name of the
- // config file
- if (this.configFile_ == null)
- this.configFile_ = getParameter ("configFile");
-
- /*
- if (this.configFile_ == null)
- this.configFile_ = "http://www.cs.wustl.edu/~pjain/java/ACE_wrappers/java/ImageProcessing/framework/filter.conf";
- */
-
- if (this.configFile_ == null)
- this.configFile_ = this.getCodeBase().toString() + "../ImageProcessing/framework/filter.conf";
-
- String configInfo = null;
-
- // Only get the file as a URL if it was specified as an http style parameter!
- if ((this.configFile_ != null) && ((this.configFile_.startsWith("http://")) ||
- (this.configFile_.startsWith("file://")) ||
- (this.configFile_.startsWith("ftp://")))) {
-
- URL url;
-
- try
- {
- System.out.println ("Configuration File: " + this.configFile_);
- // Create a new URL
- url = new URL (this.configFile_);
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (url.openStream ());
-
- // Create a buffer to hold all the data we get
- StringBuffer tempBuf = new StringBuffer ();
- // Keep reading the data until we are done
- String tempString = iStream.readLine ();
- while (tempString != null)
- {
- tempBuf.append (tempString);
- tempBuf.append (" ");
- tempString = iStream.readLine ();
- }
- configInfo = tempBuf.toString ();
- }
- catch (MalformedURLException e)
- {
- System.err.println (e);
- }
- catch (IOException e)
- {
- System.err.println (e);
- }
- }
-
- if (configInfo != null)
- {
- try
- {
- StringTokenizer tokens = new StringTokenizer (configInfo);
- String fullFilterName = null;
- String filterName = null;
- // Now parse the string, picking up filter names. Use these
- // names to load the actual filters as well add new choices to
- // the filter choices.
- while (tokens.hasMoreTokens ())
- {
- // Get the next token
- fullFilterName = tokens.nextToken ();
- filterName = this.extractFilterName (fullFilterName);
-
- System.out.println ("Loading: " + fullFilterName);
- // Load the filter class
- Class c = Class.forName (fullFilterName);
- // Class c = this.filterRepository_.load (filter);
-
- // Add the filter to the Filter Repository
- this.filterTable_.put (filterName,
- (ImageFilter) c.newInstance ());
-
- // Add filter name to the list of filter choices
- choice.addItem (filterName);
- }
- }
- catch (ClassNotFoundException e)
- {
- System.err.println ("Filter not found: " + e);
- return null;
- }
- catch (IllegalAccessException e)
- {
- System.err.println ("Filter not found: " + e);
- return null;
- }
- catch (InstantiationException e)
- {
- System.err.println ("Filter not found: " + e);
- return null;
- }
- }
- return choice;
- }
-
- // Extract the short filter name from the full filter name. For
- // example, this method returns "EmbossFilter" if it is given the
- // string "imaging/filters/EmbossFilter"
- private String extractFilterName (String s)
- {
- String filterName = null;
- StringTokenizer tokens = new StringTokenizer (s, ".");
- while (tokens.hasMoreTokens ())
- filterName = tokens.nextToken ();
- return filterName;
- }
-
- private Panel centerPanel_ = new Panel ();
- private String configFile_ = null;
- private Choice choice_ = null;
- private ImageCanvas imageCanvas_ = new ImageCanvas ();
- private FilePanel filePanel_;
- private ResetPanel resetPanel_;
- private ZoomPanel zoomPanel_;
- private FilterPanel filterPanel_;
- private HelpPanel helpPanel_;
-
- private StatusDisplay statusDisplay_;
- private Hashtable filterTable_ = new Hashtable ();
- private Tester tester_;
-
-}
diff --git a/java/ImageProcessing/framework/ImageByteCounter.java b/java/ImageProcessing/framework/ImageByteCounter.java
deleted file mode 100644
index c907c9f1c92..00000000000
--- a/java/ImageProcessing/framework/ImageByteCounter.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.awt.*;
-import java.applet.*;
-import java.net.*;
-import JACE.OS.*;
-
-public class ImageByteCounter
-{
- public ImageByteCounter (String title, Image image, Applet parent)
- {
- this.image_ = image;
- this.parent_ = parent;
-
- Image im = null;
- try
- {
- im = this.parent_.getImage (new URL (this.parent_.getCodeBase () +
- "../ImageProcessing/framework/" +
- "10.gif"));
- }
- catch (MalformedURLException e)
- {
- ACE.ERROR (e);
- }
-
- indicator_ = new StatusIndicator ("", im);
- }
-
- public int count ()
- {
- int length = 0;
- try
- {
- GIFOutputStream ostream = new GIFOutputStream (indicator_);
- // GIFOutputStream ostream = new GIFOutputStream (null);
- GifEncoder encoder = new GifEncoder (this.image_, ostream);
- encoder.encode ();
-
- length = ostream.count ();
- System.out.println ("send: " + length);
- }
- catch (IOException e)
- {
- ACE.ERROR ("Exception generating gif");
- }
- indicator_.dispose ();
- return length;
- }
-
- Image image_ = null;
- StatusIndicator indicator_ = null;
- boolean done_ = false;
- Applet parent_;
-}
-
-class GIFOutputStream extends OutputStream
-{
- public GIFOutputStream (StatusIndicator indicator)
- {
- super ();
- this.indicator_ = indicator;
- }
-
- public synchronized void write (int b) throws IOException
- {
- bytesWritten_++;
- if (this.indicator_ != null)
- this.indicator_.update (bytesWritten_);
- }
-
- public synchronized void write (byte buf[]) throws IOException
- {
- bytesWritten_ += buf.length;
- if (this.indicator_ != null)
- this.indicator_.update (bytesWritten_);
- }
-
- public synchronized void write (byte buf[], int offset, int length) throws IOException
- {
- bytesWritten_ += length;
- if (this.indicator_ != null)
- this.indicator_.update (bytesWritten_);
- }
-
- public int count ()
- {
- return this.bytesWritten_;
- }
-
- private int bytesWritten_ = 0;
- private StatusIndicator indicator_ = null;
-}
diff --git a/java/ImageProcessing/framework/ImageCanvas.java b/java/ImageProcessing/framework/ImageCanvas.java
deleted file mode 100644
index 182bd54bf9b..00000000000
--- a/java/ImageProcessing/framework/ImageCanvas.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import gjt.Util;
-import JACE.OS.*;
-
-class ImageCanvas extends Canvas
-{
- public static final double MAX_ZOOM = 4.0;
- public static final double MIN_ZOOM = 0.5;
-
- public int setImage (Image image)
- {
- int flags = 0;
- if (image != null)
- {
- // Load the image
- this.tracker_.addImage(image, 0);
- try { this.tracker_.waitForID(0); } catch(InterruptedException excp) {}
-
- // Check if the image was actually loaded. Note that we have
- // to wait for the potential image to finish loading before we
- // know if it is a valid image.
- flags = this.checkImage (image, this);
- if (ACE.BIT_ENABLED (flags, ImageObserver.ERROR))
- return -1;
-
- // If we reached here, it means image was loaded successfully so cache it
- this.image_ = image;
- this.originalImage_ = this.image_;
-
- this.x_ = (this.size ().width - this.image_.getWidth (this))/2;
- this.y_ = (this.size ().height - this.image_.getHeight (this))/2;
- this.original_x_ = this.x_;
- this.original_y_ = this.y_;
- repaint ();
- }
- return 0;
- }
-
- public Image getImage ()
- {
- return this.image_;
- }
-
- public void paint (Graphics g)
- {
- this.setBackground (Color.white);
- if (this.image_ != null)
- g.drawImage(this.image_,
- this.x_, this.y_,
- (int) (this.image_.getWidth (this) * this.zoom_),
- (int) (this.image_.getHeight (this) * this.zoom_),
- this);
- }
-
- public void applyFilter (ImageFilter filter)
- {
- if (this.image_ != null)
- {
- Image temp;
- if (filter == null)
- {
- temp = this.originalImage_;
- this.x_ = this.original_x_;
- this.y_ = this.original_y_;
- this.zoom_ = 1.0;
- }
- else
- temp = this.ip_.processImage(this.image_, filter, this);
-
- this.tracker_.addImage(temp, 0);
- try { this.tracker_.waitForID(0); } catch(InterruptedException excp) {}
-
- this.image_ = temp;
-
- // Originally I needed to flush the pixel data for the image to be
- // drawn properly. When running the applet in appletviewer, the
- // image used to jump around, but running in a browser seems to be
- // ok.
- //this.image_.flush();
- repaint ();
- }
- }
-
- public void zoomFactor (double zoom)
- {
- this.zoom_ *= zoom;
- if (this.zoom_ > ImageCanvas.MAX_ZOOM)
- this.zoom_ = ImageCanvas.MAX_ZOOM;
- else if (this.zoom_ < ImageCanvas.MIN_ZOOM)
- this.zoom_ = ImageCanvas.MIN_ZOOM;
-
- repaint ();
- }
-
- public boolean mouseDown (Event evt, int x, int y)
- {
- if (inBounds (x, y))
- {
- this.selected_ = true;
- this.last_x_ = x;
- this.last_y_ = y;
- }
- return true;
- }
-
- public boolean mouseUp (Event evt, int x, int y)
- {
- this.selected_ = false;
- return true;
- }
-
- public boolean mouseDrag (Event evt, int x, int y)
- {
- if (this.selected_)
- {
- this.x_ = x - (this.last_x_ - this.x_);
- this.y_ = y - (this.last_y_ - this.y_);
- this.last_x_ = x;
- this.last_y_ = y;
- repaint ();
- }
- return true;
- }
-
- public boolean mouseMove (Event evt, int x, int y)
- {
- if (this.image_ != null && inBounds (x, y))
- Util.getFrame (this).setCursor (Frame.HAND_CURSOR);
- else
- Util.getFrame (this).setCursor (Frame.DEFAULT_CURSOR);
- return true;
- }
-
- public boolean mouseExit (Event evt, int x, int y)
- {
- Util.getFrame (this).setCursor (Frame.DEFAULT_CURSOR);
- return true;
- }
-
- // Check if mouse is within the bounds of the image
- private boolean inBounds (int x, int y)
- {
- if (this.image_ == null)
- return false;
- else
- return (x >= this.x_) &&
- (y >= this.y_) &&
- (x <= (this.x_ + this.zoom_ * this.image_.getWidth (this))) &&
- (y <= (this.y_ + this.zoom_ * this.image_.getHeight (this)));
- }
-
- private MediaTracker tracker_ = new MediaTracker(this);
- private Image image_, originalImage_;
- private int x_ = 0, y_ = 0;
- private int original_x_ = 0, original_y_ = 0;
- private int width_ = 0, height_ = 0;
- private ImageProcessor ip_ = new ImageProcessor ();
- private boolean selected_ = false;
- private int last_x_ = 0, last_y_ = 0;
- private double zoom_ = 1.0;
-
-}
-
diff --git a/java/ImageProcessing/framework/ImageEncoder.java b/java/ImageProcessing/framework/ImageEncoder.java
deleted file mode 100644
index a0aac0d559f..00000000000
--- a/java/ImageProcessing/framework/ImageEncoder.java
+++ /dev/null
@@ -1,271 +0,0 @@
-// ImageEncoder - abstract class for writing out an image
-//
-// Copyright (C) 1996 by Jef Poskanzer <jef@acme.com>. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-// SUCH DAMAGE.
-//
-// Visit the ACME Labs Java page for up-to-date versions of this and other
-// fine Java utilities: http://www.acme.com/java/
-
-package imaging.framework;
-
-import java.util.*;
-import java.io.*;
-import java.awt.Image;
-import java.awt.image.*;
-
-/// Abstract class for writing out an image.
-// <P>
-// A framework for classes that encode and write out an image in
-// a particular file format.
-// <P>
-// This provides a simplified rendition of the ImageConsumer interface.
-// It always delivers the pixels as ints in the RGBdefault color model.
-// It always provides them in top-down left-right order.
-// If you want more flexibility you can always implement ImageConsumer
-// directly.
-// <P>
-// <A HREF="/resources/classes/Acme/JPM/Encoders/ImageEncoder.java">Fetch the software.</A><BR>
-// <A HREF="/resources/classes/Acme.tar.Z">Fetch the entire Acme package.</A>
-// <P>
-// @see GifEncoder
-// @see PpmEncoder
-// @see Acme.JPM.Decoders.ImageDecoder
-
-public abstract class ImageEncoder implements ImageConsumer
- {
-
- protected OutputStream out;
-
- private ImageProducer producer;
- private int width = -1;
- private int height = -1;
- private int hintflags = 0;
- private boolean started = false;
- private boolean encoding;
- private IOException iox;
- private static final ColorModel rgbModel = ColorModel.getRGBdefault();
- private Hashtable props = null;
-
- /// Constructor.
- // @param img The image to encode.
- // @param out The stream to write the bytes to.
- public ImageEncoder( Image img, OutputStream out ) throws IOException
- {
- this( img.getSource(), out );
- }
-
- /// Constructor.
- // @param producer The ImageProducer to encode.
- // @param out The stream to write the bytes to.
- public ImageEncoder( ImageProducer producer, OutputStream out ) throws IOException
- {
- this.producer = producer;
- this.out = out;
- }
-
-
- // Methods that subclasses implement.
-
- /// Subclasses implement this to initialize an encoding.
- abstract void encodeStart( int w, int h ) throws IOException;
-
- /// Subclasses implement this to actually write out some bits. They
- // are guaranteed to be delivered in top-down-left-right order.
- // One int per pixel, index is row * scansize + off + col,
- // RGBdefault (AARRGGBB) color model.
- abstract void encodePixels(
- int x, int y, int w, int h, int[] rgbPixels, int off, int scansize )
- throws IOException;
-
- /// Subclasses implement this to finish an encoding.
- abstract void encodeDone() throws IOException;
-
-
- // Our own methods.
-
- /// Call this after initialization to get things going.
- public synchronized void encode() throws IOException
- {
- encoding = true;
- iox = null;
- producer.startProduction( this );
- while ( encoding )
- try
- {
- wait();
- }
- catch ( InterruptedException e ) {}
- if ( iox != null )
- throw iox;
- }
-
- private boolean accumulate = false;
- private int[] accumulator;
-
- private void encodePixelsWrapper(
- int x, int y, int w, int h, int[] rgbPixels, int off, int scansize )
- throws IOException
- {
- if ( ! started )
- {
- started = true;
- encodeStart( width, height );
- if ( ( hintflags & TOPDOWNLEFTRIGHT ) == 0 )
- {
- accumulate = true;
- accumulator = new int[width * height];
- }
- }
- if ( accumulate )
- for ( int row = 0; row < h; ++row )
- System.arraycopy(
- rgbPixels, row * scansize + off,
- accumulator, ( y + row ) * width + x,
- w );
- else
- encodePixels( x, y, w, h, rgbPixels, off, scansize );
- }
-
- private void encodeFinish() throws IOException
- {
- if ( accumulate )
- {
- encodePixels( 0, 0, width, height, accumulator, 0, width );
- accumulator = null;
- accumulate = false;
- }
- }
-
- private synchronized void stop()
- {
- encoding = false;
- notifyAll();
- }
-
-
- // Methods from ImageConsumer.
-
- public void setDimensions( int width, int height )
- {
- this.width = width;
- this.height = height;
- }
-
- public void setProperties( Hashtable props )
- {
- this.props = props;
- }
-
- public void setColorModel( ColorModel model )
- {
- // Ignore.
- }
-
- public void setHints( int hintflags )
- {
- this.hintflags = hintflags;
- }
-
- public void setPixels(
- int x, int y, int w, int h, ColorModel model, byte[] pixels,
- int off, int scansize )
- {
- int[] rgbPixels = new int[w];
- for ( int row = 0; row < h; ++row )
- {
- int rowOff = off + row * scansize;
- for ( int col = 0; col < w; ++col )
- rgbPixels[col] = model.getRGB( pixels[rowOff + col] & 0xff );
- try
- {
- encodePixelsWrapper( x, y + row, w, 1, rgbPixels, 0, w );
- }
- catch ( IOException e )
- {
- iox = e;
- stop();
- return;
- }
- }
- }
-
- public void setPixels(
- int x, int y, int w, int h, ColorModel model, int[] pixels,
- int off, int scansize )
- {
- if ( model == rgbModel )
- {
- try
- {
- encodePixelsWrapper( x, y, w, h, pixels, off, scansize );
- }
- catch ( IOException e )
- {
- iox = e;
- stop();
- return;
- }
- }
- else
- {
- int[] rgbPixels = new int[w];
- for ( int row = 0; row < h; ++row )
- {
- int rowOff = off + row * scansize;
- for ( int col = 0; col < w; ++col )
- rgbPixels[col] = model.getRGB( pixels[rowOff + col] );
- try
- {
- encodePixelsWrapper( x, y + row, w, 1, rgbPixels, 0, w );
- }
- catch ( IOException e )
- {
- iox = e;
- stop();
- return;
- }
- }
- }
- }
-
- public void imageComplete( int status )
- {
- producer.removeConsumer( this );
- if ( status == ImageConsumer.IMAGEABORTED )
- iox = new IOException( "image aborted" );
- else
- {
- try
- {
- encodeFinish();
- encodeDone();
- }
- catch ( IOException e )
- {
- iox = e;
- }
- }
- stop();
- }
-
- }
diff --git a/java/ImageProcessing/framework/ImageProcessor.java b/java/ImageProcessing/framework/ImageProcessor.java
deleted file mode 100644
index 422298d508f..00000000000
--- a/java/ImageProcessing/framework/ImageProcessor.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import java.util.Vector;
-
-public class ImageProcessor
-{
- private Vector pipeline_ = new Vector();
-
-
- public ImageProcessor()
- {
- }
-
- public void addFilter(String filter_name, ImageFilter filter)
- {
- pipeline_.addElement(new FilterNode(filter_name, filter));
- }
-
- public boolean removeFilter(String name)
- {
- FilterNode filter_node;
-
- for (int i = 0; i < pipeline_.size(); i++)
- {
- filter_node = (FilterNode)pipeline_.elementAt(i);
- if (name.equals(filter_node.getName()))
- {
- pipeline_.removeElementAt(i);
- pipeline_.trimToSize();
- return true;
- }
- }
-
- return false;
- }
-
- public Image processImage(Image image, ImageFilter filter, Component component)
- {
- Image old_image = image, new_image = old_image;
- MediaTracker tracker = new MediaTracker(component);
-
- try
- {
- new_image = component.createImage(new FilteredImageSource(old_image.getSource(), filter));
- tracker.addImage(new_image, 0);
- tracker.waitForID(0);
- }
- catch(InterruptedException excp)
- {
- System.out.println("ImageProcessor::processImage Image failed to load.");
- System.out.println(excp);
- return null;
- }
-
- return new_image;
- }
-
- public Image processImage(Image image, Component component)
- {
- Image old_image = image, new_image = null;
- ImageFilter image_filter;
- FilterNode filter_node;
- MediaTracker tracker = new MediaTracker(component);
-
- try
- {
- for (int i = 0; i < pipeline_.size(); i++)
- {
- filter_node = (FilterNode) pipeline_.elementAt(i);
- image_filter = filter_node.getFilter();
- new_image = component.createImage(new FilteredImageSource(old_image.getSource(), image_filter));
- old_image = new_image;
- tracker.addImage(new_image, 0);
- tracker.waitForID(0);
- }
- }
- catch(InterruptedException excp)
- {
- System.out.println("ImageProcessor::processImage Image failed to load.");
- System.out.println(excp);
- return null;
- }
-
- return new_image;
- }
-}
-
-
-class FilterNode
-{
- private String name_;
- private ImageFilter filter_;
-
- FilterNode(String name, ImageFilter filter)
- {
- name_ = name;
- filter_ = filter;
- }
-
- String getName()
- {
- return name_;
- }
-
- ImageFilter getFilter()
- {
- return filter_;
- }
-}
diff --git a/java/ImageProcessing/framework/ImageSender.java b/java/ImageProcessing/framework/ImageSender.java
deleted file mode 100644
index c1659267537..00000000000
--- a/java/ImageProcessing/framework/ImageSender.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.net.*;
-import java.io.*;
-import java.applet.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ImageSender
-{
- public ImageSender (Applet parent)
- {
- this.parent_ = parent;
- }
-
- // ******************
- // Currently bombs if it's not in an http or / format
- //
- public void open (Image image, String url)
- {
- this.image_ = image;
-
- this.hostname_ = url;
- if (this.hostname_.startsWith ("http://"))
- this.hostname_ = this.hostname_.substring (7);
-
- int index = -1;
- if ((index = this.hostname_.indexOf (":")) != -1)
- {
- String temp = this.hostname_.substring (index + 1);
- int i = -1;
- if ((i = temp.indexOf ("/")) != -1)
- {
- this.port_ = (new Integer (temp.substring (0, i))).intValue ();
- this.filename_ = temp.substring (i);
- }
- this.hostname_ = this.hostname_.substring (0, index);
- }
- else
- {
- int i = -1;
- if ((i = this.hostname_.indexOf ("/")) != -1)
- {
- this.filename_ = hostname_.substring (i);
- }
- this.hostname_ = this.hostname_.substring (0, i);
- this.port_ = 80;
- }
- }
-
- // Maintain compatibility
- public int send ()
- {
- return send(null);
- }
-
- /*******************************************
- * The authenication string allows the PUT command to work if the server
- * accepts the basic HTTP 1.1 encryption scheme
- *******************************************/
- public int send (String authentication)
- {
- ImageByteCounter byteCounter = new ImageByteCounter ("", this.image_, this.parent_);
- // StatusIndicator indicator = new StatusIndicator ("");
- // ImageByteCounter byteCounter = new ImageByteCounter ("", this.image_, indicator);
- int length = byteCounter.count ();
- // indicator.dispose ();
- // First determine how many bytes we will be sending
- /*
- try
- {
- GIFOutputStream ostream = new GIFOutputStream ();
- GifEncoder encoder = new GifEncoder (this.image_, ostream);
- encoder.encode ();
-
- length = ostream.count ();
- System.out.println ("send: " + length);
- }
- catch (IOException e)
- {
- ACE.ERROR ("Exception generating gif");
- }
- */
-
- GIFHandler gifHandler;
- if (authentication == null)
- gifHandler = new GIFHandler (this.filename_, this.image_, length);
- else
- gifHandler = new GIFHandler (this.filename_, this.image_, length, authentication);
-
- try
- {
- // Connect to the server and send the image
- this.connector_.open (this.hostname_, this.port_);
- this.connector_.connect (gifHandler);
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- if (gifHandler.returnCode () != -1)
- return gifHandler.bytesWritten ();
- else
- return -1;
- }
-
- private Image image_ = null;
- String filename_;
- String hostname_;
- int port_;
- Connector connector_ = new Connector ();
- Applet parent_;
-}
-
diff --git a/java/ImageProcessing/framework/IntHashtable.java b/java/ImageProcessing/framework/IntHashtable.java
deleted file mode 100644
index 95e6cbc25e0..00000000000
--- a/java/ImageProcessing/framework/IntHashtable.java
+++ /dev/null
@@ -1,396 +0,0 @@
-// IntHashtable - a Hashtable that uses ints as the keys
-//
-// This is 90% based on JavaSoft's java.util.Hashtable.
-//
-// Visit the ACME Labs Java page for up-to-date versions of this and other
-// fine Java utilities: http://www.acme.com/java/
-
-package imaging.framework;
-
-import java.util.*;
-
-/// A Hashtable that uses ints as the keys.
-// <P>
-// Use just like java.util.Hashtable, except that the keys must be ints.
-// This is much faster than creating a new Integer for each access.
-// <P>
-// <A HREF="/resources/classes/Acme/IntHashtable.java">Fetch the software.</A><BR>
-// <A HREF="/resources/classes/Acme.tar.Z">Fetch the entire Acme package.</A>
-// <P>
-// @see java.util.Hashtable
-
-public class IntHashtable extends Dictionary implements Cloneable
- {
- /// The hash table data.
- private IntHashtableEntry table[];
-
- /// The total number of entries in the hash table.
- private int count;
-
- /// Rehashes the table when count exceeds this threshold.
- private int threshold;
-
- /// The load factor for the hashtable.
- private float loadFactor;
-
- /// Constructs a new, empty hashtable with the specified initial
- // capacity and the specified load factor.
- // @param initialCapacity the initial number of buckets
- // @param loadFactor a number between 0.0 and 1.0, it defines
- // the threshold for rehashing the hashtable into
- // a bigger one.
- // @exception IllegalArgumentException If the initial capacity
- // is less than or equal to zero.
- // @exception IllegalArgumentException If the load factor is
- // less than or equal to zero.
- public IntHashtable( int initialCapacity, float loadFactor )
- {
- if ( initialCapacity <= 0 || loadFactor <= 0.0 )
- throw new IllegalArgumentException();
- this.loadFactor = loadFactor;
- table = new IntHashtableEntry[initialCapacity];
- threshold = (int) ( initialCapacity * loadFactor );
- }
-
- /// Constructs a new, empty hashtable with the specified initial
- // capacity.
- // @param initialCapacity the initial number of buckets
- public IntHashtable( int initialCapacity )
- {
- this( initialCapacity, 0.75f );
- }
-
- /// Constructs a new, empty hashtable. A default capacity and load factor
- // is used. Note that the hashtable will automatically grow when it gets
- // full.
- public IntHashtable()
- {
- this( 101, 0.75f );
- }
-
- /// Returns the number of elements contained in the hashtable.
- public int size()
- {
- return count;
- }
-
- /// Returns true if the hashtable contains no elements.
- public boolean isEmpty()
- {
- return count == 0;
- }
-
- /// Returns an enumeration of the hashtable's keys.
- // @see IntHashtable#elements
- public synchronized Enumeration keys()
- {
- return new IntHashtableEnumerator( table, true );
- }
-
- /// Returns an enumeration of the elements. Use the Enumeration methods
- // on the returned object to fetch the elements sequentially.
- // @see IntHashtable#keys
- public synchronized Enumeration elements()
- {
- return new IntHashtableEnumerator( table, false );
- }
-
- /// Returns true if the specified object is an element of the hashtable.
- // This operation is more expensive than the containsKey() method.
- // @param value the value that we are looking for
- // @exception NullPointerException If the value being searched
- // for is equal to null.
- // @see IntHashtable#containsKey
- public synchronized boolean contains( Object value )
- {
- if ( value == null )
- throw new NullPointerException();
- IntHashtableEntry tab[] = table;
- for ( int i = tab.length ; i-- > 0 ; )
- {
- for ( IntHashtableEntry e = tab[i] ; e != null ; e = e.next )
- {
- if ( e.value.equals( value ) )
- return true;
- }
- }
- return false;
- }
-
- /// Returns true if the collection contains an element for the key.
- // @param key the key that we are looking for
- // @see IntHashtable#contains
- public synchronized boolean containsKey( int key )
- {
- IntHashtableEntry tab[] = table;
- int hash = key;
- int index = ( hash & 0x7FFFFFFF ) % tab.length;
- for ( IntHashtableEntry e = tab[index] ; e != null ; e = e.next )
- {
- if ( e.hash == hash && e.key == key )
- return true;
- }
- return false;
- }
-
- /// Gets the object associated with the specified key in the
- // hashtable.
- // @param key the specified key
- // @returns the element for the key or null if the key
- // is not defined in the hash table.
- // @see IntHashtable#put
- public synchronized Object get( int key )
- {
- IntHashtableEntry tab[] = table;
- int hash = key;
- int index = ( hash & 0x7FFFFFFF ) % tab.length;
- for ( IntHashtableEntry e = tab[index] ; e != null ; e = e.next )
- {
- if ( e.hash == hash && e.key == key )
- return e.value;
- }
- return null;
- }
-
- /// A get method that takes an Object, for compatibility with
- // java.util.Dictionary. The Object must be an Integer.
- public Object get( Object okey )
- {
- if ( ! ( okey instanceof Integer ) )
- throw new InternalError( "key is not an Integer" );
- Integer ikey = (Integer) okey;
- int key = ikey.intValue();
- return get( key );
- }
-
- /// Rehashes the content of the table into a bigger table.
- // This method is called automatically when the hashtable's
- // size exceeds the threshold.
- protected void rehash()
- {
- int oldCapacity = table.length;
- IntHashtableEntry oldTable[] = table;
-
- int newCapacity = oldCapacity * 2 + 1;
- IntHashtableEntry newTable[] = new IntHashtableEntry[newCapacity];
-
- threshold = (int) ( newCapacity * loadFactor );
- table = newTable;
-
- for ( int i = oldCapacity ; i-- > 0 ; )
- {
- for ( IntHashtableEntry old = oldTable[i] ; old != null ; )
- {
- IntHashtableEntry e = old;
- old = old.next;
-
- int index = ( e.hash & 0x7FFFFFFF ) % newCapacity;
- e.next = newTable[index];
- newTable[index] = e;
- }
- }
- }
-
- /// Puts the specified element into the hashtable, using the specified
- // key. The element may be retrieved by doing a get() with the same key.
- // The key and the element cannot be null.
- // @param key the specified key in the hashtable
- // @param value the specified element
- // @exception NullPointerException If the value of the element
- // is equal to null.
- // @see IntHashtable#get
- // @return the old value of the key, or null if it did not have one.
- public synchronized Object put( int key, Object value )
- {
- // Make sure the value is not null.
- if ( value == null )
- throw new NullPointerException();
-
- // Makes sure the key is not already in the hashtable.
- IntHashtableEntry tab[] = table;
- int hash = key;
- int index = ( hash & 0x7FFFFFFF ) % tab.length;
- for ( IntHashtableEntry e = tab[index] ; e != null ; e = e.next )
- {
- if ( e.hash == hash && e.key == key )
- {
- Object old = e.value;
- e.value = value;
- return old;
- }
- }
-
- if ( count >= threshold )
- {
- // Rehash the table if the threshold is exceeded.
- rehash();
- return put( key, value );
- }
-
- // Creates the new entry.
- IntHashtableEntry e = new IntHashtableEntry();
- e.hash = hash;
- e.key = key;
- e.value = value;
- e.next = tab[index];
- tab[index] = e;
- ++count;
- return null;
- }
-
- /// A put method that takes an Object, for compatibility with
- // java.util.Dictionary. The Object must be an Integer.
- public Object put( Object okey, Object value )
- {
- if ( ! ( okey instanceof Integer ) )
- throw new InternalError( "key is not an Integer" );
- Integer ikey = (Integer) okey;
- int key = ikey.intValue();
- return put( key, value );
- }
-
- /// Removes the element corresponding to the key. Does nothing if the
- // key is not present.
- // @param key the key that needs to be removed
- // @return the value of key, or null if the key was not found.
- public synchronized Object remove( int key )
- {
- IntHashtableEntry tab[] = table;
- int hash = key;
- int index = ( hash & 0x7FFFFFFF ) % tab.length;
- for ( IntHashtableEntry e = tab[index], prev = null ; e != null ; prev = e, e = e.next )
- {
- if ( e.hash == hash && e.key == key )
- {
- if ( prev != null )
- prev.next = e.next;
- else
- tab[index] = e.next;
- --count;
- return e.value;
- }
- }
- return null;
- }
-
- /// A remove method that takes an Object, for compatibility with
- // java.util.Dictionary. The Object must be an Integer.
- public Object remove( Object okey )
- {
- if ( ! ( okey instanceof Integer ) )
- throw new InternalError( "key is not an Integer" );
- Integer ikey = (Integer) okey;
- int key = ikey.intValue();
- return remove( key );
- }
-
- /// Clears the hash table so that it has no more elements in it.
- public synchronized void clear()
- {
- IntHashtableEntry tab[] = table;
- for ( int index = tab.length; --index >= 0; )
- tab[index] = null;
- count = 0;
- }
-
- /// Creates a clone of the hashtable. A shallow copy is made,
- // the keys and elements themselves are NOT cloned. This is a
- // relatively expensive operation.
- public synchronized Object clone()
- {
- try
- {
- IntHashtable t = (IntHashtable) super.clone();
- t.table = new IntHashtableEntry[table.length];
- for ( int i = table.length ; i-- > 0 ; )
- t.table[i] = ( table[i] != null ) ?
- (IntHashtableEntry) table[i].clone() : null;
- return t;
- }
- catch ( CloneNotSupportedException e)
- {
- // This shouldn't happen, since we are Cloneable.
- throw new InternalError();
- }
- }
-
- /// Converts to a rather lengthy String.
- public synchronized String toString()
- {
- int max = size() - 1;
- StringBuffer buf = new StringBuffer();
- Enumeration k = keys();
- Enumeration e = elements();
- buf.append( "{" );
-
- for ( int i = 0; i <= max; ++i )
- {
- String s1 = k.nextElement().toString();
- String s2 = e.nextElement().toString();
- buf.append( s1 + "=" + s2 );
- if ( i < max )
- buf.append( ", " );
- }
- buf.append( "}" );
- return buf.toString();
- }
- }
-
-
-class IntHashtableEntry
- {
- int hash;
- int key;
- Object value;
- IntHashtableEntry next;
-
- protected Object clone()
- {
- IntHashtableEntry entry = new IntHashtableEntry();
- entry.hash = hash;
- entry.key = key;
- entry.value = value;
- entry.next = ( next != null ) ? (IntHashtableEntry) next.clone() : null;
- return entry;
- }
- }
-
-
-class IntHashtableEnumerator implements Enumeration
- {
- boolean keys;
- int index;
- IntHashtableEntry table[];
- IntHashtableEntry entry;
-
- IntHashtableEnumerator( IntHashtableEntry table[], boolean keys )
- {
- this.table = table;
- this.keys = keys;
- this.index = table.length;
- }
-
- public boolean hasMoreElements()
- {
- if ( entry != null )
- return true;
- while ( index-- > 0 )
- if ( ( entry = table[index] ) != null )
- return true;
- return false;
- }
-
- public Object nextElement()
- {
- if ( entry == null )
- while ( ( index-- > 0 ) && ( ( entry = table[index] ) == null ) )
- ;
- if ( entry != null )
- {
- IntHashtableEntry e = entry;
- entry = e.next;
- return keys ? new Integer( e.key ) : e.value;
- }
- throw new NoSuchElementException( "IntHashtableEnumerator" );
- }
- }
diff --git a/java/ImageProcessing/framework/ListFiles.java b/java/ImageProcessing/framework/ListFiles.java
deleted file mode 100644
index 7abe067341c..00000000000
--- a/java/ImageProcessing/framework/ListFiles.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package imaging.framework;
-
-import java.net.*;
-import java.io.*;
-import java.applet.*;
-
-public class ListFiles
-{
- public ListFiles ()
- {
- }
-
- public ListFiles (FileBrowser browser, Applet parent)
- {
- this.browser_ = browser;
- try
- {
- this.fileIcon_ = new Icon (parent.getCodeBase () +
- "../ImageProcessing/framework/" +
- "doc01.gif",
- parent);
- this.dirIcon_ = new Icon (parent.getCodeBase () +
- "../ImageProcessing/framework/" +
- "file03.gif",
- parent);
- }
- catch (MalformedURLException e)
- {
- }
- }
-
- public String stripProtocolHeader (String url)
- {
- if (url.startsWith ("http://"))
- {
- return url.substring (7);
- }
- else
- return url;
- }
-
- public int listFiles (String url, FileNode fileNode)
- {
- String s = this.stripProtocolHeader (url);
- String hostname = s;
- String directory = null;
- int index = -1;
-
- if ((index = s.indexOf ("/")) != -1)
- {
- hostname = s.substring (0, index);
- directory = s.substring (index);
- }
- return this.listFiles (hostname, directory, fileNode);
- }
-
- public int listFiles (String url, String directory, FileNode fileNode)
- {
- boolean validDirectory = false;
- int count = 0;
- String hostname = this.stripProtocolHeader (url);
- this.url_ = url;
- this.directory_ = directory;
- try
- {
- Socket sock = new Socket (hostname, 80);
- PrintStream out = new PrintStream (sock.getOutputStream ());
- DataInputStream in = new DataInputStream (sock.getInputStream ());
- System.out.println ("Connected to: " + hostname);
-
- String request = null;
- if (directory.endsWith ("/"))
- request = "GET " + directory + "\n\n";
- else
- request = "GET " + directory + "/\n\n";
-
- System.out.println ("Sending request: " + request);
-
- // Send the request
- out.println (request);
-
- String reply = null;
- // Receive the reply
-
- // Read all the data in a loop. Search for "Parent Directory"
- // to verify that this indeed is a directory. If we encounter
- // the string "<HTML>" then assume that this is an HTML page
- // and therefore the directory contained "index.html"
- while ((reply = in.readLine ()) != null)
- {
- if (validDirectory)
- this.parse (reply, fileNode);
- else
- {
- // Take a guess at the type of data we get back
- if (reply.indexOf ("Parent Directory") != -1)
- validDirectory = true;
- else if ((reply.toUpperCase ().indexOf ("<HTML>") != -1) ||
- (reply.toUpperCase ().indexOf ("<P>") != -1) ||
- (reply.toUpperCase ().indexOf ("<TABLE") != -1))
- return 0;
- }
- }
- }
- catch (MalformedURLException e)
- {
- System.err.println (e);
- }
- catch (IOException e)
- {
- System.err.println (e);
- }
- if (validDirectory == false)
- return -1;
- return 1;
- }
-
- private int parse (String s, FileNode fileNode)
- {
- int i= -1;
- int j = -1;
- int startIndex = -1;
- int endIndex = -1;
- boolean isFile = true;
- String name = null;
-
- if ((i = s.indexOf ("HREF=")) != -1)
- startIndex = i + 6;
- else
- return -1;
-
- if ((j = s.indexOf (">", i)) != -1)
- endIndex = j - 1;
- else
- return -1;
-
- // Check if this is a directory
- if (s.charAt (endIndex - 1) == '/')
- isFile = false;
-
- if (endIndex >= startIndex)
- {
- name = s.substring (startIndex, endIndex);
- if (browser_ != null)
- {
- // System.out.println (name);
- if (isFile)
- fileNode.addEntry (new FileNode (name, this.fileIcon_, null,
- fileNode.app ()));
- else
- {
- FileNode f = new FileNode (name, this.dirIcon_, this,
- fileNode.app ());
- fileNode.addEntry (f);
- f.setExpandable (true);
- }
- }
- }
- return 0;
- }
-
- private FileBrowser browser_ = null;
- private String url_ = null;
- private String directory_ = null;
- private Icon fileIcon_;
- private Icon dirIcon_;
-}
diff --git a/java/ImageProcessing/framework/LoadURLFrame.java b/java/ImageProcessing/framework/LoadURLFrame.java
deleted file mode 100755
index 610d9eaafa8..00000000000
--- a/java/ImageProcessing/framework/LoadURLFrame.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import java.net.*;
-import java.io.*;
-
-/******************************************************
- * Future idea:
- *
- * Create a smart button class with an invoke method that's
- * to be called when the button is pressed.
- *
- * Subclasses override the invoke method to define
- * specific behavior.
- *
- * That would allow things like load and save frames
- * to be almost exactly the same -- one could inherit
- * from the other and override addButtons, etc
- *****************************************************/
-
-class LoadURLFrame extends Frame
-{
- public LoadURLFrame (String title, ImageApp parent)
- {
- super (title);
-
- this.parent_ = parent;
- this.resize (500,130);
-
- this.addButtons();
- }
-
- private void addButtons()
- {
- this.setLayout (new BorderLayout ());
-
- Panel textPanel = new Panel ();
- textPanel.setLayout (new BorderLayout ());
- textPanel.add ("North", new Label ("Image Location:"));
- textPanel.add ("Center", this.openURLText_);
-
- Panel buttonPanel = new Panel ();
- buttonPanel.setLayout (new FlowLayout (FlowLayout.CENTER));
-
- buttonPanel.add (this.openButton_);
-
- buttonPanel.add (this.clearButton_);
- buttonPanel.add (this.cancelButton_);
-
- this.add ("North", textPanel);
- this.add ("South", buttonPanel);
- }
-
- private int browseFiles (String url)
- {
- fileBrowser_ = new FileBrowser ("Browse", this.parent_);
- ListFiles list = new ListFiles (this.fileBrowser_, this.parent_);
- return this.fileBrowser_.initialize (url, list);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.openButton_)
- {
- this.getURL ();
- }
- else if (e.target == this.clearButton_)
- {
- this.openURLText_.setText (new String ());
- this.openURLText_.requestFocus ();
- }
- else if (e.target == this.cancelButton_)
- this.dispose ();
- validate ();
- return true;
- }
- else
- return false;
- }
-
- public boolean keyDown (Event e, int key)
- {
- if (key == 10)
- {
- this.getURL ();
- return true;
- }
- else
- return false;
- }
-
- private void getURL ()
- {
- this.hide ();
- String url = this.openURLText_.getText ();
- this.dispose ();
-
- // The following is only for debugging
- if (url.compareTo ("ru") == 0)
- url = "http://www.cs/~pjain/gifs/";
- else if (url.compareTo ("pj") == 0)
- url = "http://www.cs/~pjain/myphoto.gif";
-
- if (!url.endsWith ("/") &&
- (this.parent_.openURL (url) != -1)) // Try to open it as an image
- return;
- else
- {
- ListFiles list = new ListFiles ();
- switch (this.browseFiles (url))
- {
- case 1:
- this.fileBrowser_.show ();
- break;
- case 0:
- DialogManager.popDialog (DialogType.MALFORMED_URL,
- "Error: Directory contains index.html");
- break;
- default:
- DialogManager.popDialog (DialogType.MALFORMED_URL,
- "Error: Not a valid image or URL not found");
- break;
- }
- }
- }
-
- // Create the Open URL Frame and also the buttons which appear in
- // it
- private Button openButton_ = new Button ("Open");
- private Button clearButton_ = new Button ("Clear");
- private Button cancelButton_ = new Button ("Cancel");
-
- private TextField openURLText_ = new TextField (40);
-
- private FileBrowser fileBrowser_ = null;
- private ImageApp parent_;
-
-}
diff --git a/java/ImageProcessing/framework/MedJava.html b/java/ImageProcessing/framework/MedJava.html
deleted file mode 100644
index fe9ce09e7eb..00000000000
--- a/java/ImageProcessing/framework/MedJava.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#888888">
-
-<HR>
-<APPLET CODEBASE="/classes/" CODE="imaging.framework.ImageApp.class" width=700 height=700>
-<param name=filename value="myphoto.gif">
-
-</APPLET>
-<HR>
-
-</HTML>
diff --git a/java/ImageProcessing/framework/Options.java b/java/ImageProcessing/framework/Options.java
deleted file mode 100644
index edbe90ba904..00000000000
--- a/java/ImageProcessing/framework/Options.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-
-class Options
-{
- // Set GridBagConstraints
- public static void constrain (Container container, Component component,
- int gridx, int gridy,
- int gridwidth, int gridheight,
- int fill, int anchor)
- {
- GridBagConstraints c = new GridBagConstraints ();
- GridBagLayout gbl = (GridBagLayout) container.getLayout ();
-
- c.gridx = gridx;
- c.gridy = gridy;
- c.gridwidth = gridwidth;
- c.gridheight = gridheight;
- c.fill = fill;
- c.anchor = anchor;
- gbl.setConstraints (component, c);
- container.add (component);
- }
-}
diff --git a/java/ImageProcessing/framework/SaveURLFrame.java b/java/ImageProcessing/framework/SaveURLFrame.java
deleted file mode 100755
index c3b6adf3490..00000000000
--- a/java/ImageProcessing/framework/SaveURLFrame.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import java.net.*;
-import java.io.*;
-
-/******************************************************
- * Future idea:
- *
- * Create a smart button class with an invoke method that's
- * to be called when the button is pressed.
- *
- * Subclasses override the invoke method to define
- * specific behavior.
- *
- * That would allow things like load and save frames
- * to be almost exactly the same -- one could inherit
- * from the other and override addButtons, etc
- *****************************************************/
-
-
-class SaveURLFrame extends Frame
-{
- public SaveURLFrame (String title, ImageApp parent)
- {
- super (title);
-
- this.parent_ = parent;
- this.resize (500,200);
-
- this.addButtons();
- }
-
- private void addButtons()
- {
- this.setLayout (new BorderLayout ());
-
- Panel textPanels = new Panel();
- textPanels.setLayout(new BorderLayout());
-
- Panel URLPanel = new Panel ();
- URLPanel.setLayout (new BorderLayout ());
- URLPanel.add ("North", new Label ("Image Location:"));
- URLPanel.add ("Center", this.openURLText_);
-
- // Password panel
- Panel pwPanel = new Panel();
- pwPanel.setLayout (new BorderLayout ());
- pwPanel.add ("North", new Label ("Authentication:"));
- pwPanel.add ("Center", this.passwordText_);
-
- textPanels.add("North", URLPanel);
- textPanels.add("South", pwPanel);
-
- Panel buttonPanel = new Panel ();
- buttonPanel.setLayout (new FlowLayout (FlowLayout.CENTER));
-
- buttonPanel.add (this.saveButton_);
- buttonPanel.add (this.clearButton_);
- buttonPanel.add (this.cancelButton_);
-
- this.add ("North", textPanels);
- this.add ("South", buttonPanel);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.saveButton_)
- {
- this.saveFile ();
- }
- else if (e.target == this.clearButton_)
- {
- this.openURLText_.setText (new String ());
- this.openURLText_.requestFocus ();
- }
- else if (e.target == this.cancelButton_)
- this.dispose ();
- validate ();
- return true;
- }
- else
- return false;
- }
-
- public boolean keyDown (Event e, int key)
- {
- if (key == 10)
- {
- this.saveFile ();
- return true;
- }
- else
- return false;
- }
-
- private void saveFile ()
- {
- String url = this.openURLText_.getText ();
- String password = this.passwordText_.getText();
- this.hide ();
- this.dispose ();
-
- // The following is only for debugging
- if (url.startsWith ("#"))
- url = "http://merengue.cs:5432/" + url.substring (1);
-
- if ((password != null) && (password.length() > 0))
- this.parent_.saveFile (url, password);
- else
- this.parent_.saveFile (url);
- }
-
-
- // Create the Open URL Frame and also the buttons which appear in
- // it
- private Button saveButton_ = new Button ("Save");
- private Button clearButton_ = new Button ("Clear");
- private Button cancelButton_ = new Button ("Cancel");
-
- private TextField openURLText_ = new TextField (40);
- private TextField passwordText_ = new TextField (40);
-
- private ImageApp parent_;
-
- // Flag indicating if this is a load window or a save window
- private boolean open_ = true;
-
-}
diff --git a/java/ImageProcessing/framework/Separator.java b/java/ImageProcessing/framework/Separator.java
deleted file mode 100644
index 6bd610e1ad9..00000000000
--- a/java/ImageProcessing/framework/Separator.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A separator that is drawn either vertically or horizontally
- * depending upon how it is laid out. Can be drawn either
- * etched-in or etched-out, with varying thicknesses. Both
- * thickness and etching are settable at construction time
- * only.<p>
- *
- * Default thickness is 2 pixels and default etching is
- * Etching.IN. Note that thicknesses greater than 4 loose the
- * etching effect.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Etching
- * @see gjt.test.SeparatorTest
- */
-public class Separator extends Canvas {
- static private Etching _defaultEtching = Etching.IN;
- static private int _defaultThickness = 2;
-
- private Etching etching;
- private int thickness;
-
- public Separator() {
- this(_defaultThickness, _defaultEtching);
- }
- public Separator(int thickness) {
- this(thickness, _defaultEtching);
- }
- public Separator(Etching etching) {
- this(_defaultThickness, etching);
- }
- public Separator(int thickness, Etching etching) {
- this.etching = etching;
- this.thickness = thickness;
- resize(thickness, thickness);
- }
- public Dimension minimumSize() {
- return preferredSize();
- }
- public Dimension preferredSize() {
- return new Dimension(thickness, thickness);
- }
- public void paint(Graphics g) {
- Dimension size = size();
- Color brighter = getBackground().brighter().brighter();
- Color darker = getBackground().darker().darker();
-
- if(etching == Etching.IN) {
- if(size.width > size.height)
- paintHorizontal(g, size, darker, brighter);
- else
- paintVertical(g, size, darker, brighter);
- }
- else {
- if(size.width > size.height)
- paintHorizontal(g, size, brighter, darker);
- else
- paintVertical(g, size, brighter, darker);
- }
- }
- public String paramString() {
- Dimension size = size();
- Orientation orient = size.width > size.height ?
- Orientation.HORIZONTAL :
- Orientation.VERTICAL;
- return super.paramString() + "thickness=" +
- thickness + "," + etching + "," + orient;
- }
- private void paintHorizontal(Graphics g, Dimension size,
- Color top, Color bottom) {
- g.setColor(top);
- g.fillRect(0, (size.height/2) - (thickness/2),
- size.width, thickness/2);
- g.setColor(bottom);
- g.fillRect(0, size.height/2, size.width, thickness/2);
- }
- private void paintVertical(Graphics g, Dimension size,
- Color left, Color right) {
- g.setColor(left);
- g.fillRect((size.width/2) - (thickness/2),
- 0, thickness/2, size.height);
- g.setColor(right);
- g.fillRect(size.width/2, 0, thickness/2, size.height);
- }
-}
diff --git a/java/ImageProcessing/framework/ServerHandler.java b/java/ImageProcessing/framework/ServerHandler.java
deleted file mode 100644
index 88da64d6328..00000000000
--- a/java/ImageProcessing/framework/ServerHandler.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ServerHandler extends SvcHandler
-{
- public int open (Object obj)
- {
- new Thread (this).start ();
- return 0;
- }
-
- public void run ()
- {
- int msg_len;
- try
- {
- while (true)
- {
- StringBuffer msg = new StringBuffer ();
- msg_len = this.peer ().recv (msg);
- if (msg_len == 0)
- break;
- System.out.println (msg);
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("connection reset by peer");
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.peer ().close ();
- }
- catch (IOException e)
- {
- }
- }
-
- }
-}
diff --git a/java/ImageProcessing/framework/ServerTest.java b/java/ImageProcessing/framework/ServerTest.java
deleted file mode 100644
index b5ab00596ea..00000000000
--- a/java/ImageProcessing/framework/ServerTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ServerTest
-{
- void print_usage_and_die ()
- {
- System.out.println ("Usage: ServerTest [<port>]");
- System.exit (0);
- }
-
- public void init (int port)
- {
- try
- {
- Acceptor acceptor = new Acceptor (Class.forName ("imaging.framework.ServerHandler"));
- acceptor.open (port);
- while (true)
- {
- acceptor.accept ();
- }
- }
- catch (ClassNotFoundException e)
- {
- ACE.ERROR (e);
- }
- catch (SocketException e)
- {
- ACE.ERROR ("Socket Exception: " + e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR ("Dang!" + e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- public static void main (String [] args)
- {
- int port = ACE.DEFAULT_SERVER_PORT;
- ServerTest server = new ServerTest ();
-
- if (args.length == 1)
- {
- try
- {
- port = Integer.parseInt (args[0]);
- }
- catch (NumberFormatException e)
- {
- server.print_usage_and_die ();
- }
- }
- server.init (port);
- }
-}
diff --git a/java/ImageProcessing/framework/StatusDisplay.java b/java/ImageProcessing/framework/StatusDisplay.java
deleted file mode 100644
index e20e9b8384d..00000000000
--- a/java/ImageProcessing/framework/StatusDisplay.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import gjt.Separator;
-
-class StatusDisplay extends Panel
-{
- public StatusDisplay ()
- {
- this.setLayout (new BorderLayout ());
- this.textField_.setEditable (false);
- this.add ("North", new Separator ());
- this.add ("Center", this.textField_);
- this.add ("South", new Separator ());
- }
-
- public void setText (String s)
- {
- this.textField_.setText (s);
- }
-
- private TextField textField_ = new TextField ();
-}
diff --git a/java/ImageProcessing/framework/StatusIndicator.java b/java/ImageProcessing/framework/StatusIndicator.java
deleted file mode 100644
index 0f13a71c016..00000000000
--- a/java/ImageProcessing/framework/StatusIndicator.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.awt.*;
-
-public class StatusIndicator extends Frame
-{
- public StatusIndicator (String title, Image image)
- {
- super (title);
- this.image_ = image;
- // statusCanvas_ = new CounterCanvas (image);
- this.setLayout (new BorderLayout ());
- this.text_ = new TextField ();
- this.label_ = new TextField ("Generating");
-
- this.add ("North", this.label_);
- this.add ("Center", text_);
- // this.add ("Center", statusCanvas_);
- // this.add ("Center", new Button ("Hello"));
- // this.add ("South", new Button ("Hello"));
- this.resize (300,200);
- this.show ();
- }
-
- public void update (int count)
- {
- // this.label_.setText ("Generating...");
- this.text_.setText ((new Integer (count++)).toString ());
- // statusCanvas_.update ();
- // textCanvas_.setCount (count);
- }
-
- TextField text_;
- TextField label_;
- Image image_;
- // CounterCanvas statusCanvas_ = null;
-}
-
-class CounterCanvas extends Canvas
-{
- public CounterCanvas (Image image)
- {
- this.image_ = image;
- }
-
- public void paint (Graphics g)
- {
- g.clearRect (0, 0, this.size ().width, this.size ().height);
- this.setBackground (Color.white);
-
- if (this.image_ != null)
- g.drawImage(this.image_,
- 40, 40,
- this.image_.getWidth (this),
- this.image_.getHeight (this),
- this);
-
- g.setFont (new Font ("TimesRoman", Font.PLAIN, 18));
- g.drawString ("Generating GIF format: ", 120, 120);
- }
-
- public void update ()
- {
- repaint ();
- }
-
- Image image_ = null;
-}
-
diff --git a/java/ImageProcessing/framework/TestHandler.java b/java/ImageProcessing/framework/TestHandler.java
deleted file mode 100644
index 5a97ae6f8b2..00000000000
--- a/java/ImageProcessing/framework/TestHandler.java
+++ /dev/null
@@ -1,149 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.net.*;
-import java.awt.*;
-import java.awt.image.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Timers.*;
-
-public class TestHandler extends SvcHandler
-{
- public TestHandler (String imageList,
- String JAWSServer, int JAWSPort,
- ImageApp parent)
- {
- this.imageList_ = imageList;
- this.JAWSServer_ = JAWSServer;
- this.JAWSPort_ = JAWSPort;
- this.parent_ = parent;
- this.filterTable_ = this.parent_.filterTable();
- }
-
- public int open (Object obj)
- {
- // We got called by the Connector so assume connection was set up
- // fine and therfore do not use standard output
- stdOut = false;
-
- doTesting ();
- return 0;
- }
-
- public void doTesting ()
- {
- if (imageList_ != null)
- {
- StringTokenizer tokens = new StringTokenizer (imageList_);
- String image = null;
-
- // Now parse the string, picking up image names.
- while (tokens.hasMoreTokens ())
- {
- // Get the next token
- image = tokens.nextToken ();
- this.process (image);
- }
- }
- }
-
- private void write (String data)
- {
- try
- {
- // If we are connected to the server then send the data to the
- // server, otherwise write it to standard out.
- if (stdOut)
- System.out.print (data);
- else
- this.peer ().send (data);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- private void process (String image)
- {
- this.write ("Image: " + image + "\n");
-
- this.loadImage (image);
- this.processImage (image);
- this.uploadImage (image);
- }
-
- private void loadImage (String image)
- {
- this.write ("\tLoading...");
-
- // Start the timer
- timer_.start ();
-
- // Load the image
- parent_.openURL (image);
-
- // Stop the timer
- timer_.stop ();
- long time = timer_.elapsedTime ();
-
- this.write ("done (" + ((double) time)/1000 + " seconds).\n");
- }
-
- private void processImage (String image)
- {
- this.write ("\tProcessing...\n");
-
- for (Enumeration e = filterTable_.keys (); e.hasMoreElements (); )
- {
- String filterName = (String) e.nextElement ();
-
- this.write ("\t\t" + filterName + "...");
-
- ImageFilter filter = (ImageFilter) filterTable_.get (filterName);
-
- // Reset the image -- in case it was modified earlier
- this.parent_.resetImage ();
-
- // Start the timer
- timer_.start ();
-
- this.parent_.apply (filter);
-
- // Stop the timer
- timer_.stop ();
- long time = timer_.elapsedTime ();
-
- this.write ("done (" + ((double) time)/1000 + " seconds).\n");
- }
- }
-
- private void uploadImage (String image)
- {
- int index = image.lastIndexOf ("/");
- String imageName = image.substring (index+1);
- String url = "http://" + this.JAWSServer_ + ":" + this.JAWSPort_ + "/" + imageName;
- this.write ("\tUploading " + url + "...");
-
- // Start the timer
- timer_.start ();
-
- this.parent_.saveFile (url);
-
- // Stop the timer
- timer_.stop ();
- long time = timer_.elapsedTime ();
-
- this.write ("done (" + ((double) time)/1000 + " seconds).\n");
- }
-
- private ImageApp parent_ = null;
- private ProfileTimer timer_ = new ProfileTimer ();
- private String imageList_ = null;
- private boolean stdOut = true;
- private Hashtable filterTable_ = null;
- private String JAWSServer_ = null;
- private int JAWSPort_ = 5432;
-}
diff --git a/java/ImageProcessing/framework/Tester.java b/java/ImageProcessing/framework/Tester.java
deleted file mode 100644
index 79204bb4c5a..00000000000
--- a/java/ImageProcessing/framework/Tester.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.net.*;
-import java.awt.*;
-import java.awt.image.*;
-import java.util.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-
-public class Tester implements Runnable
-{
- public static final String DEFAULT_TEST_SERVER = "siesta.cs.wustl.edu";
- public static final int DEFAULT_TEST_SERVER_PORT = 7787;
- public static final String DEFAULT_JAWS_SERVER = "siesta.cs.wustl.edu";
- public static final int DEFAULT_JAWS_SERVER_PORT = 5432;
-
- public Tester (String testInFile,
- ImageApp parent)
- {
- this.testInFile_ = testInFile;
- this.parent_ = parent;
- }
-
- public void initialize ()
- {
- System.out.println ("Initializing tester...");
-
- // Get the hostname of the test server
- this.server_ = this.parent_.getParameter ("testServer");
- if (this.server_ == null)
- this.server_ = DEFAULT_TEST_SERVER;
-
- // Get the port number of the test server
- String testPortString = this.parent_.getParameter ("testPort");
- if (testPortString == null)
- this.port_ = DEFAULT_TEST_SERVER_PORT;
- else
- this.port_ = (new Integer (testPortString)).intValue ();
-
- // Get the hostname of the JAWS server
- this.JAWSServer_ = this.parent_.getParameter ("JAWSServer");
- if (this.JAWSServer_ == null)
- this.JAWSServer_ = DEFAULT_JAWS_SERVER;
-
- // Get the port number of the JAWS server
- String JAWSPortString = this.parent_.getParameter ("JAWSPort");
- if (JAWSPortString == null)
- this.JAWSServerPort_ = DEFAULT_JAWS_SERVER_PORT;
- else
- this.JAWSServerPort_ = (new Integer (JAWSPortString)).intValue ();
-
- System.out.println ("Test Input File: " + this.testInFile_);
- System.out.println ("Test Server: " + this.server_ + "\tPort: " + this.port_);
- System.out.println ("JAWS Server: " + this.JAWSServer_ + "\tPort: " + this.JAWSServerPort_);
-
- // Run in your own thread of control
- (new Thread (this)).start ();
- }
-
- public void run ()
- {
- this.setupConnection (this.getImages ());
- }
-
- private String getImages ()
- {
- URL inputURL;
- String imageList = null;
- try
- {
- // Create input URL
- inputURL = new URL (this.testInFile_);
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (inputURL.openStream ());
-
- // Create a buffer to hold all the data we get
- StringBuffer tempBuf = new StringBuffer ();
- // Keep reading the data until we are done
- String tempString = iStream.readLine ();
- while (tempString != null)
- {
- tempBuf.append (tempString);
- tempBuf.append (" ");
- tempString = iStream.readLine ();
- }
- imageList = tempBuf.toString ();
- }
- catch (MalformedURLException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- return imageList;
- }
-
- private void setupConnection (String imageList)
- {
- // First try to connect to the server. If the server is not
- // running then we will write to standard output.
-
- // Create a handler which will handle our connection.
- TestHandler handler = new TestHandler (imageList,
- this.JAWSServer_, this.JAWSServerPort_,
- this.parent_);
- try
- {
- Connector connector = new Connector ();
- connector.open (server_, port_);
- connector.connect (handler);
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- }
- catch (SocketException e)
- {
- System.out.println ("Test Server not running! Writing to standard out...");
- // The server is not running so write all the output to screen
- handler.doTesting ();
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- private String testInFile_ = null;
- private ImageApp parent_ = null;
- private String server_ = "siesta.cs.wustl.edu";
- private int port_ = 7787;
-
- private String JAWSServer_ = "siesta.cs.wustl.edu";
- private int JAWSServerPort_ = 5432;
-}
-
diff --git a/java/ImageProcessing/framework/doc01.gif b/java/ImageProcessing/framework/doc01.gif
deleted file mode 100644
index 51262529f6d..00000000000
--- a/java/ImageProcessing/framework/doc01.gif
+++ /dev/null
Binary files differ
diff --git a/java/ImageProcessing/framework/file03.gif b/java/ImageProcessing/framework/file03.gif
deleted file mode 100644
index c98654c604b..00000000000
--- a/java/ImageProcessing/framework/file03.gif
+++ /dev/null
Binary files differ
diff --git a/java/ImageProcessing/framework/filter.conf b/java/ImageProcessing/framework/filter.conf
deleted file mode 100644
index 2e90ea136ce..00000000000
--- a/java/ImageProcessing/framework/filter.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-imaging.filters.EmbossFilter
-imaging.filters.BleachFilter
-imaging.filters.BlurFilter
-imaging.filters.DarkenFilter
-imaging.filters.DeSpeckleFilter
-imaging.filters.EdgeDetectFilter
-imaging.filters.OilPaintFilter
-imaging.filters.PixelizeFilter
-imaging.filters.RotateFilter
-imaging.filters.SharpenFilter
-imaging.filters.SpreadFilter
-
-
-
-
diff --git a/java/ImageProcessing/framework/help.conf b/java/ImageProcessing/framework/help.conf
deleted file mode 100644
index 8a07e2867d9..00000000000
--- a/java/ImageProcessing/framework/help.conf
+++ /dev/null
@@ -1,216 +0,0 @@
- MedJava
- ~~~~~~~
-
-Overview
---------
-
-MedJava is a prototype of a large scale distributed medical imaging
-system. It has been developed using Java, in particular, several
-components of Java ACE.
-
-Here are the key features of the MedJava toolkit:
-
-* Images can be both downloaded and uploaded across the network.
-* Images can be uploaded to Web servers that support HTTP PUT
- functionality (for example, JAWS).
-* The tool contains more than a dozen image filters to do image
- processing.
-* The image filters can be configured into the system dynamically
- using the Service Configurator pattern.
-
-Please send comments/suggestions to Prashant Jain (pjain@cs.wustl.edu).
-
-======================================================================
-Getting Started
----------------
-
-MedJava applet can be configured with several (optional) parameters
-via the HTML file from which the applet is invoked. Here is a list of
-the parameters:
-
-Note:
- 1) * indicates test-mode parameters
- 2) All Default URLs begin with
- http://www.cs.wustl.edu/~pjain/java/ACE_wrappers/java/ImageProcessing/framework/
-
-<START>
-Name
-<TAB>
-<TAB>
-Description
-<TAB>
-<TAB>
-<TAB>
-<TAB>
-Default
-<P>
---------------------------------------------------------------
-<P>
-configFile
-<TAB>
-<TAB>
-Specifies a URL that points to the filter
-<P>
-<TAB>
-<TAB>
-configuration file.
-<TAB>
-<TAB>
-<TAB>
-<TAB>
-<TAB>
-filter.conf
-<P>
-<P>
-*testFile
-<TAB>
-<TAB>
-Specifies a URL that points to the file that contains
-<P>
-<TAB>
-<TAB>
-a list of images that need to be tested.
-<TAB>
-<TAB>
-<TAB>
-testImages.conf
-<P>
-<P>
-*testServer
-<TAB>
-Specifies the name of the test server.
-<TAB>
-<TAB>
-<TAB>
-siesta.cs.wustl.edu
-<P>
-<P>
-*testPort
-<TAB>
-<TAB>
-Specifies the port number of the test server.
-<TAB>
-<TAB>
-<TAB>
-7789
-<P>
-<P>
-*JAWSServer
-<TAB>
-Specifies the name of the server to use in
-<P>
-<TAB>
-<TAB>
-doing image uploading during testing.
-<TAB>
-<TAB>
-<TAB>
-siesta.cs.wustl.edu
-<P>
-<P>
-*JAWSPort
-<TAB>
-Specifies the port number of the server to use
-<P>
-<TAB>
-<TAB>
-in doing image uploading during testing.
-<TAB>
-<TAB>
-<TAB>
-5432
-<P>
-======================================================================
-<END>
-
-Menu
-----
-
-o Open URL
-
- Allows user to specify a URL. If the URL points to an image that is
- readable, then the image is downloaded and displayed in the view
- panel.
-
- If the URL points to a directory that is readable then a window
- appears displaying a list of files in that directory. The user can
- then click on an image file in this window to fetch an image.
-
- IMPORTANT NOTE: If the URL points to a directory, the directory must
- not contain an "index.html" file! If it does, the
- query will fail and no list of files will appear.
-
-o Save
-
- Allows user to specify a URL to save the currently loaded image to.
- All images are saved in GIF format. Note that saving/uploading a
- file can take a while depending upon the size of the image. This is
- because, the tool first generates the GIF format and then sends the
- bytes across the network.
-
- IMPORTANT NOTE: The Web server must support image uploading, that is
- HTTP PUT functionality. Also, due to applet
- restrictions, the server MUST be running on the same
- host from which the applet was downloaded from.
-
-o Reset
-
- Resets the image to the original. Note that the effects of any
- filters that were applied to the image will be lost.
-
-o Reload Filters
-
- Reads the filter configuration file again and reloads all the image
- filters. Note that this serves as the trigger of the Service
- Configurator pattern allowing the tool to reconfigure based on new
- configuration information.
-
- The filters are specified in filter.conf. To add/remove filters,
- change this file and then select "Reload Filters".
-
- To specify a different configuration file, please see "Getting Started".
-
-o Zoom In
-
- Zooms in to the currently displayed image. Note that the applet only
- allows to zoom in 4 x times.
-
-o Zoom Out
-
- Zooms out of the currently displayed image. Note that the applet
- only allows to zoom out 1/4 x times.
-
-o Apply
-
- Apply the currently selected filter. By default no filter is
- selected. Note that applying a filter to an image can taken
- anywhere between a few seconds to a few minutes depending upon the
- image size, the filter type, and the speed of the machine on which
- the applet is running.
-
-o Filters:
-
- Allows the user to select a filter from the ones that have been
- configured into the applet. Note that this is a choice menu and its
- entries depend upon the filters that were specified in the filter
- configuration file.
-
- For more information, on how to specify the filters, please see
- "Getting Started".
-
-o About
-
- Displays the "About" dialog containing the version of the MedJava
- applet.
-
-o Help
-
- Displays this window
-
-======================================================================
-
-Limitations
------------
-
-In several browsers, for images larger than 100 KB, the Java virtual
-machine may run out of memory while doing image processing.
diff --git a/java/ImageProcessing/framework/test.html b/java/ImageProcessing/framework/test.html
deleted file mode 100644
index 4c0c080bbfa..00000000000
--- a/java/ImageProcessing/framework/test.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#888888">
-
-<HR>
-<APPLET CODEBASE="../../classes" CODE="imaging.framework.ImageApp.class" width=700 height=700>
-<param name=configFile value="http://www.cs.wustl.edu/~pjain/java/ACE_wrappers/java/ImageProcessing/framework/testFilter.conf">
-<param name=testFile value="http://www.cs.wustl.edu/~pjain/java/ACE_wrappers/java/ImageProcessing/framework/testImages.conf">
-<param name=testServer value="siesta.cs.wustl.edu">
-<param name=testPort value="7789">
-<param name=JAWSServer value="siesta.cs.wustl.edu">
-<param name=JAWSPort value="5432">
-</APPLET>
-<HR>
-
-</HTML>
diff --git a/java/ImageProcessing/framework/testFilter.conf b/java/ImageProcessing/framework/testFilter.conf
deleted file mode 100644
index 2e90ea136ce..00000000000
--- a/java/ImageProcessing/framework/testFilter.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-imaging.filters.EmbossFilter
-imaging.filters.BleachFilter
-imaging.filters.BlurFilter
-imaging.filters.DarkenFilter
-imaging.filters.DeSpeckleFilter
-imaging.filters.EdgeDetectFilter
-imaging.filters.OilPaintFilter
-imaging.filters.PixelizeFilter
-imaging.filters.RotateFilter
-imaging.filters.SharpenFilter
-imaging.filters.SpreadFilter
-
-
-
-
diff --git a/java/JACE/ASX/IOCntlCmds.java b/java/JACE/ASX/IOCntlCmds.java
deleted file mode 100644
index 3cc7c76256d..00000000000
--- a/java/JACE/ASX/IOCntlCmds.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TaskFlags.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * Constants used for IOCTL messages.
- *
- *@see JACE.ASX.IOCntlMsg
- */
-public abstract class IOCntlCmds
-{
- /** Set the low water mark. */
- public static final int SET_LWM = 1;
-
- /** Get the low water mark. */
- public static final int GET_LWM = 2;
-
- /** Set the high water mark. */
- public static final int SET_HWM = 3;
-
- /** Get the high water mark. */
- public static final int GET_HWM = 4;
-
- /** Link modules */
- public static final int MOD_LINK = 5;
-
- /** Unlink modules */
- public static final int MOD_UNLINK = 6;
-}
diff --git a/java/JACE/ASX/IOCntlMsg.java b/java/JACE/ASX/IOCntlMsg.java
deleted file mode 100644
index 4eea18b36f6..00000000000
--- a/java/JACE/ASX/IOCntlMsg.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * IOCntlMsg.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * Data format for IOCTL messages.
- */
-public class IOCntlMsg
-{
-
- // = Initialization method.
-
- /*
- * Initialize the control message.
- *@param c IOCntlCmd for the control message. Note that this should
- * be of type IOCntlCmds
- */
- public IOCntlMsg (int c)
- {
- this.cmd_ = c;
- }
-
- // = Get/set methods
-
- /*
- * Get the command.
- *@return the command.
- */
- public int cmd ()
- {
- return this.cmd_;
- }
-
- /*
- * Set the command.
- *@param c the command.
- */
- public void cmd (int c)
- {
- this.cmd_ = c;
- }
-
- /*
- * Get the count.
- *@return the count.
- */
- public int count ()
- {
- return this.count_;
- }
-
- /*
- * Set the count.
- *@param c the count.
- */
- public void count (int c)
- {
- this.count_ = c;
- }
-
- /*
- * Get the error.
- *@return the error.
- */
- public int error ()
- {
- return this.error_;
- }
-
- /*
- * Set the error.
- *@param e the error.
- */
- public void error (int e)
- {
- this.error_ = e;
- }
-
- /*
- * Get the return value.
- *@return the return value.
- */
- public int rval ()
- {
- return this.rval_;
- }
-
- /*
- * Set the return value.
- *@param r the return value.
- */
- public void rval (int r)
- {
- this.rval_ = r;
- }
-
- public String toString ()
- {
- return (new Integer (this.cmd_)).toString ();
- }
-
- private int cmd_;
- // Command.
-
- private int count_;
- // Count.
-
- private int error_;
- // Error.
-
- private int rval_;
- // Return value
-}
diff --git a/java/JACE/ASX/MessageBlock.java b/java/JACE/ASX/MessageBlock.java
deleted file mode 100644
index 4035e34a7bd..00000000000
--- a/java/JACE/ASX/MessageBlock.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * MessageBlock.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * Object used to store messages in the ASX framework.<P>
- *
- * <tt>MessageBlock</tt> is modeled after the message data structures
- * used in System V STREAMS. A <tt>MessageBlock</tt> is composed of
- * one or more <tt>MessageBlock</tt>s that are linked together by
- * <em>PREV</em> and <em>NEXT</em> pointers. In addition, a
- * <tt>MessageBlock</tt> may also be linked to a chain of other
- * <tt>MessageBlock</tt>s. This structure enables efficient manipulation
- * of arbitrarily-large messages <em>without</em> incurring memory
- * copying overhead.
- *
- *@see MessageQueue
- */
-public class MessageBlock
-{
- /**
- * Create an empty Message Block
- */
- public MessageBlock ()
- {
- this (0);
- }
-
- /**
- * Create an empty Message Block.
- * Note that this assumes that type of MessageBlock is MB_DATA.
- *@param size size of the Message Block to create.
- */
- public MessageBlock (int size)
- {
- // Note the explicit cast toString() is needed. For some strange
- // reason, it fails otherwise if size == 0.
- this ((new StringBuffer (size)).toString ());
- }
-
- /**
- * Create a Message Block. Note that this assumes that type of
- * MessageBlock is MB_DATA.
- *@param data initial data to create a Message Block with.
- */
- public MessageBlock (String data)
- {
- this (MessageType.MB_DATA,
- null,
- data);
- }
-
- /**
- * Create a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param data initial data to create Message Block with
- */
- public MessageBlock (int type,
- MessageBlock cont,
- String data)
- {
- this.flags_ = 0;
- this.priority_ = 0;
- this.next_ = null;
- this.prev_ = null;
-
- this.init (type, cont, data);
- }
-
- /**
- * Create a Message Block. Note that this assumes that type of
- * MessageBlock is MB_OBJECT.
- *@param obj initial object to create a Message Block with.
- */
- public MessageBlock (Object obj)
- {
- this (MessageType.MB_OBJECT,
- null,
- obj);
- }
-
- /**
- * Create a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param obj initial object to create Message Block with
- */
- public MessageBlock (int type,
- MessageBlock cont,
- Object obj)
- {
- this.init (type, cont, obj);
- }
-
- /* Initialize the Message Block
- *@param data data to initialize Message Block with
- */
- public void init (String data)
- {
- this.base_ = new StringBuffer (data);
- }
-
- /**
- * Initialize a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param data data to initialize Message Block with
- */
- public void init (int msgType,
- MessageBlock msgCont,
- String data)
- {
- if (data.length () == 0)
- this.base_ = new StringBuffer (0);
- else
- this.base_ = new StringBuffer (data);
- this.type_ = msgType;
- this.cont_ = msgCont;
- }
-
- /**
- * Initialize a Message Block. Note that this assumes that type of
- * MessageBlock is MB_OBJECT.
- *@param obj initial object to initialize a Message Block with.
- */
- public void init (Object obj)
- {
- this.init (MessageType.MB_OBJECT, null, obj);
- }
-
- /**
- * Initialize a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param obj object to initialize Message Block with
- */
- public void init (int msgType,
- MessageBlock msgCont,
- Object obj)
- {
- this.obj_ = obj;
- this.type_ = msgType;
- this.cont_ = msgCont;
- this.flags_ = 0;
- this.priority_ = 0;
- this.next_ = null;
- this.prev_ = null;
- }
-
- /**
- * Set message flags. Note that the flags will be set on top of
- * already set flags.
- *@param moreFlags flags to set for the Message Block.
- */
- public long setFlags (long moreFlags)
- {
- // Later we might mask more_flags so that user can't change
- // internal ones: more_flags &= ~(USER_FLAGS -1).
- this.flags_ = ACE.SET_BITS (this.flags_, moreFlags);
- return this.flags_;
- }
-
- /**
- * Unset message flags.
- *@param lessFlags flags to unset for the Message Block.
- */
- public long clrFlags (long lessFlags)
- {
- // Later we might mask more_flags so that user can't change
- // internal ones: less_flags &= ~(USER_FLAGS -1).
- this.flags_ = ACE.CLR_BITS (this.flags_, lessFlags);
- return this.flags_;
- }
-
- /**
- * Get the message flags.
- *@return Message flags
- */
- public long flags ()
- {
- return this.flags_;
- }
-
- /**
- * Get the type of the message.
- *@return message type
- */
- public int msgType ()
- {
- return this.type_;
- }
-
- /**
- * Set the type of the message.
- *@param t type of the message
- */
- public void msgType (int t)
- {
- this.type_ = t;
- }
-
- /**
- * Get the class of the message. Note there are two classes,
- * <normal> messages and <high-priority> messages.
- *@return message class
- */
- public int msgClass ()
- {
- return this.msgType () >= MessageType.MB_PRIORITY
- ? MessageType.MB_PRIORITY : MessageType.MB_NORMAL;
- }
-
- /**
- * Find out if the message is a data message.
- *@return true if message is a data message, false otherwise
- */
- public boolean isDataMsg ()
- {
- int mt = this.msgType ();
- return mt == MessageType.MB_DATA
- || mt == MessageType.MB_PROTO
- || mt == MessageType.MB_PCPROTO;
- }
-
- /**
- * Find out if the message is an object message.
- *@return true if message is an object message, false otherwise
- */
- public boolean isObjMsg ()
- {
- int mt = this.msgType ();
- return mt == MessageType.MB_OBJECT
- || mt == MessageType.MB_PROTO
- || mt == MessageType.MB_PCPROTO;
- }
-
- /**
- * Get the priority of the message.
- *@return message priority
- */
- public long msgPriority ()
- {
- return this.priority_;
- }
-
- /**
- * Set the priority of the message.
- *@param pri priority of the message
- */
- public void msgPriority (long pri)
- {
- this.priority_ = pri;
- }
-
- /**
- * Get message data. This assumes that msgType is MB_DATA.
- *@return message data
- */
- public String base ()
- {
- // Create a String object to return
- char temp[] = new char [this.base_.length ()];
- this.base_.getChars (0, this.base_.length (), temp, 0);
- return new String (temp);
- }
-
- /**
- * Set the message data. This assumes that msgType is MB_DATA.
- *@param data message data
- *@param msgFlags message flags
- */
- public void base (String data,
- long msgFlags)
- {
- this.base_ = new StringBuffer (data);
- this.flags_ = msgFlags;
- }
-
- /**
- * Get message object. This assumes that msgType is MB_OBJECT.
- *@return message object
- */
- public Object obj ()
- {
- return this.obj_;
- }
-
- /**
- * Set the message object. This assumes that msgType is MB_OBJECT.
- *@param object message object
- *@param msgFlags message flags
- */
- public void obj (Object obj,
- long msgFlags)
- {
- this.obj_ = obj;
- this.flags_ = msgFlags;
- }
-
- // = The following four methods only make sense if the Message_Block
- // is of type MB_DATA and not MB_OBJECT.
-
- /**
- * Get length of the message. This method only makes sense if the
- * MessageBlock is of type MB_DATA and not MB_OBJECT.
- *@return length of the message.
- */
- public int length ()
- {
- return this.base_.length ();
- }
-
- /**
- * Set the length of the message. This method only makes sense if the
- * MessageBlock is of type MB_DATA and not MB_OBJECT.
- *@param n message length
- */
- public void length (int n)
- {
- this.base_.setLength (n);
- }
-
- /**
- * Get size of the allocated buffer for the message. This method
- * only makes sense if the MessageBlock is of type MB_DATA and not
- * MB_OBJECT.
- *@return size of the message buffer
- */
- public int size ()
- {
- return this.base_.capacity ();
- }
-
- /**
- * Set the total size of the buffer. This method will grow the
- * buffer if need be. Also, this method only makes sense if the
- * MessageBlock is of type MB_DATA and not MB_OBJECT.
- *@param n size of message buffer
- */
- public void size (int n)
- {
- this.base_.ensureCapacity (n);
- }
-
-
- /**
- * Get the continuation field. The coninuation field is used to
- * chain together composite messages.
- *@return the continuation field
- */
- public MessageBlock cont ()
- {
- return this.cont_;
- }
-
- /**
- * Set the continuation field. The coninuation field is used to
- * chain together composite messages.
- *@param msgCont continuation field
- */
- void cont (MessageBlock msgCont)
- {
- this.cont_ = msgCont;
- }
-
- /**
- * Get link to next message. The next message points to the
- * <MessageBlock> directly ahead in the MessageQueue.
- *@return next message block
- */
- MessageBlock next ()
- {
- return this.next_;
- }
-
- /**
- * Set link to next message. The next message points to the
- * <MessageBlock> directly ahead in the MessageQueue.
- *@param msgBlock next message block
- */
- void next (MessageBlock msgBlock)
- {
- this.next_ = msgBlock;
- }
-
- /**
- * Get link to previous message. The previous message points to the
- * <MessageBlock> directly before in the MessageQueue.
- *@return previous message block
- */
- MessageBlock prev ()
- {
- return this.prev_;
- }
-
- /**
- * Set link to previous message. The previous message points to the
- * <MessageBlock> directly before in the MessageQueue.
- *@param msgBlock previous message block
- */
- void prev (MessageBlock msgBlock)
- {
- this.prev_ = msgBlock;
- }
-
- private int type_;
- // Type of message.
-
- private long flags_;
- // Misc flags.
-
- private long priority_;
- // Priority of message.
-
- private StringBuffer base_;
- // String data of message block (initialized to null).
-
- private Object obj_;
- // Object data of message block (initialized to null).
-
- private MessageBlock cont_;
- // Next message block in the chain.
-
- private MessageBlock next_;
- // Next message in the list.
-
- private MessageBlock prev_;
- // Previous message in the list.
-
-}
-
diff --git a/java/JACE/ASX/MessageQueue.java b/java/JACE/ASX/MessageQueue.java
deleted file mode 100644
index df25870dd52..00000000000
--- a/java/JACE/ASX/MessageQueue.java
+++ /dev/null
@@ -1,633 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * MessageQueue.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import java.util.Date;
-import JACE.OS.*;
-import JACE.Reactor.*;
-
-class NotFullCondition extends TimedWait
-{
- public NotFullCondition (MessageQueue mq)
- {
- super (mq);
- this.mq_ = mq;
- }
-
- public boolean condition () {
- // Delegate to the appropriate conditional
- // check on the MessageQueue.
- return !this.mq_.isFull ();
- }
- private MessageQueue mq_;
-}
-
-class NotEmptyCondition extends TimedWait
-{
- public NotEmptyCondition (MessageQueue mq)
- {
- super (mq);
- this.mq_ = mq;
- }
-
- public boolean condition () {
- // Delegate to the appropriate conditional
- // check on the MessageQueue.
- return !this.mq_.isEmpty ();
- }
- private MessageQueue mq_;
-}
-
-
-/**
- * A thread-safe message queueing facility, modeled after the
- * queueing facilities in System V StreamS. <P>
- *
- * <tt>MessageQueue</tt> is the central queueing facility for messages
- * in the ASX framework. All operations are thread-safe, as it is intended
- * to be used for inter-thread communication (<em>e.g.</em>, a producer and
- * consumer thread joined by a <tt>MessageQueue</tt>). The queue
- * consists of <tt>MessageBlock</tt>s.
- *</blockquote>
- *
- *@see MessageBlock
- *@see TimeValue
- */
-public class MessageQueue
-{
- /**
- * Default constructor
- */
- public MessageQueue ()
- {
- this (DEFAULT_HWM, DEFAULT_LWM);
- }
-
- /**
- * Create a Message Queue with high and low water marks.
- *@param hwm High water mark (max number of bytes allowed in the
- * queue)
- *@param lwm Low water mark (min number of bytes in the queue)
- */
- public MessageQueue (int hwm, int lwm)
- {
- if (this.open (hwm, lwm) == -1)
- ACE.ERROR ("open");
- }
-
- /**
- * Initialize a Message Queue with high and low water marks.
- *@param hwm High water mark (max number of bytes allowed in the
- * queue)
- *@param lwm Low water mark (min number of bytes in the queue)
- */
- public synchronized int open (int hwm, int lwm)
- {
- this.highWaterMark_ = hwm;
- this.lowWaterMark_ = lwm;
- this.deactivated_ = false;
- this.currentBytes_ = 0;
- this.currentCount_ = 0;
- this.tail_ = null;
- this.head_ = null;
- return 0;
- }
-
- // ************ Note! ***********
- // = For enqueue, enqueueHead, enqueueTail, and dequeueHead if
- // timeout is specified, the caller will wait until the *absolute time*
- // tv. Calls will return, however, when queue is closed,
- // deactivated, or if it is past the time tv
-
- /**
- * Enqueue a <MessageBlock> into the <MessageQueue> in accordance
- * with its <msgPriority> (0 is lowest priority). Note that the
- * call will block (unless the queue has been deactivated).
- *
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- *@param newItem item to enqueue onto the Message Queue
- *@return -1 on failure, else the number of items still on the queue.
- */
- public synchronized int enqueue (MessageBlock newItem) throws InterruptedException
- {
- return this.enqueue (newItem, null);
- }
-
- /**
- * Enqueue a <MessageBlock> into the <MessageQueue> in accordance
- * with its <msgPriority> (0 is lowest priority). Note that the
- * call will return if the queue has been deactivated or it is
- * later than the specified absolute time value.
- *@param newItem item to enqueue onto the Message Queue
- *@param tv absolute TimeValue to timeout after
- *@return -1 on failure, else the number of items still on the
- * queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueue (MessageBlock newItem,
- TimeValue tv) throws InterruptedException
- {
- int result = -1;
- if (this.deactivated_)
- return -1;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notFullCondition_.timedWait ();
- else // Need to do a timed wait
- notFullCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return -1;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return -1;
- else
- result = this.enqueueInternal (newItem);
-
- // Tell any blocked threads that the queue has a new item!
- this.notEmptyCondition_.broadcast ();
- return result;
- }
-
- /**
- * Enqueue a <MessageBlock> at the end of the <MessageQueue>. Note
- * that the call will block (unless the queue has been deactivated).
- *@param newItem item to enqueue onto the Message Queue
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueTail (MessageBlock newItem) throws InterruptedException
- {
- return this.enqueueTail (newItem, null);
- }
-
- /**
- * Enqueue a <MessageBlock> at the end of the <MessageQueue>. Note
- * that the call will return when it's later than the given TimeValue or
- * if the queue has been deactivated.
- *@param newItem item to enqueue onto the Message Queue
- *@param tv absolute TimeValue to wait until before returning (unless
- * the operation compeltes before this time)
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueTail (MessageBlock newItem,
- TimeValue tv) throws InterruptedException
- {
- int result = -1;
- if (this.deactivated_)
- return -1;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notFullCondition_.timedWait ();
- else // Need to do a timed wait
- notFullCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return -1;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return -1;
- else
- result = this.enqueueTailInternal (newItem);
-
- // Tell any blocked threads that the queue has a new item!
- this.notEmptyCondition_.broadcast ();
- return result;
- }
-
- /**
- * Enqueue a <MessageBlock> at the head of the <MessageQueue>. Note
- * that the call will block (unless the queue has been deactivated).
- *@param newItem item to enqueue onto the Message Queue
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueHead (MessageBlock newItem) throws InterruptedException
- {
- return this.enqueueHead (newItem, null);
- }
-
- /**
- * Enqueue a <MessageBlock> at the head of the <MessageQueue>. Note
- * that the call will return when it's later than the given TimeValue or
- * if the queue has been deactivated.
- *@param newItem item to enqueue onto the Message Queue
- *@param tv absolute TimeValue to wait until before returning (unless
- * the operation completes before that time)
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueHead (MessageBlock newItem,
- TimeValue tv) throws InterruptedException
- {
- int result = -1;
- if (this.deactivated_)
- return -1;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notFullCondition_.timedWait ();
- else // Need to do a timed wait
- notFullCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return -1;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return -1;
- else
- result = this.enqueueHeadInternal (newItem);
-
- // Tell any blocked threads that the queue has a new item!
- this.notEmptyCondition_.broadcast ();
- return result;
- }
-
- /**
- * Dequeue and return the <MessageBlock> at the head of the
- * <MessageQueue>. Note that the call will block (unless the queue
- * has been deactivated).
- *@return null on failure, else the <MessageBlock> at the head of queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized MessageBlock dequeueHead () throws InterruptedException
- {
- return this.dequeueHead (null);
- }
-
- /**
- * Dequeue and return the <MessageBlock> at the head of the
- * <MessageQueue>. Note that the call when return if the queue has
- * been deactivated or when the current time is later than the given
- * time value.
- *@param tv absolute time timeout (blocks indefinitely if null)
- *@return null on failure, else the <MessageBlock> at the head of queue.
- *@exception InterruptedException Interrupted while accessing queue
- */
- public synchronized MessageBlock dequeueHead (TimeValue tv)
- throws InterruptedException
- {
- MessageBlock result = null;
- if (this.deactivated_)
- return null;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notEmptyCondition_.timedWait ();
- else // Need to do a timed wait
- notEmptyCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return null;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return null;
- else
- result = this.dequeueHeadInternal ();
-
- // Tell any blocked threads that the queue has room for an item!
- this.notFullCondition_.broadcast ();
- return result;
- }
-
- /**
- * Check if queue is full.
- *@return true if queue is full, else false.
- */
- public synchronized boolean isFull ()
- {
- return this.isFullInternal ();
- }
-
- /**
- * Check if queue is empty.
- *@return true if queue is empty, else false.
- */
- public synchronized boolean isEmpty ()
- {
- return this.isEmptyInternal ();
- }
-
- /**
- * Get total number of bytes on the queue.
- *@return total number number of bytes on the queue
- */
- public int messageBytes ()
- {
- return this.currentBytes_;
- }
-
- /**
- * Get total number of messages on the queue.
- *@return total number number of messages on the queue
- */
- public int messageCount ()
- {
- return this.currentCount_;
- }
-
- // = Flow control routines
-
- /**
- * Get high watermark.
- *@return high watermark
- */
- public int highWaterMark ()
- {
- return this.highWaterMark_;
- }
-
- /**
- * Set high watermark.
- *@param hwm high watermark
- */
- public void highWaterMark (int hwm)
- {
- this.highWaterMark_ = hwm;
- }
-
- /**
- * Get low watermark.
- *@return low watermark
- */
- public int lowWaterMark ()
- {
- return this.lowWaterMark_;
- }
-
- /**
- * Set low watermark.
- *@param lwm low watermark
- */
- public void lowWaterMark (int lwm)
- {
- this.lowWaterMark_ = lwm;
- }
-
- // = Activation control methods.
-
- /**
- * Deactivate the queue and wakeup all threads waiting on the queue
- * so they can continue. No messages are removed from the queue,
- * however. Any other operations called until the queue is
- * activated again will immediately return -1.
- *@return WAS_INACTIVE if queue was inactive before the call and
- * WAS_ACTIVE if queue was active before the call.
- */
- public synchronized int deactivate ()
- {
- return this.deactivateInternal ();
- }
-
-
- /**
- * Reactivate the queue so that threads can enqueue and dequeue
- * messages again.
- *@return WAS_INACTIVE if queue was inactive before the call and
- * WAS_ACTIVE if queue was active before the call.
- */
- public synchronized int activate ()
- {
- return this.activateInternal ();
- }
-
- protected boolean isEmptyInternal ()
- {
- // Not sure about this one!!!!
- return this.currentBytes_ <= this.lowWaterMark_ && this.currentCount_ <= 0;
- }
-
- protected boolean isFullInternal ()
- {
- return this.currentBytes_ > this.highWaterMark_;
- }
-
- protected int deactivateInternal ()
- {
- int currentStatus =
- this.deactivated_ ? WAS_INACTIVE : WAS_ACTIVE;
-
- this.notFullCondition_.broadcast ();
- this.notEmptyCondition_.broadcast ();
-
- this.deactivated_ = true;
- return currentStatus;
- }
-
- protected int activateInternal ()
- {
- int currentStatus =
- this.deactivated_ ? WAS_INACTIVE : WAS_ACTIVE;
- this.deactivated_ = false;
-
- return currentStatus;
- }
-
- protected int enqueueTailInternal (MessageBlock newItem)
- {
- if (newItem == null)
- return -1;
-
- // List was empty, so build a new one.
- if (this.tail_ == null)
- {
- this.head_ = newItem;
- this.tail_ = newItem;
- newItem.next (null);
- newItem.prev (null);
- }
- // Link at the end.
- else
- {
- newItem.next (null);
- this.tail_.next (newItem);
- newItem.prev (this.tail_);
- this.tail_ = newItem;
- }
-
- if (newItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to count *all* the bytes in a composite message!!!
- for (MessageBlock temp = newItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ += temp.size ();
- }
-
- this.currentCount_++;
- return this.currentCount_;
- }
-
- protected int enqueueHeadInternal (MessageBlock newItem)
- {
- if (newItem == null)
- return -1;
-
- newItem.prev (null);
- newItem.next (this.head_);
-
- if (this.head_ != null)
- this.head_.prev (newItem);
- else
- this.tail_ = newItem;
-
- this.head_ = newItem;
-
- if (newItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to count *all* the bytes in a composite message!!!
- for (MessageBlock temp = newItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ += temp.size ();
- }
-
- this.currentCount_++;
-
- return this.currentCount_;
- }
-
- protected int enqueueInternal (MessageBlock newItem)
- {
- if (newItem == null)
- return -1;
-
- if (this.head_ == null)
- // Check for simple case of an empty queue, where all we need to
- // do is insert <newItem> into the head.
- return this.enqueueHeadInternal (newItem);
- else
- {
- MessageBlock temp;
-
- // Figure out where the new item goes relative to its priority.
-
- for (temp = this.head_;
- temp != null;
- temp = temp.next ())
- {
- if (temp.msgPriority () <= newItem.msgPriority ())
- // Break out when we've located an item that has lower
- // priority that <newItem>.
- break;
- }
-
- if (temp == null)
- // Check for simple case of inserting at the end of the queue,
- // where all we need to do is insert <newItem> after the
- // current tail.
- return this.enqueueTailInternal (newItem);
- else if (temp.prev () == null)
- // Check for simple case of inserting at the beginning of the
- // queue, where all we need to do is insert <newItem> before
- // the current head.
- return this.enqueueHeadInternal (newItem);
- else
- {
- // Insert the message right before the item of equal or lower
- // priority.
- newItem.next (temp);
- newItem.prev (temp.prev ());
- temp.prev ().next (newItem);
- temp.prev (newItem);
- }
- }
-
- if (newItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to count *all* the bytes in a composite message!!!
- for (MessageBlock temp = newItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ += temp.size ();
- }
-
- this.currentCount_++;
- return this.currentCount_;
- }
-
- protected MessageBlock dequeueHeadInternal ()
- {
- MessageBlock firstItem = this.head_;
- this.head_ = this.head_.next ();
-
- if (this.head_ == null)
- this.tail_ = null;
-
- if (firstItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to subtract off all of the bytes associated with this
- // message.
- for (MessageBlock temp = firstItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ -= temp.size ();
- }
-
- this.currentCount_--;
- return firstItem;
- }
-
-
- /** Default high watermark (16 K). */
- public final static int DEFAULT_HWM = 16 * 1024;
-
- /** Default low watermark. */
- public final static int DEFAULT_LWM = 0;
-
- /** Message queue was active before activate() or deactivate(). */
- public final static int WAS_ACTIVE = 1;
-
- /** Message queue was inactive before activate() or deactivate(). */
- public final static int WAS_INACTIVE = 2;
-
- private int highWaterMark_;
- // Greatest number of bytes before blocking.
-
- private int lowWaterMark_;
- // Lowest number of bytes before unblocking occurs.
-
- private boolean deactivated_;
- // Indicates that the queue is inactive.
-
- private int currentBytes_;
- // Current number of bytes in the queue.
-
- private int currentCount_;
- // Current number of messages in the queue.
-
- private MessageBlock head_;
- // Head of Message_Block list.
-
- private MessageBlock tail_;
- // Tail of Message_Block list.
-
- // The Delegated Notification mechanisms.
- private NotFullCondition notFullCondition_ = new NotFullCondition (this);
- private NotEmptyCondition notEmptyCondition_ = new NotEmptyCondition (this);
-
-}
diff --git a/java/JACE/ASX/MessageType.java b/java/JACE/ASX/MessageType.java
deleted file mode 100644
index 97e33a6c6ba..00000000000
--- a/java/JACE/ASX/MessageType.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * MessageType.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * Message types used by MessageBlock. <P>
- *
- * Defines bit masks used to identify various types of messages.<P>
- *
- * This class is not intended to be instantiable.
- *
- *@see MessageBlock
- */
-public class MessageType
-{
- // = Data and protocol messages (regular and priority)
- /** regular data */
- public static final int MB_DATA = 0x01;
-
- /** protocol control */
- public static final int MB_PROTO = 0x02;
-
- /** regular data */
- public static final int MB_OBJECT = 0x09;
-
-
- // = Control messages (regular and priority)
- /** line break */
- public static final int MB_BREAK = 0x03;
-
- /** pass file pointer */
- public static final int MB_PASSFP = 0x04;
-
- /** post an event to an event queue */
- public static final int MB_EVENT = 0x05;
-
- /** generate process signal */
- public static final int MB_SIG = 0x06;
-
- /** ioctl; set/get params */
- public static final int MB_IOCTL = 0x07;
-
- /** set various stream head options */
- public static final int MB_SETOPTS = 0x08;
-
-
- // = Control messages (high priority; go to head of queue)
- /** acknowledge ioctl */
- public static final int MB_IOCACK = 0x81;
-
- /** negative ioctl acknowledge */
- public static final int MB_IOCNAK = 0x82;
-
- /** priority proto message */
- public static final int MB_PCPROTO = 0x83;
-
- /** generate process signal */
- public static final int MB_PCSIG = 0x84;
-
- /** generate read notification */
- public static final int MB_READ = 0x85;
-
- /** flush your queues */
- public static final int MB_FLUSH = 0x86;
-
- /** stop transmission immediately */
- public static final int MB_STOP = 0x87;
-
- /** restart transmission after stop */
- public static final int MB_START = 0x88;
-
- /** line disconnect */
- public static final int MB_HANGUP = 0x89;
-
- /** fatal error used to set u.u_error */
- public static final int MB_ERROR = 0x8a;
-
- /** post an event to an event queue */
- public static final int MB_PCEVENT = 0x8b;
-
-
- /** Normal priority messages */
- public static final int MB_NORMAL = 0x00;
-
- /** High priority control messages */
- public static final int MB_PRIORITY = 0x80;
-
- // Default private constructor to avoid instantiation
- private MessageType ()
- {
- }
-}
-
diff --git a/java/JACE/ASX/Module.java b/java/JACE/ASX/Module.java
deleted file mode 100644
index 2b80cd690c9..00000000000
--- a/java/JACE/ASX/Module.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * Module.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * Provides an abstraction for managing a bi-directional flow of
- * messages. <P>
- *
- * This is based on the Module concept in System V Streams,
- * which contains a pair of Tasks, one for handling upstream
- * processing, one for handling downstream processing.
- */
-public class Module
-{
- // = Initialization and termination methods.
-
- /**
- * Create an empty Module.
- */
- public Module ()
- {
- // Do nothing...
- this.name ("<unknown>");
- }
-
- /*
- * Create an initialized module.
- *@param modName identity of the module.
- *@param writerQ writer task of the module.
- *@param readerQ reader task of the module.
- *@param flags Module flags
- */
- public Module (String modName,
- Task writerQ,
- Task readerQ,
- Object flags)
- {
- this.open (modName, writerQ, readerQ, flags);
- }
-
- /*
- * Create an initialized module.
- *@param modName identity of the module.
- *@param writerQ writer task of the module.
- *@param readerQ reader task of the module.
- *@param flags Module flags
- */
- public void open (String modName,
- Task writerQ,
- Task readerQ,
- Object arg)
- {
- this.name (modName);
- this.arg_ = arg;
-
- if (writerQ == null)
- writerQ = new ThruTask ();
- if (readerQ == null)
- readerQ = new ThruTask ();
-
- this.reader (readerQ);
- this.writer (writerQ);
-
- // Setup back pointers.
- readerQ.module (this);
- writerQ.module (this);
- }
-
-
- /*
- * Set the writer task.
- *@param q the writer task
- */
- public void writer (Task q)
- {
- this.qPair_[1] = q;
- if (q != null)
- q.flags (ACE.CLR_BITS (q.flags (), TaskFlags.ACE_READER));
- }
-
- /*
- * Set the reader task.
- *@param q the reader task
- */
- public void reader (Task q)
- {
- this.qPair_[0] = q;
- if (q != null)
- q.flags (ACE.SET_BITS (q.flags (), TaskFlags.ACE_READER));
- }
-
- /*
- * Link this Module on top of Module.
- *@param m the module to link this on top of.
- */
- public void link (Module m)
- {
- this.next (m);
- this.writer ().next (m.writer ());
- m.reader ().next (this.reader ());
- }
-
- /*
- * Set and get pointer to sibling Task in Module.
- *@param orig the task to get the sibling for
- *@return the sibling of the task
- */
- public Task sibling (Task orig)
- {
- if (this.qPair_[0] == orig)
- return this.qPair_[1];
- else if (this.qPair_[1] == orig)
- return this.qPair_[0];
- else
- return null;
- }
-
- /*
- * Close down the module and its tasks.
- *@param flags Module flags
- *@return 0 on success, -1 on failure
- */
- public int close (long flags)
- {
- Task readerQ = this.reader ();
- Task writerQ = this.writer ();
- int result = 0;
-
- if (readerQ != null)
- {
- if (readerQ.close (flags) == -1)
- result = -1;
- readerQ.flush (flags);
- readerQ.next (null);
- }
-
- if (writerQ != null)
- {
- if (writerQ.close (flags) == -1)
- result = -1;
- writerQ.flush (flags);
- writerQ.next (null);
- }
-
- return result;
- }
-
- /*
- * Get the argument passed to tasks.
- *@return the argument passed to tasks.
- */
- public Object arg ()
- {
- return this.arg_;
- }
-
- /*
- * Set the argument to be passed to tasks.
- *@param a the argument to be passed to tasks.
- */
- public void arg (Object a)
- {
- this.arg_ = a;
- }
-
- /*
- * Get the name of the module.
- *@return the name of the module.
- */
- public String name ()
- {
- return this.name_;
- }
-
- /*
- * Set the name of the module.
- *@param n the name of the module.
- */
- public void name (String n)
- {
- this.name_ = n;
- }
-
- /*
- * Get the writer task of the module.
- *@return the writer task of the module.
- */
- public Task writer ()
- {
- return this.qPair_[1];
- }
-
- /*
- * Get the reader task of the module.
- *@return the reader task of the module.
- */
- public Task reader ()
- {
- return this.qPair_[0];
- }
-
- /*
- * Get the next pointer to the module above in the stream.
- *@return the next pointer to the module above in the stream.
- */
- public Module next ()
- {
- return this.next_;
- }
-
- /*
- * Set the next pointer to the module above in the stream.
- *@param m the next pointer to the module above in the stream.
- */
- public void next (Module m)
- {
- this.next_ = m;
- }
-
- private Task qPair_[] = new Task[2];
- // Pair of Tasks that form the "read-side" and "write-side" of the
- // ACE_Module partitioning.
-
- private String name_ = null;
- // Name of the ACE_Module.
-
- private Module next_;
- // Next ACE_Module in the stack.
-
- private Object arg_;
- // Argument passed through to the reader and writer task when they
- // are opened.
-
-}
-
diff --git a/java/JACE/ASX/Stream.java b/java/JACE/ASX/Stream.java
deleted file mode 100644
index 6a968714ab7..00000000000
--- a/java/JACE/ASX/Stream.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * Stream.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * This class is the primary abstraction for the ASX framework.
- * It is moduled after System V Stream. <P>
- *
- * A Stream consists of a stack of Modules, each of which
- * contains two Tasks.
- *
- *@see Module
- *@see Task
- */
-
-public class Stream
-{
-
- public Stream ()
- {
- this (null, null, null);
- }
-
- // Create a Stream consisting of <head> and <tail> as the Stream
- // head and Stream tail, respectively. If these are 0 then the
- // <ACE_Stream_Head> and <ACE_Stream_Tail> are used, respectively.
- // <arg> is the value past in to the open() methods of the tasks.
-
- public Stream (Object a,
- Module head,
- Module tail)
- {
- this.linkedUs_ = null;
- // this.final_close_ = this.lock_;
-
- if (this.open (a, head, tail) == -1)
- ACE.ERROR ("open" + head.name () + " " + tail.name ());
- }
-
- public int push (Module newTop)
- {
- if (this.pushModule (newTop,
- this.streamHead_.next (),
- this.streamHead_) == -1)
- return -1;
- else
- return 0;
- }
-
- // Note that the timeout tv is absolute time
- public int put (MessageBlock mb, TimeValue tv)
- {
- return this.streamHead_.writer ().put (mb, tv);
- }
-
- // Note that the timeout tv is absolute time
- public MessageBlock get (TimeValue tv) throws InterruptedException
- {
- return this.streamHead_.reader ().getq (tv);
- }
-
-// Return the "top" ACE_Module in a ACE_Stream, skipping over the
-// stream_head.
-
- public Module top ()
- {
- if (this.streamHead_.next () == this.streamTail_)
- return null;
- else
- return this.streamHead_.next ();
- }
-
-// Remove the "top" ACE_Module in a ACE_Stream, skipping over the
-// stream_head.
-
- public int pop (long flags)
- {
- if (this.streamHead_.next () == this.streamTail_)
- return -1;
- else
- {
- // Skip over the ACE_Stream head.
- Module top = this.streamHead_.next ();
- Module newTop = top.next ();
-
- this.streamHead_.next (newTop);
-
- // Close the top ACE_Module.
-
- top.close (flags);
-
- this.streamHead_.writer ().next (newTop.writer ());
- newTop.reader ().next (this.streamHead_.reader ());
-
- return 0;
- }
- }
-
-// Remove a named ACE_Module from an arbitrary place in the
-// ACE_Stream.
-
- public int remove (String name, long flags)
- {
- Module prev = null;
-
- for (Module mod = this.streamHead_;
- mod != null; mod = mod.next ())
- if (name.compareTo (mod.name ()) == 0)
- {
- if (prev == null) // Deleting ACE_Stream Head
- this.streamHead_.link (mod.next ());
- else
- prev.link (mod.next ());
-
- mod.close (flags);
- return 0;
- }
- else
- prev = mod;
-
- return -1;
- }
-
- public Module find (String name)
- {
- for (Module mod = this.streamHead_;
- mod != null;
- mod = mod.next ())
- if (name.compareTo (mod.name ()) == 0)
- return mod;
-
- return null;
- }
-
-// Actually push a module onto the stack...
-
- private int pushModule (Module newTop,
- Module currentTop,
- Module head)
- {
- Task ntReader = newTop.reader ();
- Task ntWriter = newTop.writer ();
- Task ctReader = null;
- Task ctWriter = null;
-
- if (currentTop != null)
- {
- ctReader = currentTop.reader ();
- ctWriter = currentTop.writer ();
- ctReader.next (ntReader);
- }
-
- ntWriter.next (ctWriter);
-
- if (head != null)
- {
- if (head != newTop)
- head.link (newTop);
- }
- else
- ntReader.next (null);
-
- newTop.next (currentTop);
-
- if (ntReader.open (newTop.arg ()) == -1)
- return -1;
-
- if (ntWriter.open (newTop.arg ()) == -1)
- return -1;
- return 0;
- }
-
- public synchronized int open (Object a,
- Module head,
- Module tail)
- {
- Task h1 = null, h2 = null;
- Task t1 = null, t2 = null;
-
- if (head == null)
- {
- h1 = new StreamHead ();
- h2 = new StreamHead ();
- head = new Module ("ACEStreamHead", h1, h2, a);
- }
-
- if (tail == null)
- {
- t1 = new StreamTail ();
- t2 = new StreamTail ();
- tail = new Module ("ACEStreamTail",
- t1, t2, a);
- }
-
- // Make sure *all* the allocation succeeded!
- if (h1 == null || h2 == null || head == null
- || t1 == null || t2 == null || tail == null)
- {
- // Close up!
- head.close (0);
- tail.close (0);
- return -1;
- }
-
- this.streamHead_ = head;
- this.streamTail_ = tail;
-
- if (this.pushModule (this.streamTail_,
- null, null) == -1)
- return -1;
- else if (this.pushModule (this.streamHead_,
- this.streamTail_,
- this.streamHead_) == -1)
- return -1;
- else
- return 0;
- }
-
- public synchronized int close (long flags)
- {
- if (this.streamHead_ != null
- && this.streamTail_ != null)
- {
- // Don't bother checking return value here.
- this.unlinkInternal ();
-
- int result = 0;
-
- // Remove and cleanup all the intermediate modules.
-
- while (this.streamHead_.next () != this.streamTail_)
- {
- if (this.pop (flags) == -1)
- result = -1;
- }
-
- // Clean up the head and tail of the stream.
- if (this.streamHead_.close (flags) == -1)
- result = -1;
- if (this.streamTail_.close (flags) == -1)
- result = -1;
-
- this.streamHead_ = null;
- this.streamTail_ = null;
-
- // Tell all threads waiting on the close that we are done.
- // this.final_close_.broadcast ();
- return result;
- }
- return 0;
- }
-
- public int control (int cmd, Object a) throws InterruptedException
- {
- IOCntlMsg ioc = new IOCntlMsg (cmd);
-
- // Create a data block that contains the user-supplied data.
- MessageBlock db =
- new MessageBlock (MessageType.MB_IOCTL,
- null,
- a);
-
- // Create a control block that contains the control field and a
- // pointer to the data block.
- MessageBlock cb =
- new MessageBlock (MessageType.MB_IOCTL,
- db,
- (Object) ioc);
-
- int result = 0;
-
- if (this.streamHead_.writer ().put (cb, null) == -1)
- result = -1;
- else if ((cb = this.streamHead_.reader ().getq (null)) == null)
- result = -1;
- else
- result = ((IOCntlMsg ) cb.obj ()).rval ();
-
- return result;
- }
-
-// Link two streams together at their bottom-most Modules (i.e., the
-// one just above the Stream tail). Note that all of this is premised
-// on the fact that the Stream head and Stream tail are non-NULL...
-// This must be called with locks held.
-
- private int linkInternal (Stream us)
- {
- this.linkedUs_ = us;
- // Make sure the other side is also linked to us!
- us.linkedUs_ = this;
-
- Module myTail = this.streamHead_;
-
- if (myTail == null)
- return -1;
-
- // Locate the module just above our Stream tail.
- while (myTail.next () != this.streamTail_)
- myTail = myTail.next ();
-
- Module otherTail = us.streamHead_;
-
- if (otherTail == null)
- return -1;
-
- // Locate the module just above the other Stream's tail.
- while (otherTail.next () != us.streamTail_)
- otherTail = otherTail.next ();
-
- // Reattach the pointers so that the two streams are linked!
- myTail.writer ().next (otherTail.reader ());
- otherTail.writer ().next (myTail.reader ());
- return 0;
- }
-
- public synchronized int link (Stream us)
- {
- return this.linkInternal (us);
- }
-
-// Must be called with locks held...
-
- private int unlinkInternal ()
- {
- // Only try to unlink if we are in fact still linked!
-
- if (this.linkedUs_ != null)
- {
- Module myTail = this.streamHead_;
-
- // Only relink if we still exist!
- if (myTail != null)
- {
- // Find the module that's just before our stream tail.
- while (myTail.next () != this.streamTail_)
- myTail = myTail.next ();
-
- // Restore the writer's next() link to our tail.
- myTail.writer ().next (this.streamTail_.writer ());
- }
-
- Module otherTail = this.linkedUs_.streamHead_;
-
- // Only fiddle with the other side if it in fact still remains.
- if (otherTail != null)
- {
- while (otherTail.next () != this.linkedUs_.streamTail_)
- otherTail = otherTail.next ();
-
- otherTail.writer ().next (this.linkedUs_.streamTail_.writer ());
-
- }
-
- // Make sure the other side is also aware that it's been unlinked!
- this.linkedUs_.linkedUs_ = null;
-
- this.linkedUs_ = null;
- return 0;
- }
- else
- return -1;
- }
-
- public synchronized int unlink ()
- {
- return this.unlinkInternal ();
- }
-
- public void dump ()
- {
- ACE.DEBUG ("-------- module links --------");
-
- for (Module mp = this.streamHead_; ; mp = mp.next ())
- {
- ACE.DEBUG ("module name = " + mp.name ());
- if (mp == this.streamTail_)
- break;
- }
-
- ACE.DEBUG ("-------- writer links --------");
-
- Task tp;
-
- for (tp = this.streamHead_.writer (); ; tp = tp.next ())
- {
- ACE.DEBUG ("writer queue name = " + tp.name ());
- tp.dump ();
- ACE.DEBUG ("-------\n");
- if (tp == this.streamTail_.writer ()
- || (this.linkedUs_ != null && tp == this.linkedUs_.streamHead_.reader ()))
- break;
- }
-
- ACE.DEBUG ("-------- reader links --------\n");
- for (tp = this.streamTail_.reader (); ; tp = tp.next ())
- {
- ACE.DEBUG ("reader queue name = " + tp.name ());
- tp.dump ();
- ACE.DEBUG ("-------\n");
- if (tp == this.streamHead_.reader ()
- || (this.linkedUs_ != null && tp == this.linkedUs_.streamHead_.writer ()))
- break;
- }
- }
-
- Module streamHead_ = null;
- // Pointer to the head of the stream.
-
- Module streamTail_ = null;
- // Pointer to the tail of the stream.
-
- Stream linkedUs_ = null;
- // Pointer to an adjoining linked stream.
-
- // = Synchronization objects used for thread-safe streams.
- // ACE_SYNCH_MUTEX lock_;
- // Protect the stream against race conditions.
-
- // ACE_SYNCH_CONDITION final_close_;
- // Use to tell all threads waiting on the close that we are done.
-
-}
-
-
diff --git a/java/JACE/ASX/StreamHead.java b/java/JACE/ASX/StreamHead.java
deleted file mode 100644
index 1492b43a297..00000000000
--- a/java/JACE/ASX/StreamHead.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * StreamHead.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * Standard module that acts as the head of a ustream.
- */
-
-public class StreamHead extends Task
-{
- // Module that acts as the head of a Stream.
-
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long l)
- {
- return 0;
- }
-
- public int svc ()
- {
- return -1;
- }
-
- private int control (MessageBlock mb)
- {
-
- IOCntlMsg ioc = (IOCntlMsg) mb.obj ();
- int cmd = ioc.cmd ();
-
- switch (cmd)
- {
- case IOCntlCmds.SET_LWM:
- case IOCntlCmds.SET_HWM:
- this.waterMarks (cmd, mb.cont ().length ());
- ioc.rval (0);
- break;
- default:
- return 0;
- }
- return ioc.rval ();
- }
-
- /* Performs canonical flushing at the ACE_Stream Head */
-
- private int canonicalFlush (MessageBlock mb)
- {
- String s = mb.base ();
- long f = (new Long (s)).longValue ();
-
- if ((f & TaskFlags.ACE_FLUSHR) != 0)
- {
- this.flush (TaskFlags.ACE_FLUSHALL);
- f &= ~TaskFlags.ACE_FLUSHR;
- }
- if ((f & TaskFlags.ACE_FLUSHW) != 0)
- return this.reply (mb, null);
- return 0;
- }
-
- // Will block forever to add the given MessageBlock
- public int put (MessageBlock mb)
- {
- return this.put (mb, null);
- }
-
- // tv is absolute time
- public int put (MessageBlock mb, TimeValue tv)
- {
- int res = 0;
- if (mb.msgType () == MessageType.MB_IOCTL
- && (res = this.control (mb)) == -1)
- return res;
-
- if (this.isWriter ())
- {
- return this.putNext (mb, tv);
- }
- else /* this.isReader () */
- {
- switch (mb.msgType ())
- {
- case MessageType.MB_FLUSH:
- return this.canonicalFlush (mb);
- default:
- break;
- }
-
- try
- {
- return this.putq (mb, tv);
- }
- catch (InterruptedException e)
- {
- return -1;
- }
- }
- }
-
- public void dump ()
- {
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-
-}
diff --git a/java/JACE/ASX/StreamTail.java b/java/JACE/ASX/StreamTail.java
deleted file mode 100644
index c1148a4c0f1..00000000000
--- a/java/JACE/ASX/StreamTail.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * StreamTail.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * Standard module that acts as the tail of a ustream.
- */
-public class StreamTail extends Task
-{
- // Module that acts as the tail of a Stream.
-
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long l)
- {
- return 0;
- }
-
- public int svc ()
- {
- return -1;
- }
-
- private int control (MessageBlock mb)
- {
- IOCntlMsg ioc = (IOCntlMsg) mb.obj ();
- int cmd = ioc.cmd ();
-
- switch (cmd)
- {
- case IOCntlCmds.SET_LWM:
- case IOCntlCmds.SET_HWM:
- {
- int size = mb.cont ().length ();
-
- this.waterMarks (cmd, size);
- this.sibling ().waterMarks (cmd, size);
- ioc.rval (0);
- break;
- }
- default:
- mb.msgType (MessageType.MB_IOCNAK);
- }
- return this.reply (mb, null);
- }
-
- // Perform flush algorithm as though we were the driver
- private int canonicalFlush (MessageBlock mb)
- {
- String s = mb.base ();
- long f = (new Long (s)).longValue ();
-
- if ((f & TaskFlags.ACE_FLUSHW) != 0)
- {
- this.flush (TaskFlags.ACE_FLUSHALL);
- f &= ~TaskFlags.ACE_FLUSHW;
- }
- if ((f & TaskFlags.ACE_FLUSHR) != 0)
- {
- this.sibling ().flush (TaskFlags.ACE_FLUSHALL);
- return this.reply (mb, null);
- }
- return 0;
- }
-
- // put the given MessageBlock without a timeout (block forever if
- // necessary)
- public int put (MessageBlock mb)
- {
- return this.put (mb, null);
- }
-
- // tv is an absolute time timeout
- public int put (MessageBlock mb, TimeValue tv)
- {
- if (this.isWriter ())
- {
- switch (mb.msgType ())
- {
- case MessageType.MB_IOCTL:
- return this.control (mb);
- /* NOTREACHED */
- default:
- break;
- }
- }
-
- return -1;
- }
-
- public void dump ()
- {
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-
-}
diff --git a/java/JACE/ASX/Task.java b/java/JACE/ASX/Task.java
deleted file mode 100644
index b13de64f16a..00000000000
--- a/java/JACE/ASX/Task.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * Task.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-import JACE.Reactor.*;
-import JACE.Concurrency.*;
-
-/**
- * Primary interface for application message processing, as well
- * as input and output message queueing. <P>
- *
- * This class serves as the basis for passive and active objects
- * in ACE.
- *
- *@see MessageQueue
- *@see EventHandler
- */
-public abstract class Task implements Runnable, EventHandler
-{
- // = Initialization/termination methods.
-
- /**
- * Initialize a Task. Note, we allocate a message queue ourselves.
- */
- public Task ()
- {
- this.msgQueue_ = new MessageQueue ();
- this.thrMgr_ = null;
- }
-
- /**
- * Initialize a Task. Note, we use the message queue and thread
- * manager supplied by the user.
- *@param mq Message Queue to hold list of messages on the Task
- *@param thrMgr Thread Manager that manages all the spawned threads
- */
- public Task (MessageQueue mq,
- ThreadManager thrMgr)
- {
- this.msgQueue_ = mq;
- this.thrMgr_ = thrMgr;
- }
-
- /**
- * Not meant to be invoked by the user directly!. This needs to be
- * in the public interface in order to get invoked by Thread
- * class.
- */
- public void run ()
- {
- this.svc ();
- }
-
- // = Initialization and termination hooks (note that these *must* be
- // defined by subclasses).
-
- /**
- * Hook called to open a Task.
- *@param obj used to pass arbitrary information
- */
- public abstract int open (Object obj);
-
- /**
- * Hook called to close a Task.
- */
- public abstract int close (long flags);
-
- // = Immediate and deferred processing methods, respectively.
-
- /**
- * Transfer a message into the queue to handle immediate
- * processing.
- *@param mb Message Block to handle immediately
- *@param tv Latest time to wait until (absolute time)
- */
- public abstract int put (MessageBlock mb, TimeValue tv);
-
- /**
- * Run by a daemon thread to handle deferred processing. Note, that
- * to do anything useful, this method should be overriden by the
- * subclass.
- *@return default implementation always returns 0.
- */
- public int svc ()
- {
- return 0;
- }
-
- /**
- * Set the underlying Thread Manager.
- *@param t Thread Manager to use
- */
- public synchronized void thrMgr (ThreadManager t)
- {
- this.thrMgr_ = t;
- }
-
- /**
- * Get the Thread Manager.
- *@return Underlying Thread Manager
- */
- public synchronized ThreadManager thrMgr ()
- {
- return this.thrMgr_;
- }
-
- // = Active object method.
-
- /**
- * Turn the task into an active object. That is, having <nThreads>
- * separate threads of control that all invoke Task::svc.
- *@param flags Task Flags
- *@param nThreads number of threads to spawn
- *@param forceActive whether to force creation of new threads or not
- *@return -1 if failure occurs, 1 if Task is already an active
- * object and <forceActive> is false (doesn't *not* create a new
- * thread in this case), and 0 if Task was not already an active
- * object and a thread is created successfully or thread is an active
- * object and <forceActive> is true.
- */
- public synchronized int activate (long flags, int nThreads, boolean forceActive)
- {
- // Create a Thread Manager if we do not already have one
- if (this.thrMgr_ == null)
- this.thrMgr_ = new ThreadManager ();
-
- if (this.thrCount () > 0 && forceActive == false)
- return 1; // Already active.
- this.flags_ = flags;
-
- if (ACE.BIT_ENABLED (flags, TaskFlags.THR_DAEMON))
- this.thrMgr_.spawnN (nThreads, this, true); // Spawn off all threads as daemon threads
- else // Spawn off all threads as normal threads
- this.thrMgr_.spawnN (nThreads, this, false);
-
- return 0;
- }
-
- // = Suspend/resume a Task
-
- /**
- * Suspend a task. Default implementation is a no-op.
- */
- public synchronized void suspend ()
- {
- }
-
- /**
- * Resume a suspended task. Default implementation is a no-op.
- */
- public synchronized void resume ()
- {
- }
-
- /**
- * Get the current group name.
- *@return name of the current thread group
- */
- public synchronized String grpName ()
- {
- if (this.thrMgr_ != null)
- return this.thrMgr_.thrGrp ().getName ();
- else
- return null;
- }
-
- /**
- * Get the message queue associated with this task.
- *@return the message queue associated with this task.
- */
- public MessageQueue msgQueue ()
- {
- return this.msgQueue_;
- }
-
- /**
- * Set the message queue associated with this task.
- *@param mq Message Queue to use with this Task.
- */
- public void msgQueue (MessageQueue mq)
- {
- this.msgQueue_ = mq;
- }
-
- /**
- * Get the number of threads currently running within the Task.
- *@return the number of threads currently running within the Task.
- * 0 if we're a passive object, else > 0.
- */
- public synchronized int thrCount ()
- {
- if (this.thrMgr_ != null)
- return this.thrMgr_.thrGrp ().activeCount ();
- else
- return 0;
- }
-
- /**
- * Set the Task flags
- *@param flags Task Flags
- */
- public synchronized void flags (long flags)
- {
- this.flags_ = flags;
- }
-
- /**
- * Get the Task flags
- *@return Task Flags
- */
- public synchronized long flags ()
- {
- return this.flags_;
- }
-
- // = Message queue manipulation methods.
-
-
- /*
- * Dump debug information.
- */
- public void dump ()
- {
- }
-
- /**
- * Insert a message into the queue, blocking forever if necessary.
- *@param mb Message Block to insert
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected int putq (MessageBlock mb) throws InterruptedException
- {
- return this.putq(mb, null);
- }
-
- /**
- * Insert message into the message queue.
- *@param mb Message Block to insert into the Message Queue
- *@param tv time to wait until (absolute time)
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected int putq (MessageBlock mb, TimeValue tv) throws InterruptedException
- {
- return this.msgQueue_.enqueueTail (mb, tv);
- }
-
- /**
- * Extract the first message from the queue, blocking forever if
- * necessary.
- *@return the first Message Block from the Message Queue.
- *@exception InterrupteException Interrupted while accessing queue
- */
- protected MessageBlock getq() throws InterruptedException
- {
- return this.getq(null);
- }
-
- /**
- * Extract the first message from the queue. Note that the call is blocking.
- *@return the first Message Block from the Message Queue.
- *@param tv Latest time to wait until (absolute time)
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected MessageBlock getq (TimeValue tv) throws InterruptedException
- {
- return this.msgQueue_.dequeueHead (tv);
- }
-
- /**
- * Return a message back to the queue.
- *@param mb Message Block to return back to the Message Queue
- *@param tv Latest time to wait until (absolute time)
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected int ungetq (MessageBlock mb, TimeValue tv) throws InterruptedException
- {
- return this.msgQueue_.enqueueHead (mb, tv);
- }
-
- /**
- * Transfer message to the adjacent ACETask in an ACEStream.
- *@param mb Message Block to transfer to the adjacent Task
- *@param tv Latest time to wait until (absolute time)
- *@return -1 if there is no adjacent Task, else the return value of
- * trying to put the Message Block on that Task's Message Queue.
- */
- protected int putNext (MessageBlock mb, TimeValue tv)
- {
- return this.next_ == null ? -1 : this.next_.put (mb, tv);
- }
-
- /**
- * Turn the message back around. Puts the message in the sibling's
- * Message Queue.
- *@param mb Message Block to put into sibling's Message Queue
- *@param tv Latest time to wait until (absolute time)
- *@return -1 if there is no adjacent Task to the sibling, else the
- * return value of trying to put the Message Block on sibling's
- * Message Queue.
- */
- protected int reply (MessageBlock mb, TimeValue tv)
- {
- return this.sibling ().putNext (mb, tv);
- }
-
- // = ACE_Task utility routines to identify names et al.
-
- /**
- * Get the name of the enclosing Module.
- *@return the name of the enclosing Module if there's one associated
- * with the Task, else null.
- */
- protected String name ()
- {
- if (this.mod_ == null)
- return null;
- else
- return this.mod_.name ();
- }
-
- /**
- * Get the Task's sibling.
- *@return the Task's sibling if there's one associated with the
- * Task's Module, else null.
- */
- protected Task sibling ()
- {
- if (this.mod_ == null)
- return null;
- else
- return this.mod_.sibling (this);
- }
-
- /**
- * Set the Task's module.
- *@param mod the Task's Module.
- */
- protected void module (Module mod)
- {
- this.mod_ = mod;
- }
-
- /**
- * Get the Task's module.
- *@return the Task's Module if there is one, else null.
- */
- protected Module module ()
- {
- return this.mod_;
- }
-
- /**
- * Check if queue is a reader.
- *@return true if queue is a reader, else false.
- */
- protected boolean isReader ()
- {
- return (ACE.BIT_ENABLED (this.flags_, TaskFlags.ACE_READER));
- }
-
- /**
- * Check if queue is a writer.
- *@return true if queue is a writer, else false.
- */
- protected boolean isWriter ()
- {
- return (ACE.BIT_DISABLED (this.flags_, TaskFlags.ACE_READER));
- }
-
- // = Pointers to next ACE_Queue (if ACE is part of an ACE_Stream).
-
- /**
- * Get next Task pointer.
- *@return pointer to the next Task
- */
- protected Task next ()
- {
- return this.next_;
- }
-
- /**
- * Set next Task pointer.
- *@param task next task pointer
- */
- protected void next (Task task)
- {
- this.next_ = task;
- }
-
- // Special routines corresponding to certain message types.
-
- /**
- * Flush the Message Queue
- *@return 0 if Message Queue is null, 1 if flush succeeds, -1 if
- * ACE_FLUSHALL bit is not enabled in flags.
- */
- protected int flush (long flag)
- {
- if (ACE.BIT_ENABLED (flag, TaskFlags.ACE_FLUSHALL))
- return (this.msgQueue_ == null ? 0 : 1);
- else
- return -1;
- }
-
-
- /**
- * Manipulate watermarks.
- *@param cmd IOCntlCmd
- *@param size watermark
- */
- protected void waterMarks (int cmd, int size)
- {
- if (cmd == IOCntlCmds.SET_LWM)
- this.msgQueue_.lowWaterMark (size);
- else /* cmd == IOCntlMsg.SET_HWM */
- this.msgQueue_.highWaterMark (size);
- }
-
- private ThreadManager thrMgr_ = null;
- // Thread_Manager that manages all the spawned threads
-
- private long flags_;
- // Task flags.
-
- private MessageQueue msgQueue_;
- // List of messages on the Task..
-
- private Task next_;
- // Adjacent ACE_Task.
-
- private Module mod_;
- // Back-pointer to the enclosing module.
-}
diff --git a/java/JACE/ASX/TaskFlags.java b/java/JACE/ASX/TaskFlags.java
deleted file mode 100644
index 13347283adf..00000000000
--- a/java/JACE/ASX/TaskFlags.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TaskFlags.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * Flags used within Task.
- *
- *@see Task
- */
-public abstract class TaskFlags
-{
- /** Identifies a Task as being the "reader" in a Module. */
- public static final int ACE_READER = 01;
-
- /** Just flush data messages in the queue. */
- public static final int ACE_FLUSHDATA = 02;
-
- /** Flush all messages in the Queue. */
- public static final int ACE_FLUSHALL = 04;
-
- /** Flush read queue */
- public static final int ACE_FLUSHR = 010;
-
- /** Flush write queue */
- public static final int ACE_FLUSHW = 020;
-
- /** Flush both queues */
- public static final int ACE_FLUSHRW = 030;
-
- /** Identifies a thread as suspended */
- public static final int THR_SUSPENDED = 0x00000080;
-
- /** Identifies a thread as a daemon thread */
- public static final int THR_DAEMON = 0x00000100;
-
- // Default private constructor to avoid instantiation
- private TaskFlags ()
- {
- }
-}
diff --git a/java/JACE/ASX/ThruTask.java b/java/JACE/ASX/ThruTask.java
deleted file mode 100644
index 3fd0bbd4476..00000000000
--- a/java/JACE/ASX/ThruTask.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * ThruTask.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * Standard module that acts as a "no op", simply passing on all
- * data to its adjacent neighbor.
- */
-public class ThruTask extends Task
-{
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int put (MessageBlock msg, TimeValue tv)
- {
- return this.putNext (msg, tv);
- }
-
- public int svc ()
- {
- return -1;
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-}
diff --git a/java/JACE/ASX/TimeValue.java b/java/JACE/ASX/TimeValue.java
deleted file mode 100644
index 452f80447c4..00000000000
--- a/java/JACE/ASX/TimeValue.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Reactor
- *
- * = FILENAME
- * TimeValue.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-//package JACE.Reactor;
-package JACE.ASX;
-
-/**
- * Encapsulates a specific time or time interval. <P>
- *
- * Also provides methods for generating absolute times from
- * relative times. This is used throughout JACE for timeouts.
- *
- *@see TimedWait
- */
-public class TimeValue
-{
- /**
- * TimeValue representing 0 seconds and 0 nanoseconds.
- */
- public final static TimeValue zero = new TimeValue (0,0);
-
- /**
- * Default constructor. This creates a TimeValue that is
- * equal to TimeValue.zero.
- */
- public TimeValue ()
- {
- this (0, 0);
- }
-
- /**
- * Constructor
- *@param sec seconds
- */
- public TimeValue (long sec)
- {
- this (sec, 0);
- }
-
- /**
- * Constructor
- *@param sec seconds
- *@param nanos nanoseconds
- */
- public TimeValue (long sec, int nanos)
- {
- this.set (sec, nanos);
- }
-
- /**
- * Sets the seconds and nanoseconds of Time Value
- *@param sec seconds
- *@param nanos nanoseconds
- */
- public void set (long sec, int nanos)
- {
- this.millisec_ = sec * 1000;
- this.nanos_ = nanos;
- this.normalize ();
- }
-
- /**
- * Get seconds
- *@return Seconds
- */
- public long sec ()
- {
- return this.millisec_/1000;
- }
-
- /**
- * Get nanoseconds
- *@return Nanoseconds
- */
- public int nanos ()
- {
- return this.nanos_;
- }
-
- /**
- * Get time in milliseconds.
- *@return time in milliseconds
- */
- public long getMilliTime ()
- {
- return this.millisec_;
- }
-
- /**
- * Get a String representation of the Time Value.
- *@return String representation of the Time Value
- */
- public String toString ()
- {
- return (new Long (this.millisec_/1000)).toString () + ":" +
- (new Integer (this.nanos_)).toString ();
- }
-
- /**
- * Get current time.
- *@return the current system time as a new TimeValue
- */
- public static TimeValue getTimeOfDay ()
- {
- return new TimeValue (System.currentTimeMillis ()/1000);
- }
-
- /**
- * Return a new TimeValue that represents the current system time
- * of day offset by the given number of seconds and nanoseconds.
- *@param sec Number of seconds to offset by
- *@param nanos Number of nanoseconds to offset by
- *@see JACE.ASX.TimeValue
- *@return TimeValue for the system time plus the given offset
- */
- public static TimeValue relativeTimeOfDay(long sec, int nanos)
- {
- return new TimeValue ((System.currentTimeMillis() / 1000) + sec,
- nanos);
- }
-
- /**
- * Return a new TimeValue that represents the current system time
- * of day offset by the given TimeValue.
- *@param tv TimeValue to offset by
- *@see JACE.ASX.TimeValue
- *@return TimeValue for the system time plus the given offset
- */
- public static TimeValue relativeTimeOfDay(TimeValue offset)
- {
- return new TimeValue ((System.currentTimeMillis() / 1000) +
- offset.sec(),
- offset.nanos());
- }
-
- /**
- * Compare two Time Values for equality.
- *@param tv Time Value to compare with
- *@return true if the two Time Values are equal, false otherwise
- */
- public boolean equals (TimeValue tv)
- {
- return this.millisec_ == (tv.sec () * 1000) && this.nanos_ == tv.nanos ();
- }
-
- /**
- * Compare two Time Values for non-equality.
- *@param tv Time Value to compare with
- *@return true if the two Time Values are not equal, false otherwise
- */
- public boolean notEquals (TimeValue tv)
- {
- return !this.equals (tv);
- }
-
- /**
- * Add two Time Values.
- *@param tv1 The first Time Value
- *@param tv2 The second Time Value
- *@return sum of the two Time Values.
- */
- public static TimeValue plus (TimeValue tv1, TimeValue tv2)
- {
- TimeValue tv = new TimeValue (tv1.sec () + tv2.sec (),
- tv1.nanos () + tv2.nanos ());
- tv.normalize ();
- return tv;
- }
-
- /**
- * Subtract two Time Values.
- *@param tv1 The first Time Value
- *@param tv2 The second Time Value
- *@return difference of the two Time Values.
- */
- public static TimeValue minus (TimeValue tv1, TimeValue tv2)
- {
- TimeValue tv = new TimeValue (tv1.sec () - tv2.sec (),
- tv1.nanos () - tv2.nanos ());
- tv.normalize ();
- return tv;
- }
-
- /**
- * Add Time Value to "this".
- *@param tv The Time Value to add to this.
- */
- public void plusEquals (TimeValue tv)
- {
- this.set (this.sec () + tv.sec (),
- this.nanos () + tv.nanos ());
- this.normalize ();
- }
-
- /**
- * Subtract Time Value from "this".
- *@param tv The Time Value to subtract from this.
- */
- public void minusEquals (TimeValue tv)
- {
- this.set (this.sec () - tv.sec (),
- this.nanos () - tv.nanos ());
- this.normalize ();
- }
-
- /**
- * Compare two Time Values for less than.
- *@param tv Time Value to compare with
- *@return true if "this" is less than tv, false otherwise
- */
- public boolean lessThan (TimeValue tv)
- {
- return tv.greaterThan (this);
- }
-
- /**
- * Compare two Time Values for greater than.
- *@param tv Time Value to compare with
- *@return true if "this" is greater than tv, false otherwise
- */
- public boolean greaterThan (TimeValue tv)
- {
- if (this.sec () > tv.sec ())
- return true;
- else if (this.sec () == tv.sec ()
- && this.nanos () > tv.nanos ())
- return true;
- else
- return false;
- }
-
- /**
- * Compare two Time Values for <=.
- *@param tv Time Value to compare with
- *@return true if "this" <= tv, false otherwise
- */
- public boolean lessThanEqual (TimeValue tv)
- {
- return tv.greaterThanEqual (this);
- }
-
- /**
- * Compare two Time Values for >=.
- *@param tv Time Value to compare with
- *@return true if "this" >= tv, false otherwise
- */
- public boolean greaterThanEqual (TimeValue tv)
- {
- return this.sec () >= tv.sec () && this.nanos () >= tv.nanos ();
- }
-
- private void normalize ()
- {
- if (this.nanos_ >= ONE_MILLISECOND)
- {
- do
- {
- this.millisec_++;
- this.nanos_ -= ONE_MILLISECOND;
- }
- while (this.nanos_ >= ONE_MILLISECOND);
- }
- else if (this.nanos_ <= -ONE_MILLISECOND)
- {
- do
- {
- this.millisec_--;
- this.nanos_ += ONE_MILLISECOND;
- }
- while (this.nanos_ <= -ONE_MILLISECOND);
- }
-
- if (this.millisec_ >= 1 && this.nanos_ < 0)
- {
- this.millisec_--;
- this.nanos_ += ONE_MILLISECOND;
- }
- else if (this.millisec_ < 0 && this.nanos_ > 0)
- {
- this.millisec_++;
- this.nanos_ -= ONE_MILLISECOND;
- }
- }
-
- private long millisec_;
- private int nanos_;
- private final static int ONE_MILLISECOND = 1000000;
-}
diff --git a/java/JACE/ASX/TimedWait.java b/java/JACE/ASX/TimedWait.java
deleted file mode 100644
index dc1d0bab673..00000000000
--- a/java/JACE/ASX/TimedWait.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TimedWait.java
- *
- *@author Prashant Jain and Doug Schmidt
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * A wait/notify system with absolute time timeouts and built-in
- * check of a condition. <P>
- *
- * Subclasses define the condition to check, and the object to
- * wait on can be specified.
- */
-public abstract class TimedWait
-{
- /**
- * Default Constructor. Sets "this" to be used for the delegation of
- * the wait() call to.
- */
- public TimedWait ()
- {
- object_ = this;
- }
-
- /**
- * Constructor. Allows subclasses to supply us with an Object that
- * is delegated the wait() call.
- *@param obj The Object that is delegated the wait() call.
- */
- public TimedWait (Object obj)
- {
- object_ = obj;
- }
-
- /**
- * Hook method that needs to be implemented by subclasses.
- */
- public abstract boolean condition ();
-
- /**
- * Wait until condition becomes true. Note that the method
- * blocks. Also note that this method is final to ensure that no one
- * overrides it.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- *@exception InterruptedException Interrupted during wait
- */
- public final void timedWait () throws InterruptedException
- {
- // Acquire the monitor lock.
- if (!condition ())
- {
- // Only attempt to perform the wait if the condition isn't
- // true initially.
- for (;;)
- {
- // Wait until we are notified.
- object_.wait ();
-
- // Recheck the condition.
- if (condition ())
- break; // Condition became true.
-
- // else we were falsely notified so go back into wait
- }
- }
- }
-
- /**
- * Template Method that implements the actual timed wait. Note that
- * this method is final to ensure that no one overrides it.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- * If the specified wait time is zero, this checks the condition,
- * then returns on success or throws a TimeoutException on failure.
- *@param tv Absolute time to wait until before throwing an exception
- * if the condition isn't satisfied
- *@exception java.lang.InterruptedException Interrupted during wait
- *@exception JACE.ASX.TimeoutException Reached timeout specified
- */
- public final void timedWait (TimeValue tv)
- throws InterruptedException,
- TimeoutException
- {
- if (tv == null) {
- this.timedWait();
- return;
- }
-
- // Acquire the monitor lock.
- if (!condition ())
- {
- long start = System.currentTimeMillis();
- long waitTime = tv.getMilliTime() - start;
-
- for (;;) {
-
- // Prevent a conversion from absolute to relative time from
- // generating a zero or negative waitTime.
- if (waitTime < 1)
- throw new TimeoutException ();
-
- // Wait until we are notified.
- object_.wait (waitTime);
-
- // Recheck the condition.
- if (!condition ()) {
-
- long now = System.currentTimeMillis();
-
- // Timed out!
- if (now >= tv.getMilliTime ())
- throw new TimeoutException ();
- else
- // We still have some time left to wait, so adjust the
- // wait_time.
- waitTime = tv.getMilliTime() - now;
- }
- else
- break; // Condition became true.
- }
- }
- }
-
- /**
- * Notify any one thread waiting on the object_.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- */
- public final void signal () {
- object_.notify ();
- }
-
- /**
- * Notify all threads waiting on the object_.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- */
- public final void broadcast () {
- object_.notifyAll ();
- }
-
- /**
- * The object we delegate to. If a subclass gives us a particular
- * object, we use that to delegate to, otherwise, we ``delegate''
- * to ourself (i.e., this).
- */
- protected Object object_;
-
-}
diff --git a/java/JACE/ASX/TimeoutException.java b/java/JACE/ASX/TimeoutException.java
deleted file mode 100644
index d55cc4fe999..00000000000
--- a/java/JACE/ASX/TimeoutException.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TimeoutException.java
- *
- *@author Prashant Jain and Doug Schmidt
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * Thrown when a timer has expired.
- */
-public class TimeoutException extends Exception
-{
- /**
- * Default Constructor.
- */
- public TimeoutException ()
- {
- super ("Timed Out");
- }
-
- /**
- * Constructor.
- *@param timeout The timeout value which expired.
- *@param desc Textual description of the exception
- */
- public TimeoutException (TimeValue timeout, String desc)
- {
- super ("Timed Out in " + timeout + ": " + desc);
- }
-
-}
diff --git a/java/JACE/ASX/package.html b/java/JACE/ASX/package.html
deleted file mode 100644
index 346782ed083..00000000000
--- a/java/JACE/ASX/package.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Message queueing facilities.
-<P>
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#ipc">
-Documents on ACE interprocess communication components</a>
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#streams">
-Documents on the ACE streams framework</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/Concurrency/AbstractLock.java b/java/JACE/Concurrency/AbstractLock.java
deleted file mode 100644
index c8afaf789ae..00000000000
--- a/java/JACE/Concurrency/AbstractLock.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Lock.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.Concurrency;
-
-import JACE.ASX.*;
-
-/**
- * Interface for any Java ACE synchronization mechanism.
- * <P>
- * Defines the interface for Token, Mutex, RWMutex, Semaphore,
- * and the RemoteLock proxies in the Token service, as well as
- * the possible constant return values.
- * <P>
- * Methods which take TimeValue timeouts can throw
- * JACE.ASX.TimeoutExceptions. The locks should continue to
- * function properly after a thread times out or is interrupted.
- * <em>Also note that the timeouts are absolute time-of-day
- * values, not relative times.</em>
- * <P>
- * An AbstractLock.FAILURE can be returned for an undefined type of
- * failure.
- * <P>
- * You can assume that
- * AbstractLock.FAILURE < AbstractLock.SUCCESS < AbstractLock.SLEEPHOOK
- * <P>
- * Any method can throw a LockException, providing a way to return
- * unusual error cases in future types of locks (such as the Token
- * service).
- * <P>
- * It is safe to call release () in a finally block, since it will
- * return FAILURE if the accessing thread is not the owner.
- *
- */
-public interface AbstractLock
-{
- /**
- * Generic failure indication, used as a return value.
- */
- public static final int FAILURE = -1;
-
- /**
- * Success indication, used as a return value.
- */
- int SUCCESS = 0;
-
- /**
- * Success indication, but notes that the thread had to sleep
- * to complete it (and it called the sleep hook). Used as a
- * return value.
- */
- int SLEEPHOOK = 1;
-
-
- /**
- * Acquire ownership of the lock, blocking indefinitely if necessary.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException special exception defined by a later
- * implementation
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int acquire () throws LockException, InterruptedException;
-
- /**
- * Acquire ownership of the lock by the given absolute time time-out.
- * A value of null for the timeout parameter results in a blocking
- * acquire.
- * A value of TimeValue.zero throws a TimeoutException if the
- * acquire would block.
- * <P>
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate Lock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception LockException special exception defined by a later
- * implementation
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- *@see AbstractLock#tryAcquire
- */
- public int acquire (TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException;
-
- /**
- * Acquire a read lock, blocking indefinitely if necessary. This can
- * be used to implement Reader-Writer locks in which multiple readers
- * may have simultaneous access.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException special exception defined by a later
- * implementation
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int acquireRead () throws LockException, InterruptedException;
-
- /**
- * Acquire a read lock by the given absolute time time-out. This can
- * be used to implement Reader-Writer locks in which multiple readers
- * may have simultaneous access.
- * <P>
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate lock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception LockException special exception defined by a later
- * implementation
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- *@see AbstractLock#tryAcquireRead
- */
- public int acquireRead (TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException;
-
- /**
- * Acquire a write lock, blocking indefinitely if necessary. This can
- * be used to implement Reader-Writer locks in which a writer has
- * exclusive access.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException special exception defined by a later
- * implementation
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int acquireWrite () throws LockException, InterruptedException;
-
- /**
- * Acquire a write lock by the given absolute time time-out. This can
- * be used to implement Reader-Writer locks in which a writer has
- * exclusive access.
- * <P>
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate AbstractLock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception LockException special exception defined by a later
- * implementation
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- *@see AbstractLock#tryAcquireWrite
- */
- public int acquireWrite (TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException;
-
- /**
- * Give up the lock to some number of waiting threads (if any), then
- * reacquire, blocking indefinitely if necessary.
- * <P>
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token.
- * <P>
- *@param requeuePosition position in the waiters queue to insert
- * this thread. If this value is -1 and there are other
- * threads waiting to obtain the token, this thread is queued
- * at the end. If this value is greater than -1, then it
- * indicates how many entries to skip over before inserting
- * our thread into the queue. (For example, if it is 0,
- * this thread is put at the front of the queue.) If this
- * value is greater than the number of waiters, this thread is
- * simply put at the end of the current waiters queue.
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException special exception defined by a later
- * implementation
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int renew (int requeuePosition) throws LockException,
- InterruptedException;
-
- /**
- * Give up the lock to some waiting threads (if any), then reacquire
- * by the given absolute time time-out.
- * <P>
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token.
- * <P>
- * A value of null for the timeout should indicate a blocking renew.
- * <P>
- *@param requeuePosition position in the waiters queue to insert
- * this thread. If this value is -1 and there are other
- * threads waiting to obtain the token, this thread is queued
- * at the end. If this value is greater than -1, then it
- * indicates how many entries to skip over before inserting
- * our thread into the queue. (For example, if it is 0,
- * this thread is put at the front of the queue.) If this
- * value is greater than the number of waiters, this thread is
- * simply put at the end of the current waiters queue.
- *
- *@param timeout absolute time by which the lock must be reacquired
- *
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException special exception defined by a later
- * implementation
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int renew (int requeuePosition, TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException;
-
- /**
- * Try to acquire the lock without blocking.
- * <P>
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException special exception defined by a later
- * implementation
- */
- public int tryAcquire () throws LockException;
-
- /**
- * Try to acquire a read lock without blocking.
- * <P>
- *@see #acquireRead
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException special exception defined by a later
- * implementation
- */
- public int tryAcquireRead () throws LockException;
-
- /**
- * Try to acquire a write lock without blocking.
- *<P>
- *@see #acquireWrite
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException special exception defined by a later
- * implementation
- */
- public int tryAcquireWrite () throws LockException;
-
- /**
- * Method that is called before a thread goes to sleep in an
- * acquire. This should be overridden by a subclass to define
- * the appropriate behavior.
- */
- public void sleepHook ();
-
- /**
- * Release ownership of this lock.
- * <P>
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException special exception defined by a later
- * implementation
- */
- public int release () throws LockException;
-}
diff --git a/java/JACE/Concurrency/Condition.java b/java/JACE/Concurrency/Condition.java
deleted file mode 100644
index 1889f6e1edf..00000000000
--- a/java/JACE/Concurrency/Condition.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Condition.java
- *
- *@author Irfan Pyarali
- *
- *************************************************/
-package JACE.Concurrency;
-
-import JACE.ASX.TimeoutException;
-import JACE.ASX.TimeValue;
-
-/**
- * Abstraction for <em>traditional</em>
- * condition variable
- * <P>
- * This condition variable allows the use of one
- * mutex between multiple conditions.
- * This implementation is based on the C++ version of ACE.
- */
-public class Condition
-{
- /**
- * Default constructor
- *@param Mutex for synchronization
- */
- public Condition (Mutex mutex)
- {
- mutex_ = mutex;
- }
-
- /**
- * Wait for condition to become signaled.
- *@exception InterruptedException exception during wait
- */
- public void Wait ()
- throws InterruptedException
- {
- waiters_++;
-
- try
- {
- mutex_.release();
- synchronized (waitObject_) {
- waitObject_.wait ();
- }
- mutex_.acquire ();
- }
- finally
- {
- waiters_--;
- }
- }
-
- /**
- * TimedWait for condition to become signaled. Note that the
- * given TimeValue is an absolute time, not a relative time.
- *
- *@param tv Absolute time to wait until before timing out
- *@exception TimeoutException wait timed out exception
- *@exception InterruptedException exception during wait
- */
- public void Wait (TimeValue tv)
- throws TimeoutException, InterruptedException
- {
- waiters_++;
-
- try
- {
- mutex_.release();
-
- synchronized (waitObject_) {
- long start = System.currentTimeMillis();
- long waitTime = tv.getMilliTime() - start;
- if (waitTime < 1)
- throw new TimeoutException ();
- waitObject_.wait (waitTime);
- }
-
- mutex_.acquire (tv);
- }
- finally
- {
- waiters_--;
- }
- }
-
- /**
- * Signal condition. Wake one waiter (if any).
- */
- public void signal ()
- {
- synchronized (waitObject_) {
- waitObject_.notify ();
- }
- }
-
- /**
- * Signal condition. Wake up all waiters (if any).
- */
- public void broadcast ()
- {
- synchronized (waitObject_) {
- waitObject_.notifyAll ();
- }
- }
-
- /**
- * Accessor to lock
- *@return Mutex
- */
- public Mutex mutex ()
- {
- return mutex_;
- }
-
- private int waiters_;
- private Object waitObject_ = new Object ();
- private Mutex mutex_;
-}
diff --git a/java/JACE/Concurrency/LockAdapter.java b/java/JACE/Concurrency/LockAdapter.java
deleted file mode 100644
index db2e9de05c7..00000000000
--- a/java/JACE/Concurrency/LockAdapter.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Lock.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.Concurrency;
-
-import JACE.ASX.*;
-
-/**
- * Abstract adapter class which provides useful default implementations
- * for several methods in the AbstractLock interface, as well as
- * protected helper functions for making sure only the owner
- * can perform certain operations.
- *
- *@see JACE.Concurrency.AbstractLock
- */
-public abstract class LockAdapter implements AbstractLock
-{
- /**
- * Default implementation that calls acquire (TimeValue) with a null
- * timeout.
- *
- *@see AbstractLock#acquire
- */
- public int acquire () throws InterruptedException
- {
- try {
- return acquire (null);
- } catch (TimeoutException e) {
- // This should never happen
- return AbstractLock.FAILURE;
- }
- }
-
- /**
- * Acquire ownership of the lock by the given absolute time time-out.
- * A value of null for the timeout parameter results in a blocking
- * acquire.
- * A value of TimeValue.zero throws a TimeoutException if the
- * acquire would block.
- * <P>
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate Lock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- *@see AbstractLock#tryAcquire
- */
- public abstract int acquire (TimeValue timeout)
- throws TimeoutException, InterruptedException;
-
- /**
- * Default implementation that calls acquireRead (TimeValue) with a
- * null timeout.
- *
- *@see AbstractLock#acquireRead
- */
- public int acquireRead () throws InterruptedException
- {
- try {
- return acquireRead (null);
- } catch (TimeoutException e) {
- // This should never happen
- }
-
- return AbstractLock.FAILURE;
- }
-
- /**
- * Default implementation that calls acquire (TimeValue).
- *
- *@see AbstractLock#acquireRead(TimeValue)
- */
- public int acquireRead (TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- return acquire (timeout);
- }
-
- /**
- * Default implementation that calls acquire with a null
- * timeout.
- *
- *@see AbstractLock#acquireWrite
- */
- public int acquireWrite () throws InterruptedException
- {
- try {
- return acquire (null);
- } catch (TimeoutException e) {
- // This should never happen
- }
-
- return AbstractLock.FAILURE;
- }
-
- /**
- * Default implementation that calls acquire (TimeValue).
- *
- *@see AbstractLock#acquireWrite(TimeValue)
- */
- public int acquireWrite (TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- return acquire (timeout);
- }
-
- /**
- * Default implementation that calls renew (int, TimeValue) with
- * a null timeout.
- *
- *@see AbstractLock#renew(int)
- */
- public int renew (int requeuePosition) throws InterruptedException
- {
- try
- {
- return renew (requeuePosition, null);
- } catch (TimeoutException e) {
- // Note that this should never happen since we requested a
- // blocking acquire.
- return AbstractLock.FAILURE;
- }
- }
-
- /**
- * Give up the lock to some waiting threads (if any), then reacquire
- * by the given absolute time time-out.
- * <P>
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token.
- * <P>
- * A value of null for the timeout should indicate a blocking renew.
- * <P>
- *@param requeuePosition position in the waiters queue to insert
- * this thread. If this value is -1 and there are other
- * threads waiting to obtain the token, this thread is queued
- * at the end. If this value is greater than -1, then it
- * indicates how many entries to skip over before inserting
- * our thread into the queue. (For example, if it is 0,
- * this thread is put at the front of the queue.) If this
- * value is greater than the number of waiters, this thread is
- * simply put at the end of the current waiters queue.
- *
- *@param timeout absolute time by which the lock must be reacquired
- *
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public abstract int renew (int requeuePosition,
- TimeValue timeout)
- throws TimeoutException,
- InterruptedException;
-
- /**
- * Default implementation that calls tryAcquire ().
- *
- *@see AbstractLock#tryAcquireRead
- */
- public int tryAcquireRead ()
- {
- return tryAcquire ();
- }
-
- /**
- * Default implementation that calls tryAcquire ().
- *
- *@see AbstractLock#tryAcquireWrite
- */
- public int tryAcquireWrite ()
- {
- return tryAcquire ();
- }
- /**
- * Try to acquire the lock without blocking.
- * <P>
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- */
- public abstract int tryAcquire ();
-
- /**
- * Default implementation as a no-op.
- *
- *@see AbstractLock#sleepHook
- */
- public void sleepHook ()
- {
- }
-
- /**
- * Release ownership of this lock.
- * <P>
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- */
- public abstract int release ();
-
- /**
- * Obtains an Object which uniquely identifies the current accessor
- * (usually a thread). This is used to make sure only an owner can
- * perform certain operations like release. Subclasses can redefine
- * the behavior as necessary, such as in the Token service where it is
- * defined to be the client ID sent by the proxy.
- * <P>
- * When using Java 1.2 or later, it might be more efficient to use
- * ThreadLocal and an Integer for the ID. The current default
- * implementation returns the Thread.currentThread () reference.
- *
- *@return Object representing a unique ID for this accessor
- */
- protected Object accessorID ()
- {
- return Thread.currentThread();
- }
-
- /**
- * Check to see if the current accessor is the (or a) owner of this
- * lock.
- */
- protected boolean isOwner()
- {
- return accessorID().equals(this.owner_);
- }
-
- /**
- * Set the current accessor to be the (or a) owner of this lock.
- */
- protected void setOwner()
- {
- this.owner_ = accessorID();
- }
-
- /**
- * Make sure that this accessor is no longer the (or a) owner of this
- * lock.
- */
- protected void clearOwner()
- {
- this.owner_ = null;
- }
-
- /**
- * Reference to the accessorID of the owner.
- */
- private Object owner_;
-}
diff --git a/java/JACE/Concurrency/LockException.java b/java/JACE/Concurrency/LockException.java
deleted file mode 100644
index dff4c09c626..00000000000
--- a/java/JACE/Concurrency/LockException.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package JACE.Concurrency;
-
-/**
- * Base class for possible exceptions thrown from Lock
- * mechanisms. This can be used by later Lock
- * implementations to signal special types of exceptions, such
- * as a remote failure, etc.
- * <P>
- */
-public class LockException extends java.lang.Exception
-{
- /**
- * Default constructor
- */
- public LockException () { }
-
- /**
- * Constructor with a string message that will be returned
- * via the getMessage() method on Exception.
- * <P>
- *@see java.lang.Exception#getMessage
- */
- public LockException (String message)
- {
- super(message);
- }
-}
-
diff --git a/java/JACE/Concurrency/Mutex.java b/java/JACE/Concurrency/Mutex.java
deleted file mode 100644
index 856fdbd79eb..00000000000
--- a/java/JACE/Concurrency/Mutex.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Mutex.java
- *
- *@author Prashant Jain
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-/**
- * Value added abstraction for mutex variable creation.
- *
- * A mutex whose operations do not block forever and can time out.
- * <P>
- * <EM>This class does not support recursive semantics.</EM>
- */
-public class Mutex extends LockAdapter
-{
- /**
- * Acquire ownership of the lock, blocking indefinitely if necessary.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public synchronized int acquire () throws InterruptedException
- {
- if (this.monitor_.condition ()) {
- this.monitor_.condition (false);
- setOwner ();
- return AbstractLock.SUCCESS;
- }
-
- this.numberOfWaiters_++;
- try {
- sleepHook ();
- this.monitor_.timedWait ();
- } finally {
- this.numberOfWaiters_--;
- }
- this.monitor_.condition (false);
- setOwner();
-
- return AbstractLock.SLEEPHOOK;
- }
-
- public int renew (int requeuePosition,
- TimeValue timeout)
- throws InterruptedException,
- TimeoutException
- {
- RenewObject rwo;
-
- synchronized (this) {
-
- if (!this.isOwner ())
- return AbstractLock.FAILURE;
-
- if (numberOfWaiters_ == 0 || requeuePosition == 0)
- return AbstractLock.SUCCESS;
-
- if (requeuePosition < 0 || requeuePosition > numberOfWaiters_)
- requeuePosition = numberOfWaiters_;
-
- rwo = new RenewObject (requeuePosition);
-
- this.release ();
- this.renewers_.addElement (rwo);
- }
-
- // We can't have the method synchronized, or synchronize on (this)
- // in here because then the Thread that was woken up won't be able
- // to continue its acquire.
- //
- // Normally when an exception occurs in timedWait, this thread just
- // needs to remove itself from the renewers queue.
- //
- // However, the following situation exists:
- // Thread A is the current owner, and is doing processing in release()
- // This thread generates a timeout exception in timedWait
- // Thread A signals this thread to wake up and take ownership, and
- // removes it from the queue.
- // This thread never takes ownership -- the exception keeps going up.
- //
- // This could lead to other renewers waiting in limbo forever.
- //
- // Solution: If this thread has an exception and it looks like it
- // has been proclaimed the owner, then it calls release and lets
- // the exception continue.
-
- boolean exceptionOccured = true;
- try {
- synchronized (rwo) {
- rwo.timedWait (timeout);
-
- exceptionOccured = false;
- }
- } finally {
- if (exceptionOccured) {
- synchronized (this) {
- if (!renewers_.removeElement (rwo)) {
- setOwner ();
- release ();
- }
- }
- }
- }
-
- synchronized (this) {
- setOwner ();
- }
-
- // By this point, we should know that we have the lock. The condition
- // flag is never set to true in the release() call from the Thread
- // that gave us control.
-
- return AbstractLock.SUCCESS;
- }
-
- public synchronized int tryAcquire () {
- if (this.monitor_.condition ()) {
- this.monitor_.condition (false);
- setOwner();
- return AbstractLock.SUCCESS;
- } else
- return AbstractLock.FAILURE;
- }
-
- public synchronized int acquire (TimeValue tv)
- throws TimeoutException, InterruptedException
- {
- if (this.monitor_.condition ()) {
- this.monitor_.condition (false);
- setOwner ();
- return AbstractLock.SUCCESS;
- }
-
- this.numberOfWaiters_++;
- try {
- sleepHook ();
- this.monitor_.timedWait (tv);
- } finally {
- this.numberOfWaiters_--;
- }
- this.monitor_.condition (false);
- setOwner();
-
- return AbstractLock.SLEEPHOOK;
- }
-
- /**
- * Checks any objects in the renewers queue, giving one of them
- * the lock if it is appropriate. Assumes the synchronization
- * lock is already held.
- *
- *@return true if a renewer was signaled, else false
- */
- protected boolean signalNextRenewer ()
- {
- // First find the renewer with the minimum yieldTo count, processing
- // all of them along the way.
- if (this.renewers_.size() > 0) {
-
- RenewObject renewer = (RenewObject)renewers_.
- elementAt (renewers_.size () - 1);
-
- renewer.decrementYieldTo ();
-
- for (int i = this.renewers_.size() - 2; i >=0; i--) {
-
- RenewObject rwo = (RenewObject)renewers_.elementAt (i);
-
- rwo.decrementYieldTo ();
-
- renewer = renewer.min (rwo);
- }
-
- // If the renewer with the minimum yieldTo count has yielded to
- // enough threads, or if there are no waiting threads, it should
- // be signaled (thus, it wakes up and obtains the lock again).
-
- if (renewer.condition () || numberOfWaiters_ == 0) {
- // Note that we leave monitor_.condition in the false state so
- // we are assured that only the renewer (and not another
- // Thread that does an acquire) will gain control. This
- // is important since the renew method can't be synchronized
- // in its current implementation.
- renewers_.removeElement(renewer);
-
- synchronized (renewer) {
- renewer.signal ();
- }
-
- return true;
- }
- }
-
- return false;
- }
-
- public synchronized int release ()
- {
- if (!isOwner())
- return AbstractLock.FAILURE;
-
- if (!signalNextRenewer ()) {
- // Do a normal release if there are no threads waiting to renew
- // or no such threads are ready to renew.
- this.monitor_.condition (true);
- this.monitor_.signal ();
- }
-
- return AbstractLock.SUCCESS;
- }
-
- /**
- * Monitor used to signal whether or not this Mutex is available.
- */
- protected WaitObject monitor_ = new WaitObject (true, this);
- // The monitor (adapter) to wait on
-
- /**
- * Queue of waiting renewers.
- */
- protected Vector renewers_ = new Vector ();
-
- /**
- * Number of waiting threads.
- */
- protected int numberOfWaiters_ = 0;
-}
diff --git a/java/JACE/Concurrency/RWMutex.java b/java/JACE/Concurrency/RWMutex.java
deleted file mode 100644
index abb30ce3bc8..00000000000
--- a/java/JACE/Concurrency/RWMutex.java
+++ /dev/null
@@ -1,268 +0,0 @@
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-/**
- * A read/write lock allows multiple
- * readers or a single writer to access the guarded element.
- * <P>
- * <EM>This class does not support recursive semantics.</EM>
- */
-public class RWMutex extends LockAdapter
-{
- public synchronized int tryAcquire ()
- {
- if (referenceCount_ == 0) {
- referenceCount_ = -1;
- setOwner ();
- return AbstractLock.SUCCESS;
- } else
- return AbstractLock.FAILURE;
- }
-
- public synchronized int tryAcquireRead ()
- {
- if (referenceCount_ > -1 && waiters_.size () == 0) {
- referenceCount_++;
- setOwner ();
- return AbstractLock.SUCCESS;
- } else
- return AbstractLock.FAILURE;
- }
-
- public int acquire(TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- return acquireWrite(timeout);
- }
-
- public void waitUntilIsOwner (RWWaitObject waitObj, TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- boolean exceptionOccured = true;
- try {
- sleepHook ();
- synchronized (waitObj) {
- waitObj.timedWait (timeout);
- }
- exceptionOccured = false;
- } finally {
-
- synchronized (this) {
-
- if (exceptionOccured) {
- if (!waiters_.removeElement (waitObj)) {
- setOwner ();
- release ();
- }
- } else
- setOwner();
- }
- }
- }
-
- public int acquireRead(TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- RWWaitObject waitObj = null;
-
- synchronized (this) {
-
- if (referenceCount_ > -1 && waiters_.size () == 0) {
- referenceCount_++;
- setOwner ();
- return AbstractLock.SUCCESS;
- }
-
- waitObj = new RWWaitObject (true);
-
- waiters_.addElement (waitObj);
- }
-
- waitUntilIsOwner (waitObj, timeout);
-
- return AbstractLock.SLEEPHOOK;
- }
-
- public int acquireWrite(TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- RWWaitObject waitObj = null;
-
- synchronized (this) {
-
- if (referenceCount_ == 0) {
- referenceCount_ = -1;
- setOwner ();
- return AbstractLock.SUCCESS;
- }
-
- waitObj = new RWWaitObject (false);
-
- waiters_.addElement (waitObj);
- }
-
- waitUntilIsOwner (waitObj, timeout);
-
- // When the writer gets here, it has been cleared to go by
- // whatever thread specifically gave control to this writer in
- // release. The referenceCount_ and numberOfWaitingWriters_
- // variables are also adjusted by the releasing thread since
- // it already has a synchronization lock. Not doing that,
- // and then having another synchronized (this) block in here
- // could lead to a situation in which another thread sneaks
- // in inbetween when this thread leaves timedWait and goes to
- // adjust them.
-
- return AbstractLock.SLEEPHOOK;
- }
-
-
- public synchronized int release ()
- {
- if (!isOwner ())
- return AbstractLock.FAILURE;
-
- clearOwner ();
-
- // Releasing a reader.
- if (referenceCount_ > 0) {
- referenceCount_--;
-
- if (referenceCount_ != 0)
- return AbstractLock.SUCCESS;
-
- } else {
- // releasing a writer
- referenceCount_ = 0;
- }
-
- if (waiters_.size () == 0)
- return AbstractLock.SUCCESS;
-
- if (releaseFirstReaders () == 0) {
- RWWaitObject waitObj = (RWWaitObject)waiters_.firstElement ();
- waiters_.removeElementAt (0);
-
- referenceCount_ = -1;
-
- waitObj.condition (true);
- synchronized (waitObj) {
- waitObj.signal ();
- }
- }
-
- return AbstractLock.SUCCESS;
- }
-
- // Releases all waiting readers up to the first waiting writer
- // or the end of the queue. Returns the number of readers
- // released.
- protected int releaseFirstReaders ()
- {
- int releasedReaders = 0;
-
- do {
-
- RWWaitObject waitObj = (RWWaitObject)waiters_.firstElement ();
- if (!waitObj.isReader ())
- break;
-
- waiters_.removeElementAt (0);
-
- referenceCount_++;
- releasedReaders++;
-
- waitObj.condition (true);
- synchronized (waitObj) {
- waitObj.signal ();
- }
-
- } while (waiters_.size () > 0);
-
- return releasedReaders;
- }
-
- public int renew (int requeuePosition,
- JACE.ASX.TimeValue timeout)
- throws InterruptedException,
- TimeoutException
- {
- RWWaitObject waitObj = null;
-
- synchronized (this) {
-
- if (!isOwner ())
- return AbstractLock.FAILURE;
-
- if (requeuePosition == 0 || waiters_.size () == 0)
- return AbstractLock.SUCCESS;
-
- waitObj = new RWWaitObject (referenceCount_ > 0);
-
- if (requeuePosition < 0 || requeuePosition > waiters_.size ()) {
- requeuePosition = waiters_.size ();
- }
-
- waiters_.insertElementAt (waitObj, requeuePosition);
-
- release ();
- }
-
- waitUntilIsOwner (waitObj, timeout);
-
- // When the writer gets here, it has been cleared to go by
- // whatever thread specifically gave control to this writer in
- // release. The referenceCount_ and numberOfWaitingWriters_
- // variables are also adjusted by the releasing thread since
- // it already has a synchronization lock. Not doing that,
- // and then having another synchronized (this) block in here
- // could lead to a situation in which another thread sneaks
- // in inbetween when this thread leaves timedWait and goes to
- // adjust them.
-
- return AbstractLock.SUCCESS;
- }
-
- static class RWWaitObject extends WaitObject
- {
- public RWWaitObject (boolean isReader)
- {
- isReader_ = isReader;
- }
-
- public boolean isReader ()
- {
- return isReader_;
- }
-
- private boolean isReader_ = false;
- }
-
- protected boolean isOwner ()
- {
- return owners_.containsKey (accessorID());
- }
-
- protected void setOwner ()
- {
- owners_.put (accessorID(), this);
- }
-
- protected void clearOwner ()
- {
- owners_.remove (accessorID());
- }
-
- private Vector waiters_ = new Vector ();
-
- private int referenceCount_ = 0;
- // Value is -1 if writer has the lock, else this keeps track of the
- // number of readers holding the lock.
-
- private Hashtable owners_ = new Hashtable ();
-
- private int nestingLevel_ = 0;
-}
-
diff --git a/java/JACE/Concurrency/RenewObject.java b/java/JACE/Concurrency/RenewObject.java
deleted file mode 100644
index b690958968a..00000000000
--- a/java/JACE/Concurrency/RenewObject.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package JACE.Concurrency;
-
-import JACE.ASX.TimedWait;
-
-class RenewObject extends TimedWait
-{
- public RenewObject (int maxYieldTo)
- {
- yieldTo_ = maxYieldTo;
- }
-
- public boolean condition ()
- {
- return yieldTo_ <= 0;
- }
-
- public void decrementYieldTo()
- {
- this.yieldTo_--;
- }
-
- public int yieldTo ()
- {
- return this.yieldTo_;
- }
-
- public RenewObject min (RenewObject other)
- {
- if (other.yieldTo_ < this.yieldTo_)
- return other;
- else
- return this;
- }
-
- private int yieldTo_;
-}
diff --git a/java/JACE/Concurrency/Semaphore.java b/java/JACE/Concurrency/Semaphore.java
deleted file mode 100644
index 5e558035aee..00000000000
--- a/java/JACE/Concurrency/Semaphore.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Semaphore.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-/**
- * Implementation of Dijkstra's counting semaphore in java.
- * <P>
- * <EM>This class does not support recursive semantics.</EM>
- */
-public class Semaphore extends LockAdapter
-{
- static class TimedWaitSAdapter extends JACE.ASX.TimedWait
- {
- TimedWaitSAdapter (Object obj)
- {
- super (obj);
- }
-
- // Check to see if there are any semaphores available.
- public boolean condition ()
- {
- return this.count_ > 0;
- }
-
- // Increment the count by one
- public void increment ()
- {
- this.count_++;
- }
-
- // Decrement the count by one
- public void decrement ()
- {
- this.count_--;
- }
-
- // Set the count
- public void count (int c)
- {
- this.count_ = c;
- }
-
- public int count ()
- {
- return this.count_;
- }
-
- private int count_ = 0;
- }
-
- /**
- * Create a Semaphore.
- *@param count semaphore count
- */
- public Semaphore (int c)
- {
- this.monitor_.count (c);
- this.owners_ = new Hashtable (c);
- }
-
- /**
- * Create a binary Semaphore.
- */
- public Semaphore ()
- {
- this.monitor_.count (1);
- this.owners_ = new Hashtable (1);
- }
-
- public synchronized int tryAcquire ()
- {
- if (this.monitor_.condition ()) {
- this.monitor_.decrement ();
- setOwner ();
- return AbstractLock.SUCCESS;
- } else
- return AbstractLock.FAILURE;
- }
-
- /**
- * Acquire the Semaphore. Throws a TimeoutException if the semaphore
- * isn't acquired before the given absolute time.
- *@param tv time (TimeValue) to wait until before throwing a
- * TimeoutException (unless the semaphore is acquired before that)
- *@exception TimeoutException wait timed out exception
- *@exception InterruptedException exception during wait
- */
- public synchronized int acquire (TimeValue tv)
- throws TimeoutException, InterruptedException
- {
- if (this.monitor_.condition ()) {
- this.monitor_.decrement ();
- setOwner ();
- return AbstractLock.SUCCESS;
- }
-
- numberOfWaiters_++;
-
- try {
- sleepHook ();
- this.monitor_.timedWait (tv);
- } finally {
- numberOfWaiters_--;
- }
-
- this.monitor_.decrement ();
- setOwner ();
-
- return AbstractLock.SLEEPHOOK;
- }
-
- public synchronized int release ()
- {
- if (!isOwner ())
- return AbstractLock.FAILURE;
-
- if (!signalNextRenewer ()) {
- this.monitor_.increment ();
- this.monitor_.signal ();
- clearOwner ();
- }
-
- return AbstractLock.SUCCESS;
- }
-
- /**
- * Checks any objects in the renewers queue, giving one of them
- * the lock if it is appropriate. Assumes the synchronization
- * lock is already held.
- *
- *@return true if a renewer was signaled, else false
- */
- protected boolean signalNextRenewer ()
- {
- // First find the renewer with the minimum yieldTo count, processing
- // all of them along the way.
- if (this.renewers_.size() > 0) {
-
- RenewObject renewer = (RenewObject)renewers_.
- elementAt (renewers_.size () - 1);
-
- renewer.decrementYieldTo ();
-
- for (int i = this.renewers_.size() - 2; i >=0; i--) {
-
- RenewObject rwo = (RenewObject)renewers_.elementAt (i);
-
- rwo.decrementYieldTo ();
-
- renewer = renewer.min (rwo);
- }
-
- // If the renewer with the minimum yieldTo count has yielded to
- // enough threads, or if there are no waiting threads, it should
- // be signaled (thus, it wakes up and obtains the lock again).
-
- if (renewer.condition () || numberOfWaiters_ == 0) {
- // Note that we leave monitor_.inUse in the true state so
- // we are assured that only the renewer (and not another
- // Thread that does an acquire) will gain control. This
- // is important since the renew method can't be synchronized
- // in its current implementation.
- renewers_.removeElement(renewer);
-
- synchronized (renewer) {
- renewer.signal ();
- }
-
- return true;
- }
- }
-
- return false;
- }
-
- public int renew (int requeuePosition,
- JACE.ASX.TimeValue timeout)
- throws InterruptedException,
- TimeoutException
- {
- RenewObject rwo;
-
- synchronized (this) {
-
- if (!this.isOwner ())
- return AbstractLock.FAILURE;
-
- if (numberOfWaiters_ == 0 ||
- requeuePosition == 0 ||
- this.monitor_.condition ())
- return AbstractLock.SUCCESS;
-
- if (requeuePosition < 0 || requeuePosition > numberOfWaiters_)
- requeuePosition = numberOfWaiters_;
-
- rwo = new RenewObject (requeuePosition);
-
- this.release ();
- this.renewers_.addElement (rwo);
- }
-
- boolean exceptionOccured = true;
- try {
- synchronized (rwo) {
- rwo.timedWait (timeout);
-
- exceptionOccured = false;
- }
- } finally {
- synchronized (this) {
-
- if (exceptionOccured) {
- if (!renewers_.removeElement (rwo)) {
- setOwner ();
- release ();
- }
- } else {
- setOwner();
- }
- }
- }
-
- // By this point, we should know that we have the lock. The inUse
- // flag is never set to false in the release() call from the Thread
- // that gave us control. That thread also set the owner value.
-
- return AbstractLock.SUCCESS;
- }
-
- protected boolean isOwner ()
- {
- return owners_.containsKey (accessorID());
- }
-
- protected void setOwner ()
- {
- owners_.put (accessorID(), this);
- }
-
- protected void clearOwner ()
- {
- owners_.remove (accessorID());
- }
-
- private TimedWaitSAdapter monitor_ = new TimedWaitSAdapter (this);
- // The monitor (adapter) to wait on
-
- private Hashtable owners_;
- private Vector renewers_ = new Vector ();
- private int numberOfWaiters_ = 0;
-}
diff --git a/java/JACE/Concurrency/ThreadManager.java b/java/JACE/Concurrency/ThreadManager.java
deleted file mode 100644
index d23e2410676..00000000000
--- a/java/JACE/Concurrency/ThreadManager.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * ThreadManager.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.OS.*;
-
-/**
- * Wrapper for a ThreadGroup which provides additional methods for
- * creating a certain number of Runnable instances.
- */
-public class ThreadManager
-{
- /**
- * Default constructor
- */
- public ThreadManager ()
- {
- this (ACE.DEFAULT_THREAD_GROUP_NAME);
- }
-
- /**
- * Create a Thread Manager.
- *@param groupName name of the thread group that the Thread Manager
- * will manage
- */
- public ThreadManager (String groupName)
- {
- this.thrGrp_ = new ThreadGroup (groupName);
- if (this.thrGrp_ == null)
- ACE.ERROR ("Thread group create failed");
- }
-
- /**
- * Create a new thread.
- *@param thr the caller whose run method will be invoked when the
- * thread has been spawned
- *@param daemon flag indicating whether the thread should be
- * spawned off as a daemon thread
- */
- public void spawn (Runnable thr,
- boolean daemon)
- {
- Thread t = new Thread (this.thrGrp_, thr);
- if (daemon) // Set the thread to be a daemon thread
- t.setDaemon (true);
- t.start ();
- }
-
- /**
- * Create a new thread and also give it a name.
- *@param thr the caller whose run method will be invoked when the
- * thread has been spawned
- *@param threadName the name of the new thread
- *@param daemon flag indicating whether the thread should be
- * spawned off as a daemon thread
- */
- public void spawn (Runnable thr,
- String threadName,
- boolean daemon)
- {
- Thread t = new Thread (this.thrGrp_, thr, threadName);
- if (daemon) // Set the thread to be a daemon thread
- t.setDaemon (true);
- t.start ();
- }
-
-
- /**
- * Create <n> new threads.
- *@param n the number of threads to spawn
- *@param thr the caller whose run method will be invoked by each of
- * the <n> threads
- *@param daemon flag indicating whether the threads should be
- * spawned off as daemon threads
- */
- public void spawnN (int n,
- Runnable thr,
- boolean daemon)
- {
- // Spawn off all the threads.
- for (int i = 0; i < n; i++)
- {
- this.spawn (thr, daemon);
- }
- }
-
- /**
- * Get the thread group containing all the threads. Note that the
- * thread group can be used to get information regarding number of
- * active threads as well as to suspend/resume all the threads in
- * the group.
- *@return the thread group that contains all the threads managed by
- * the Thread Manager
- */
- public ThreadGroup thrGrp ()
- {
- return this.thrGrp_;
- }
-
- private ThreadGroup thrGrp_;
- // Thread Group that contains all the spawned threads
-
-}
diff --git a/java/JACE/Concurrency/Token.java b/java/JACE/Concurrency/Token.java
deleted file mode 100644
index c9080b47fbe..00000000000
--- a/java/JACE/Concurrency/Token.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Token.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-import JACE.OS.*;
-
-/**
- * Class that acquires, renews, and releases a synchronization
- * token that is serviced in strict FIFO ordering.
- * <P>
- * This is a general-purpose synchronization mechanism that offers
- * several benefits. For example, it implements "recursive mutex"
- * semantics, where a thread that owns the token can reacquire it
- * without deadlocking. In addition, threads that are blocked
- * awaiting the token are serviced in strict FIFO order as other
- * threads release the token. The solution makes use of the
- * Specific Notification pattern presented by Tom Cargill in
- * "Specific Notification for Java Thread Synchronization," PLoP96.
- *
- * <P>
- * This class DOES support recursive semantics.
- */
-public class Token extends LockAdapter
-{
- /**
- * Acquire ownership of the lock, blocking indefinitely if necessary.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int acquire () throws InterruptedException
- {
- try
- {
- return this.acquire (null);
- }
- catch (TimeoutException e)
- {
- // This really shouldn't happen since we are supposed to
- // block.
- return AbstractLock.FAILURE;
- }
- }
-
- /**
- * Acquire the token by the given absolute time time-out. The
- * method uses synchronized blocks internally to avoid race conditions.
- *@param timeout time to wait until before throwing a
- * TimeoutException (unless the token is acquired before that).
- * Performs a blocking acquire if the given timeout is null.
- *@return AbstractLock.SUCCESS if acquires without calling <sleepHook>
- * AbstractLock.SLEEPHOOK if <sleepHook> is called.
- * AbstractLock.FAILURE if failure occurs
- *@exception TimeoutException if time-out occurs
- *@exception InterruptedException exception during wait
- */
- public int acquire (TimeValue timeout) throws TimeoutException,
- InterruptedException
- {
- int result = AbstractLock.SUCCESS;
- WaitObject snl = new WaitObject ();
- boolean mustWait;
- synchronized (snl)
- {
- synchronized (this)
- {
- mustWait = !this.snq_.isEmpty ();
-
- if (mustWait && isOwner ())
- {
- // I am the one who has the token. So just increment
- // the nesting level
- this.nestingLevel_++;
- return AbstractLock.SUCCESS;
- }
- // Add local lock to the queue
- this.snq_.addElement (snl);
- }
- if (mustWait)
- {
- result = AbstractLock.SLEEPHOOK;
- sleepHook();
-
- boolean exceptionOccured = true;
- try {
- snl.timedWait(timeout);
- exceptionOccured = false;
- } finally {
- if (exceptionOccured) {
- synchronized (this) {
- if (!snq_.removeElement (snl)) {
- setOwner ();
- release ();
- }
- }
- }
- }
- }
-
- // Set the owner of the token
- synchronized (this) {
- setOwner();
- }
- }
-
- return result;
- }
-
- /**
- * Try to acquire the token. Implements a non-blocking acquire.
- *
- *@return AbstractLock.SUCCESS if acquires
- * AbstractLock.FAILURE if failure occurs
- */
- public synchronized int tryAcquire ()
- {
- int result = AbstractLock.SUCCESS;
-
- if (this.snq_.isEmpty ())
- {
- // No one has the token, so acquire it
- this.snq_.addElement (new WaitObject ());
-
- setOwner();
- }
- else if (isOwner())
- {
- this.nestingLevel_++;
- }
- // Someone else has the token.
- else
- {
- // Would have to block to acquire the token, so return
- // failure.
- result = AbstractLock.FAILURE;
- }
- return result;
- }
-
- /**
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token. If the given TimeValue
- * is null, it's the same as calling renew(int requeuePosition).
- *@param requeuePosition Position in the queue where to insert the
- * lock. If requeuePosition == -1 and there are other threads
- * waiting to obtain the token we are queued at the end of the list
- * of waiters. If requeuePosition > -1 then it indicates how many
- * entries to skip over before inserting our thread into the list of
- * waiters (e.g.,requeuePosition == 0 means "insert at front of the
- * queue").
- *@param timeout Throw a TimeoutException if the token isn't renewed
- * before this absolute time timeout.
- *@return AbstractLock.SUCCESS if renewed the lock
- * AbstractLock.FAILURE if failure occurs
- *@exception TimeoutException exception if timeout occurs
- *@exception InterruptedException exception during wait
- */
- public int renew (int requeuePosition, TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- WaitObject snl = null;
- int saveNestingLevel = 0;
-
- synchronized (this)
- {
- if (!isOwner ())
- return AbstractLock.FAILURE;
-
- // Check if there is a thread waiting to acquire the token. If
- // not or if requeuePosition == 0, then we don't do anything
- // and we simply keep the token.
- if (this.snq_.size () > 1 && requeuePosition != 0)
- {
- // Save the nesting level
- saveNestingLevel = this.nestingLevel_;
- this.nestingLevel_ = 0;
-
- // Reinsert ourselves at requeuePosition in the queue
- snl = (WaitObject) this.snq_.firstElement ();
- this.snq_.removeElementAt (0);
-
- if (requeuePosition < 0)
- this.snq_.addElement (snl); // Insert at end
- else
- this.snq_.insertElementAt (snl, Math.min(requeuePosition,
- this.snq_.size()));
-
- synchronized (this.snq_.firstElement ())
- {
- // Notify the first waiting thread in the queue
- WaitObject obj = (WaitObject) this.snq_.firstElement ();
- // Set its condition to be true so that it falls out
- // of the for loop
- obj.condition (true);
- // Now signal the thread
- obj.signal ();
- }
- }
- }
-
- // Check if we reinserted the lock in the queue and therefore need
- // to do a wait
- if (snl != null)
- {
- synchronized (snl)
- {
- // Set the condition to be false so that we can begin the
- // wait
- snl.condition (false);
- // Wait until the given absolute time (or until notified
- // if the timeout is null)
-
- boolean exceptionOccured = true;
- try {
-
- snl.timedWait (timeout);
-
- exceptionOccured = false;
-
- } finally {
- if (exceptionOccured) {
- synchronized (this) {
- if (!snq_.removeElement (snl)) {
- setOwner ();
- release ();
- }
- }
- }
- }
- }
-
- synchronized (this) {
- // Restore the nesting level and current owner of the lock
- this.nestingLevel_ = saveNestingLevel;
-
- // Set the owner of the token
- setOwner();
- }
- }
-
- return AbstractLock.SUCCESS;
- }
-
- /**
- * Release the token. It is safe for non-owners to call
- * this.
- *@return AbstractLock.SUCCESS on success
- * AbstractLock.FAILURE on failure (for instance, a non-owner
- * calling release)
- */
- public synchronized int release ()
- {
- if (!isOwner())
- return AbstractLock.FAILURE;
-
- // Check if nestingLevel > 0 and if so, decrement it
- if (this.nestingLevel_ > 0)
- this.nestingLevel_--;
- else
- {
- clearOwner ();
- this.snq_.removeElementAt (0);
- if (!this.snq_.isEmpty ())
- {
- synchronized (this.snq_.firstElement ())
- {
- // Notify the first waiting thread in the queue
- WaitObject obj = (WaitObject) this.snq_.firstElement ();
- // Set its condition to be true so that it falls out
- // of the for loop
- obj.condition (true);
- // Now signal the thread
- obj.signal ();
- }
- }
- }
-
- return AbstractLock.SUCCESS;
- }
-
- private Vector snq_ = new Vector ();
- // Vector of lock objects
-
- private int nestingLevel_ = 0;
- // Current Nesting Level
-}
diff --git a/java/JACE/Concurrency/WaitObject.java b/java/JACE/Concurrency/WaitObject.java
deleted file mode 100644
index b7c8cbc7191..00000000000
--- a/java/JACE/Concurrency/WaitObject.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package JACE.Concurrency;
-
-import JACE.ASX.TimedWait;
-
-class WaitObject extends TimedWait
-{
- public WaitObject ()
- {
- super ();
- }
-
- public WaitObject (Object obj)
- {
- super (obj);
- }
-
- public WaitObject (boolean initialState)
- {
- condition_ = initialState;
- }
-
- public WaitObject (boolean initialState, Object obj)
- {
- super (obj);
- condition_ = initialState;
- }
-
- public boolean condition ()
- {
- return this.condition_;
- }
-
- public void condition (boolean c)
- {
- this.condition_ = c;
- }
-
- private boolean condition_ = false;
-}
diff --git a/java/JACE/Concurrency/package.html b/java/JACE/Concurrency/package.html
deleted file mode 100644
index ceadb36f662..00000000000
--- a/java/JACE/Concurrency/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Collection of concurrency mechanisms and a Thread manager.
-<P>
-JACE concurrency mechanisms now inherit from a common base class,
-AbstractLock. This allows users to write code without regard to
-whether a lock is local or remote.
-
-@see JACE.netsvcs.Token.RemoteLock
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#concurrency">Documents on ACE concurrency components</a>
-</BODY>
-</HTML>
-
-
diff --git a/java/JACE/Connection/AcceptStrategy.java b/java/JACE/Connection/AcceptStrategy.java
deleted file mode 100644
index 3af87865c79..00000000000
--- a/java/JACE/Connection/AcceptStrategy.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * AcceptStrategy.java
- *
- *@author Prashant Jain
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-
-/**
- * Interface for specifying a passive connection
- * acceptance strategy for a
- * <a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>
- * .
- * <P>
- * This class provides a strategy that manages passive
- * connection setup for an application, and can be extended
- * to define new strategies.
- * <P>
- *
- * The default implementation delegates to a generic Acceptor.
- *
- *@see SvcHandler
- *@see Acceptor
- */
-public class AcceptStrategy
-{
- /**
- * Create an instance of AcceptStrategy that delegates to the given
- * Acceptor.
- *@param port port number where the server will listen for connections
- *@param peer Acceptor instance to delegate to
- */
- AcceptStrategy (int port, Acceptor peer) throws IOException
- {
- this.acceptor_ = peer;
- this.open (port);
- }
-
- /**
- * Create an instance of Accept Strategy that delegates to Acceptor.
- *@param port port number where the server will listen for connections
- *@exception IOException couldn't open port
- */
- AcceptStrategy (int port) throws IOException
- {
- this.acceptor_ = new Acceptor ();
- this.open (port);
- }
-
- /**
- * Initialize AcceptStrategy.
- *@param port port number where the server will listen for connections
- *@exception IOException couldn't open port
- */
- public void open (int port) throws IOException
- {
- this.acceptor_.open (port);
- }
-
- /**
- * Accept connections into the SvcHandler. Note that subclasses
- * should overwrite this method to provide a different accept
- * strategy.
- *@param sh Svc Handler in which to accept the connection
- *@exception SocketException Socket error
- *@exception IOException Socket error
- *@return 0
- */
- public int acceptSvcHandler (SvcHandler sh) throws
- SocketException, IOException
- {
- return this.acceptor_.acceptSvcHandler (sh);
- }
-
- // The Acceptor we delegate to (if any)
- private Acceptor acceptor_;
-}
diff --git a/java/JACE/Connection/Acceptor.java b/java/JACE/Connection/Acceptor.java
deleted file mode 100644
index 00dbed4c056..00000000000
--- a/java/JACE/Connection/Acceptor.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * Acceptor.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-import JACE.ServiceConfigurator.*;
-
-/**
- * Abstract factory for creating a service handler
- * (<a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>),
- * accepting into the
- * <a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>, and activating the
- * <a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>.
- * <P>
- *
- * Implements the basic strategy for passively establishing
- * connections with applications. The <tt>Acceptor</tt>
- * is a factory for <tt>SvcHandler</tt> instances, and, by default
- * generates a new <tt>SvcHandler</tt> instance for each connection
- * esablished.
- *
- * <p>
- *
- * The user of this class <em>must</em> provide a
- * reference to a handler factory prior to calling <a
- * href="#accept()"><tt>accept</tt></a>, or an exception will be
- * thrown. The handler factory is identified by the meta-class for
- * the <tt>SvcHandler</tt>, and is typically obtained by calling <a
- * href="java.lang.Class#classForName(java.lang.String)"><tt>Class.classForName("SvcHandler")</tt></a>.
- *
- * <p>
- *
- * TCP is the transport mechanism used, via
- * <a href="ACE.SOCK_SAP.SOCKAcceptor.html#_top_"><tt>SOCKAcceptor</tt></a>,
- * <em>et.al.</em> The SvcHandler is instantiated with a concrete type
- * that performs the application-specific service.
- *
- * <P>
- *
- * This class is not directly related to the
- * <tt>AcceptorStrategy</tt> class.
- *
- *
- * @see java.lang.Class
- * @see JACE.Connection.SvcHandler
- * @see JACE.SOCK_SAP.SOCKAcceptor
- */
-public class Acceptor extends ServiceObject
-{
- /**
- * Create an instance of Acceptor. Default constructor. Note that if
- * an instance is created via this method, <tt>setHandlerFactory</tt>
- * must be called prior to using <tt>accept</tt>.
- *
- * @see JACE.Connection.Acceptor#setHandlerFactory
- */
- public Acceptor ()
- {
- }
-
- /**
- * Create an instance of Acceptor.
- *@param handlerFactory meta-class reference used to create
- * an instance of a SvcHandler when a connection is accepted
- * (typically obtained by calling <tt>Class.classForName</tt>).
- *
- *@see java.lang.Class#forName
- */
- public Acceptor (Class handlerFactory)
- {
- this.handlerFactory_ = handlerFactory;
- }
-
- /**
- * Set the handler factory. This is provided to aid the default
- * no-arg constructor.
- *@param handlerFactory meta-class reference used to create
- * an instance of a SvcHandler when a connection is accepted
- * (typically obtained by calling <tt>Class.forName</tt>).
- *
- *@see java.lang.Class#forName
- */
- public void setHandlerFactory (Class handlerFactory)
- {
- this.handlerFactory_ = handlerFactory;
- }
-
- /**
- * Initialize the Acceptor.
- *@param port TCP port number where the Acceptor will listen for connections
- *@exception IOException socket level exception
- */
- public void open (int port) throws IOException
- {
- this.port_ = port;
- this.sockAcceptor_ = new SOCKAcceptor (port);
- }
-
- /**
- * Template method for accepting connections. Delegates operational
- * activities to the following bridge methods:
- * <ul>
- * <li><tt>makeSvcHandler</tt></li>
- * <li><tt>acceptSvcHandler</tt></li>
- * <li><tt>activateSvcHandler</tt></li>
- * </ul>
- *
- * <p>
- *
- * The method first obtains a <tt>SvcHandler</tt> via
- * <tt>makeSvcHandler</tt>, accepts the connection <q>into</q> the
- * handler using <tt>acceptSvcHandler</tt>, and finally turns over
- * control to the handler with <tt>activateSvcHandler</tt>.
- *
- *@exception SocketException socket level error
- *@exception InstantiationException <tt>makeSvcHandler</tt> failure
- *@exception IllegalAccessException <tt>makeSvcHandler</tt> failure
- *@exception IOException socket level error
- */
- public void accept () throws SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
-
- // Create a Svc_Handler using the appropriate Creation_Strategy
- SvcHandler sh = this.makeSvcHandler ();
-
- // Accept a connection into the SvcHandler using the appropriate
- // Accept_Strategy
- this.acceptSvcHandler (sh);
-
- // Activate the SvcHandler using the appropriate ActivationStrategy
- this.activateSvcHandler (sh);
- }
-
- /**
- * Bridge method for creating a <tt>SvcHandler</tt>. The default is to
- * create a new <SvcHandler>. However, subclasses can override this
- * policy to perform <SvcHandler> creation in any way that they like
- * (such as creating subclass instances of <SvcHandler>, using a
- * singleton, etc.)
- *@return a new instance of the SvcHandler
- *@exception InstantiationException could not create new SvcHandler
- *@exception IllegalAccessException no SvcHandler factory provided
- */
- protected SvcHandler makeSvcHandler ()
- throws InstantiationException, IllegalAccessException
- {
- // Create a new handler for the connection
- return (SvcHandler) handlerFactory_.newInstance ();
- }
-
- /**
- * Bridge method for accepting the new connection into the
- * <tt>SvcHandler</tt>. The default behavior delegates the work to
- * <tt>SOCKAcceptor.accept</tt>. However, subclasses can override this
- * strategy.
- *@param sh SvcHandler in which to accept the connection
- *@return 0
- *@exception SocketException socket level error
- *@exception IOException socket level error
- */
- protected int acceptSvcHandler (SvcHandler sh)
- throws SocketException, IOException
- {
- // Create a new stream
- SOCKStream sockStream = new SOCKStream ();
-
- // Block in accept. Returns when a connection shows up
- this.sockAcceptor_.accept (sockStream);
-
- // Set the streams for the new handler
- sh.setHandle (sockStream);
- return 0;
- }
-
- /**
- * Bridge method for activating a <tt>SvcHandler</tt>. The default
- * behavior of this method is to activate the <tt>SvcHandler</tt> by
- * calling its open() method (which allows the <tt>SvcHandler</tt> to
- * define its own concurrency strategy). However, subclasses can
- * override this strategy to do more sophisticated concurrency
- * activations.
- *@param sh SvcHandler to activate
- *@return 0
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- sh.open (null);
- return 0;
- }
-
- protected int port_ = ACE.DEFAULT_SERVER_PORT;
-
- // Handler class that should be instantiated when a connection is
- // made with a client
- protected Class handlerFactory_;
-
- // Our connection acceptance factory
- protected SOCKAcceptor sockAcceptor_;
-}
-
diff --git a/java/JACE/Connection/ActivateStrategy.java b/java/JACE/Connection/ActivateStrategy.java
deleted file mode 100644
index 91072a6c823..00000000000
--- a/java/JACE/Connection/ActivateStrategy.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * ActivateStrategy.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-
-/**
- * Bridge supporting activation strategy used by
- * <a href="ACE.Connection.StrategyAcceptor.html#_top_"><tt>StrategyAcceptor</tt></a>
- * <P>
- * Subclass and overload
- * <a href="#activateSvcHandler(ACE.Connection.SvcHandler)"><tt>activateSvcHandler</tt></a>
- * in order change the activation strategy. Then, submit this subclass to
- * <a href="ACE.Connection.StrategyAcceptor.html#_top_"><tt>StrategyAcceptor</tt></a>
- * as the activation strategy.
- *
- *@see StrategyAcceptor
- */
-public class ActivateStrategy
-{
- /**
- * Activate the Svc Handler. Note that subclasses should overwrite
- * this method to provide a different Activate strategy.
- *@param sh Svc Handler to activate
- *@return zero if success, non-zero for failure
- */
- public int activateSvcHandler (SvcHandler sh)
- {
- sh.open (null);
- return 0;
- }
-}
diff --git a/java/JACE/Connection/Blob.java b/java/JACE/Connection/Blob.java
deleted file mode 100644
index d3102c81aa2..00000000000
--- a/java/JACE/Connection/Blob.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * Blob.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-/**
- * Provides a way of reading from or writing to a remote file
- * using MessageBlocks.
- */
-public class Blob
-{
- /**
- * Initialize the Blob.
- *
- *@param filename File to read or write
- *@param hostname Host to contact for the file
- *@param port Port on which to connect
- */
- public int open (String filename, String hostname , int port)
- {
- this.filename_ = filename;
- this.hostname_ = hostname;
- this.port_ = port;
- return 0;
- }
-
- /**
- * Read a certain amount from the file.
- */
- public MessageBlock read (int length, int offset)
- {
- // Check if we have a valid length and a valid offset
- if (length < 0 || offset < 0)
- {
- ACE.ERROR ("Blob::read(): Negative length or offset");
- return null;
- }
-
- // Create a Blob Reader
- BlobReader blobReader = new BlobReader (length,
- offset,
- this.filename_,
- this.hostname_, this.port_);
-
- // Receive data
- MessageBlock mb = blobReader.receiveData ();
- if (blobReader.bytesRead () != length)
- return null;
- else
- return mb;
- }
-
- /**
- * Write a certain amount to the file.
- */
- public int write (MessageBlock mb, int length, int offset)
- {
- // Check if we have a valid length and a valid offset
- if (length < 0 || offset < 0)
- ACE.ERROR ("Blob::write(): Negative length or offset");
-
- // Create a Blob Writer
- BlobWriter blobWriter = new BlobWriter (mb, length, offset, this.filename_);
-
- try
- {
- // Connect to the server
- this.connector_.open (this.hostname_, this.port_);
- this.connector_.connect (blobWriter);
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- return blobWriter.bytesWritten ();
- }
-
- public int close ()
- {
- return 0;
- }
-
- String filename_;
- String hostname_;
- int port_;
- Connector connector_ = new Connector ();
-}
diff --git a/java/JACE/Connection/BlobHandler.java b/java/JACE/Connection/BlobHandler.java
deleted file mode 100644
index ec282bdeaa9..00000000000
--- a/java/JACE/Connection/BlobHandler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * BlobHandler.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-public abstract class BlobHandler extends SvcHandler
-{
- public BlobHandler (int length, int offset, String filename)
- {
- this.length_ = length;
- this.offset_ = offset;
- this.filename_ = filename;
- }
-
- public abstract int open (Object obj);
-
- protected int length_ = 0;
- protected int offset_ = 0;
- protected String filename_ = null;
-}
-
diff --git a/java/JACE/Connection/BlobReader.java b/java/JACE/Connection/BlobReader.java
deleted file mode 100644
index 4de6b65bedc..00000000000
--- a/java/JACE/Connection/BlobReader.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * BlobReader.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-/**
- * Provides a way to read from a remote file using
- * MessageBlocks (and HTTP). <P>
- *
- * Created by Blob during a call to read.
- */
-public class BlobReader
-{
- public BlobReader (int length,
- int offset,
- String filename,
- String hostname,
- int port)
- {
- this.length_ = length;
- this.offset_= offset;
- this.filename_ = filename;
- this.hostname_ = hostname;
- this.port_ = port;
- }
-
-
- public MessageBlock receiveData ()
- {
- String hostname = this.hostname_;
- String filename = this.filename_;
-
- // Check if the filename begins with a "/" and if so, remove it
- // since we are concatenating a "/" to the hostname.
- if (this.filename_.startsWith ("/"))
- filename = this.filename_.substring (1);
-
- hostname = hostname + ":" + this.port_ + "/";
- // System.out.println (hostname + filename);
-
- // Allocate a buffer to hold the offset worth of data
- byte tempBuf [] = new byte [this.offset_];
- // Allocate a buffer to hold the actual data
- byte dataBuf [] = new byte [this.length_];
-
- try
- {
- // Create a URL to fetch the file
- URL url = new URL (this.protocol_ + hostname + filename);
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (url.openStream ());
-
- // Read the offset worth of bytes
- iStream.readFully (tempBuf, 0, this.offset_);
-
- // Read length worth of bytes
- iStream.readFully (dataBuf, 0, this.length_);
- }
- catch (MalformedURLException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- // Cache number of bytes read
- this.bytesRead_ = this.length_;
- return new MessageBlock (new String (dataBuf, 0, this.length_));
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int bytesRead ()
- {
- return this.bytesRead_;
- }
-
- private String protocol_ = "http://";
-
- int length_ = 0;
- int offset_= 0;
- String filename_ = null;
- String hostname_ = "localhost";
- int port_ = 80;
-
- int bytesRead_ = 0;
-}
-
-
diff --git a/java/JACE/Connection/BlobWriter.java b/java/JACE/Connection/BlobWriter.java
deleted file mode 100644
index 18c9b092964..00000000000
--- a/java/JACE/Connection/BlobWriter.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * BlobWriter.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-/**
- * Provides a way to write to a remote file using MessageBlocks
- * (and HTTP). <P>
- *
- * Created by Blob during a write.
- */
-public class BlobWriter extends BlobHandler
-{
- public BlobWriter (MessageBlock mb,
- int length,
- int offset,
- String filename)
- {
- super (length, offset, filename);
- this.mb_ = mb;
- this.returnCode_ = -1;
-
- }
-
- /*******************************
- * This constructor should be used when using the basic HTTP 1.1
- * authentication scheme
- *******************************/
- public BlobWriter (MessageBlock mb,
- int length,
- int offset,
- String filename,
- String authentication)
- {
- super (length, offset, filename);
- this.mb_ = mb;
- this.returnCode_ = -1;
- this.authentication_ = authentication;
- }
-
-
- public int open (Object obj)
- {
- if (this.sendRequest () != 0)
- {
- ACE.ERROR ("BlobWriter::open():sendRequest failed");
- return -1;
- }
- else if (this.receiveReply () != 0)
- {
- ACE.ERROR ("BlobWriter::open():receiveReply failed");
- return -1;
- }
- return 0;
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int bytesWritten ()
- {
- return this.bytesWritten_;;
- }
-
- protected int sendRequest ()
- {
- // Check for sanity -- check if we have any data to send.
- if (this.offset_+ this.length_ > this.mb_.length ())
- {
- ACE.ERROR ("BlobWriter::sendRequest():Invalid offset/length");
- return -1;
- }
-
- if (this.sendHeader () == -1)
- {
- ACE.ERROR ("BlobWriter::sendHeader failed.");
- return -1;
- }
- else
- if (this.sendData () == -1)
- {
- ACE.ERROR ("BlobWriter::sendData failed.");
- return -1;
- }
- return 0;
- }
-
- // Send the header
- protected int sendHeader ()
- {
- String filename = this.filename_;
- // Check if the filename begins with a "/" and if it doesn't, add it
- if (!this.filename_.startsWith ("/"))
- filename = "/" + this.filename_;
-
- // Create the header, store the actual length in mesglen
- String mesg = this.requestPrefix_ + " " + filename + " " + this.requestSuffix_;
-
- if (this.authentication_ != null)
- mesg += "Authorization: Basic " + JACE.Connection.HTTPHelper.EncodeBase64(this.authentication_) + '\n';
-
- mesg += "Content-length: " + this.length_ + "\n";
-
- try
- {
- if (this.peer ().send (mesg) < 0)
- {
- ACE.ERROR ("Error sending request");
- return -1;
- }
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- return -1;
- }
- return 0;
- }
-
- // Send the data
- protected int sendData ()
- {
- // Get the actual data to send
- String data = this.mb_.base ().substring (this.offset_,
- this.offset_ + this.length_);
-
-
- try
- {
- // System.out.println (data);
- // Now send the data
- if (this.peer ().send (data) != this.length_)
- {
- ACE.ERROR ("Error sending file");
- return -1;
- }
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- return -1;
- }
- this.bytesWritten_ = this.length_;
- return 0;
- }
-
-
- protected int receiveReply ()
- {
- System.out.println("Waiting for reply");
-
- // Receive the reply from the server
- StringBuffer reply = new StringBuffer (1024);
-
- try
- {
- if (this.peer ().recv (reply) < 0)
- {
- ACE.ERROR ("Error receiving reply from server");
- return -1;
- }
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- String s = reply.toString ();
-
- int index = -1;
- // Now parse the reply to see if it was a success or a failure
- if ((index = s.indexOf (replyPrefix_)) == -1)
- {
- ACE.ERROR ("Error receiving reply from server");
- return -1;
- }
-
- int codeIndex = index + replyPrefix_.length () + 1;
-
- // Assume code is a 3 digit number
- String codeString = s.substring (codeIndex, codeIndex + 3);
-
- returnCode_ = (new Integer (codeString)).intValue ();
- // System.out.println (code);
-
- if (returnCode_ >= 200 && returnCode_ < 300) { // Check if everything went smoothly
- System.out.println("We got the goodies!");
- return 0;
- } else
- return -1;
- }
-
- public int returnCode ()
- {
- return this.returnCode_;
- }
-
- protected String authentication_ = null;
- protected String protocol_ = "http://";
- protected int bytesWritten_ = 0;
- protected MessageBlock mb_ = null;
- protected String requestPrefix_ = "PUT";
- protected String requestSuffix_ = "HTTP/1.0\n";
- protected String replyPrefix_ = "HTTP/1.0";
- protected int returnCode_;
-}
-
-
diff --git a/java/JACE/Connection/Connector.java b/java/JACE/Connection/Connector.java
deleted file mode 100644
index dbe72b8c359..00000000000
--- a/java/JACE/Connection/Connector.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * Connector.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-import JACE.ServiceConfigurator.*;
-
-/**
- * Abstract factory for connecting a
- * (<a href="JACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>),
- * to an application.
- * <P>
- * Implements the basic strategy for actively establishing connections
- * with applications. The <tt>Connector</tt> establishes the connection,
- * passing it on to a <tt>SvcHandler</tt> instance, and handing over
- * control to that instance.
- *<p>
- * TCP is the transport mechanism used, via
- * <a href="JACE.SOCK_SAP.SOCKConnector.html#_top_"><tt>SOCKConnector</tt></a>.
- *<P>
- * This class, as currently implemented, does not work like its C++
- * counterpart.
- * Future versions are expected to rectify this discrepancy.
- *
- *@see SOCKConnector
- *@see SvcHandler
- */
-public class Connector extends ServiceObject
-{
- /**
- * Create a Connector. Do nothing constructor. Allows user to
- * call <a href="#open(java.lang.String)">open</a>() later.
- */
- public Connector ()
- {
- }
-
- /**
- * Create a Connector passing in server hostname and port
- * number, effectively shorthand for calling
- * <a href="#open(java.lang.String)">open</a>().
- *@param hostname server hostname
- *@param port server port number
- */
- public Connector (String hostname, int port)
- {
- this.open (hostname, port);
- }
-
- /**
- * Initialize the Connector passing in server hostname and port
- * number. Note that no connection attempt is made.
- *@param hostname server hostname
- *@param port server port number
- */
- public void open (String hostname, int port)
- {
- this.hostname_ = hostname;
- this.port_ = port;
- }
-
- /**
- * Connect to the server.
- *@param sh Svc Handler to use to handle the connection
- *@exception UnknownHostException Bad host
- *@exception SocketException Socket error
- *@exception InstantiationException Couldn't create new SOCKConnector
- *@exception IllegalAccessException No strategy available
- *@exception IOException Socket error
- */
- public void connect (SvcHandler sh) throws UnknownHostException,
- SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
- // Make a connection using the appropriate Connection_Strategy
- this.connectSvcHandler (sh);
-
- // Activate the Svc_Handler using the appropriate Activation_Strategy
- this.activateSvcHandler (sh);
- }
-
- /**
- * Bridge method for making a new connection. The default behavior
- * creates a new SOCKConnector and then calls setHandle() on the
- * <SvcHandler> that was passed in. Subclasses can override this
- * strategy, if needed.
- *@param sh Svc Handler to use to handle the connection
- *@return 0
- *@exception SocketException Socket error
- *@exception IOException Socket error
- */
- protected int connectSvcHandler (SvcHandler sh) throws
- SocketException, IOException
- {
- // Create a new stream
- SOCKStream sockStream = new SOCKStream ();
-
- // Create a SOCK_Connector (note the constructor does the connect for us)
- this.sockConnector_ = new SOCKConnector (sockStream,
- this.hostname_,
- this.port_);
- ACE.DEBUG ("Connected to " +
- sockStream.socket ().getInetAddress ());
-
- // Set the streams for the new handler
- sh.setHandle (sockStream);
- return 0;
- }
-
- /**
- * Bridge method for activating a <SvcHandler>. The default
- * behavior of this method is to activate the <SvcHandler> by
- * calling its open() method (which allows the SVC_HANDLER to define
- * its own concurrency strategy). However, subclasses can override
- * this strategy to do more sophisticated concurrency activations.
- *@param sh Svc Handler to activate
- *@return 0
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- sh.open (null);
- return 0;
- }
-
-
- // Port server is listening on
- private int port_;
-
- // Server hostname
- private String hostname_;
-
- // Our connection factory
- private SOCKConnector sockConnector_;
-}
diff --git a/java/JACE/Connection/CreationStrategy.java b/java/JACE/Connection/CreationStrategy.java
deleted file mode 100644
index f4828d5bff5..00000000000
--- a/java/JACE/Connection/CreationStrategy.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * CreationStrategy.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-/**
- * Defines the interface for specifying a creation strategy for a
- * <a href="ACE.Connection.SvcHandler.html#_top_"><tt>SvcHandler</tt></a> to the
- * <a href="ACE.Connection.StrategyAcceptor.html#_top_"><tt>StrategyAcceptor</tt></a>.
- * <P>
- * The default behavior is to make a new SvcHandler. However,
- * subclasses can override this strategy to perform SvcHandler
- * creation in any way that they like (such as creating subclass
- * instances of SvcHandler, using a singleton, dynamically
- * linking the handler, etc.).
- *
- *@see SvcHandler
- *@see StrategyAcceptor
- *@see AcceptStrategy
- *@see ActivateStrategy
- */
-public class CreationStrategy
-{
- /**
- * Create an instance of Creation Strategy.
- *@param handlerFactory Svc Handler factory that is used to create
- * an instance of a Svc Handler
- */
- public CreationStrategy (Class handlerFactory)
- {
- this.handlerFactory_ = handlerFactory;
- }
-
- /**
- * Create a new SvcHandler. Note that subclasses should override
- * this method to provide a new creation strategy.
- *@return reference to a new instance of the SvcHandler (or subclass)
- *@exception InstantiationException Unable to instantiate.
- *@exception IllegalAccessException No handler factory available.
- */
- public SvcHandler makeSvcHandler () throws InstantiationException,
- IllegalAccessException
- {
- // Create a new Svc_Handler
- return (SvcHandler) handlerFactory_.newInstance ();
- }
-
- private Class handlerFactory_;
-}
diff --git a/java/JACE/Connection/HTTPHelper.java b/java/JACE/Connection/HTTPHelper.java
deleted file mode 100644
index 2901d74a14a..00000000000
--- a/java/JACE/Connection/HTTPHelper.java
+++ /dev/null
@@ -1,182 +0,0 @@
-package JACE.Connection;
-
-import JACE.OS.*;
-
-/**
- * Collection of methods concerning HTTP.
- */
-public class HTTPHelper
-{
- /**
- * Alphabet used in encoding and decoding basic base64 authentication.
- * See the HTTP 1.1 RFC for details.
- */
- public static String Alphabet
- = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
- /**
- * Decode a secret encrypted with the basic base64 HTTP 1.1 authentication
- * scheme.
- *
- *@param secret Message to decode
- *@return null on error, decoded String on success
- */
- public static String DecodeBase64 (String secret)
- {
- StringBuffer output = new StringBuffer ();
- boolean inalphabet [] = new boolean[256];
- char decoder [] = new char [256];
-
- for (int i = 0; i < 256; i++) {
- inalphabet [i] = false;
- decoder [i] = 0;
- }
-
- for (int i = Alphabet.length () - 1;
- i >= 0;
- i--)
- {
- inalphabet [(int)Alphabet.charAt (i)] = true;
- decoder [(int)Alphabet.charAt (i)] = (char)i;
- }
-
- int inidx = 0;
- int c = 0;
- int char_count = 0;
- int bits = 0;
- boolean error = false;
-
- while (inidx < secret.length ())
- {
- c = secret.charAt (inidx++);
-
- if (c == '=')
- break;
-
- if (c > 255 || !inalphabet[(int)c])
- continue;
-
- bits += decoder[c];
- char_count++;
- if (char_count == 4) {
- output.append ((char) (bits >> 16));
- output.append ((char) ((bits >> 8) & 0xff));
- output.append ((char) (bits & 0xff));
- bits = 0;
- char_count = 0;
- } else
- bits <<= 6;
- }
-
- if (c == '\0') {
- if (char_count != 0) {
- ACE.DEBUG ("base64 encoding incomplete: at least "
- + ((4 - char_count) * 6) + " bits truncated");
- error = true;
- }
- } else {
- // c == '='
- switch (char_count)
- {
- case 1:
- ACE.DEBUG ("output so far: " + output.toString ());
- ACE.DEBUG ("base64 encoding incomplete: at least 2 bits missing");
- error = true;
- break;
- case 2:
- output.append ((char) (bits >> 10));
- break;
- case 3:
- output.append ((char) (bits >> 16));
- output.append ((char) ((bits >> 8) & 0xff));
- break;
- }
- }
-
- if (!error)
- return output.toString ();
- else
- return null;
- }
-
- /**
- * Encode a message with the basic base64 HTTP 1.1 authentication
- * scheme. Adapted from James' JAWS HTTP_Helpers code.
- *
- *@param secret Message to encode
- *@return null on error, an encoded String on success
- */
- public static String EncodeBase64 (String secret)
- {
- StringBuffer output = new StringBuffer ();
-
- // Index of the input string
- int inidx = 0;
-
- // character value
- int c;
-
- int char_count = 0;
- int bits = 0;
- boolean error = false;
-
- while (inidx < secret.length())
- {
- c = secret.charAt(inidx++);
-
- // This will mess up internationalization. I wonder if it is really
- // necessary for HTTP?
- if (c > 255)
- {
- ACE.DEBUG ("encountered char > 255 (decimal %d): " + c);
- error = true;
- break;
- }
-
- bits += c;
- char_count++;
-
- if (char_count == 3)
- {
- output.append(HTTPHelper.Alphabet.charAt(bits >> 18));
- output.append(HTTPHelper.Alphabet.charAt((bits >> 12) & 0x3f));
- output.append(HTTPHelper.Alphabet.charAt((bits >> 6) & 0x3f));
- output.append(HTTPHelper.Alphabet.charAt(bits & 0x3f));
-
- bits = 0;
- char_count = 0;
- }
- else
- bits <<= 8;
- }
-
- if (!error)
- {
- if (char_count != 0)
- {
- bits <<= 16 - (8 * char_count);
- output.append(HTTPHelper.Alphabet.charAt(bits >> 18));
- output.append(HTTPHelper.Alphabet.charAt((bits >> 12) & 0x3f));
-
- if (char_count == 1)
- {
- output.append("==");
- }
- else
- {
- output.append(HTTPHelper.Alphabet.charAt((bits >> 6) & 0x3f));
- output.append('=');
- }
- }
-
- return output.toString();
- }
-
- // Returns null on error
- return null;
- }
-
- private HTTPHelper () {}
-}
-
-
diff --git a/java/JACE/Connection/StrategyAcceptor.java b/java/JACE/Connection/StrategyAcceptor.java
deleted file mode 100644
index 743d384776f..00000000000
--- a/java/JACE/Connection/StrategyAcceptor.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * StrategyAcceptor.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-
-/**
- * Abstract factory for creating, accepting into, and activating
- * a service handler.
- * <P>
- * Uses instances of CreationStrategy, AcceptStrategy, and
- * ActivateStrategy.
- *
- *@see SvcHandler
- *@see CreationStrategy
- *@see AcceptStrategy
- *@see ActivateStrategy
- */
-public class StrategyAcceptor extends Acceptor
-{
- /**
- * Create an instance of StrategyAcceptor. The caller must
- * call setHandlerFactory before open!
- */
- public StrategyAcceptor ()
- {
- this (null, null, null, null);
- }
-
- /**
- * Create an instance of StrategyAcceptor.
- *@param handlerFactory Svc Handler factory that is used to create
- * an instance of a Svc Handler when a connection is accepted.
- */
- public StrategyAcceptor (Class handlerFactory)
- {
- this (handlerFactory, null, null, null);
- }
-
- /**
- * Create an instance of StrategyAcceptor. Use the creation
- * strategy and the handlerFactory passed in to creae a new instance
- * of the Svc Handler.
- *@param handlerFactory Svc Handler factory that is used to create
- * an instance of a Svc Handler when a connection is accepted.
- *@param creStrategy Creation strategy to use to create a new
- * instance of the Svc Handler.
- *@param acceptStrategy Accept strategy to use to accept a new
- * connection into the Svc Handler.
- *@param activateStrategy Activate strategy to use to activate the
- * instance of the Svc Handler.
- */
- public StrategyAcceptor (Class handlerFactory,
- CreationStrategy creStrategy,
- AcceptStrategy acceptStrategy,
- ActivateStrategy activateStrategy)
- {
- // Cache everything
- this.handlerFactory_ = handlerFactory;
- this.creStrategy_ = creStrategy;
- this.acceptStrategy_ = acceptStrategy;
- this.activateStrategy_ = activateStrategy;
- }
-
- /**
- * Initialize the Strategy Acceptor. The method creates the
- * appropriate strategies as needed.
- *@param port port number where the server will listen for connections
- *@exception IOException Socket level error
- */
- public void open (int port) throws IOException
- {
- if (this.creStrategy_ == null)
- this.creStrategy_ = new CreationStrategy (this.handlerFactory_);
- if (this.acceptStrategy_ == null)
- this.acceptStrategy_ = new AcceptStrategy (port);
- else
- this.acceptStrategy_.open (port);
- if (this.activateStrategy_ == null)
- this.activateStrategy_ = new ActivateStrategy ();
- }
-
- /**
- * Accept a connection using the appropriate strategies.
- *
- *@exception SocketException Socket level error
- *@exception InstantiationException Problem creating a handler
- *@exception IllegalAccessException No strategy available
- *@exception IOException Socket level error
- */
- public void accept () throws SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
- // Create a Svc_Handler using the appropriate Creation_Strategy
- SvcHandler sh = this.makeSvcHandler ();
-
- // Accept a connection into the Svc_Handler
- this.acceptSvcHandler (sh);
-
- // Activate the Svc_Handler
- this.activateSvcHandler (sh);
- }
-
- /**
- * Bridge method for creating a SvcHandler. The strategy for
- * creating a SvcHandler is configured into the Acceptor via it's
- * creStrategy_. If no strategy is passed in, the default behavior
- * of this method is to use the default CreationStrategy.
- *@return a new instance of the Svc Handler
- *@exception InstantiationException Couldn't create SvcHandler
- *@exception IllegalAccessException No strategy available
- */
- protected SvcHandler makeSvcHandler ()
- throws InstantiationException, IllegalAccessException
- {
- // Create a new handler for the connection
- return this.creStrategy_.makeSvcHandler ();
- }
-
-
- /**
- * Bridge method for accepting the new connection into the
- * <SvcHandler>. The strategy for accepting into a SvcHandler is
- * configured into the Acceptor via it's acceptStrategy_. If no
- * strategy is passed in, the default behavior of this method is to
- * use the default AcceptStrategy.
- *@param sh Svc Handler in which to accept the connection
- *@return result of accepting a connection using the accept strategy
- *@exception SocketException Socket level error
- *@exception IOException Socket level error
- */
- protected int acceptSvcHandler (SvcHandler sh) throws SocketException, IOException
- {
- // Delegate responsibility to the appropriate strategy
- return this.acceptStrategy_.acceptSvcHandler (sh);
- }
-
- /**
- * Bridge method for activating a <SvcHandler>. The strategy for
- * activating a SvcHandler is configured into the Acceptor via it's
- * activateStrategy_. If no strategy is passed in, the default
- * behavior of this method is to use the default ActivateStrategy.
- *@param sh Svc Handler to activate
- *@return result of activating the Svc Handler
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- // Delegate responsibility to the appropriate strategy
- return this.activateStrategy_.activateSvcHandler (sh);
- }
-
- // Creation Strategy
- private CreationStrategy creStrategy_;
-
- // Accept Strategy
- private AcceptStrategy acceptStrategy_;
-
- // Activation Strategy
- private ActivateStrategy activateStrategy_;
-}
diff --git a/java/JACE/Connection/SvcHandler.java b/java/JACE/Connection/SvcHandler.java
deleted file mode 100644
index 1df62247baa..00000000000
--- a/java/JACE/Connection/SvcHandler.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * SvcHandler.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-/**
- * Defines the interface for a service that exchanges data with its
- * connected peer.
- * <P>
- * This class provides a well-defined interface that the Acceptor and
- * Connector pattern factories use as their target. Typically, client
- * applications will subclass SvcHandler and do all the interesting work
- * in the subclass. One thing that the SvcHandler does contain is a
- * peer SOCKStream endpoint that is initialized by Acceptor or Connector
- * when a connection is established successfully. This endpoint is used
- * to exchange data between a SvcHandler and the peer it is connected
- * with.
- */
-public abstract class SvcHandler extends Task
-{
-
- /**
- * Do nothing constructor.
- */
- public SvcHandler ()
- {
- }
-
- /**
- * Set the stream using the SOCKStream passed in. This sets the
- * underlying peer
- *@param s SOCK Stream to use for the connection
- */
- public void setHandle (SOCKStream s) throws IOException
- {
- this.stream_ = s;
- }
-
- /**
- * Get the underlying peer
- *@return the underlying peer
- */
- public SOCKStream peer ()
- {
- return this.stream_;
- }
-
- /**
- * Abstract method that subclasses must define to allow
- * initialization to take place.
- */
- public abstract int open (Object obj);
-
- /**
- * Provide a default implementation to simplify ancestors.
- *@return 0
- */
- public int close (long flags)
- {
- return 0;
- }
-
- /**
- * Provide a default implementation to simplify ancestors.
- *@return -1
- */
- public int put (MessageBlock mb, TimeValue tv)
- {
- return -1;
- }
-
- /**
- * Provide a default implementation to simplify ancestors.
- *@param tv Time Value when the event occured
- *@param obj An arbitrary object that was passed to the Timer Queue
- * (Asynchronous Completion Token)
- */
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return -1;
- }
-
- /**
- * Underlying peer socket stream.
- */
- protected SOCKStream stream_;
-}
diff --git a/java/JACE/Connection/package.html b/java/JACE/Connection/package.html
deleted file mode 100644
index 429904216d5..00000000000
--- a/java/JACE/Connection/package.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Collection of factories for services.
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#initialize">Documents on ACE object and service initialization components</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/Misc/GetOpt.java b/java/JACE/Misc/GetOpt.java
deleted file mode 100644
index e373baedb67..00000000000
--- a/java/JACE/Misc/GetOpt.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Misc
- *
- * = FILENAME
- * GetOpt.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Misc;
-
-import java.io.*;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-
-/**
- * Iterator for parsing command-line arguments.
- * <P>
- * This version of `get_opt' appears to the caller like standard
- * Unix `get_opt' but it behaves differently for the user, since
- * it allows the user to intersperse the options with the other
- * arguments.
- *
- * <p> As `get_opt' works, it permutes the elements of `argv' so that,
- * when it is done, all the options precede everything else. Thus
- * all application programs are extended to handle flexible argument
- * order.
- */
-public class GetOpt
-{
- /**
- * Constructor
- *@param args command line arguments
- *@param optstring string containing the legitimate option
- * characters. A colon in optstring means that the previous character
- * is an option that wants an argument which is then taken from the
- * rest of the current args-element. Here is an example of what
- * optstring might look like: "c:dP:p".
- */
- public GetOpt (String[] args, String optstring)
- {
- this (args, optstring, false);
- }
-
- /**
- * Constructor
- *@param args command line arguments
- *@param optstring string containing the legitimate option
- * characters. A colon in optstring means that the previous character
- * is an option that wants an argument which is then taken from the
- * rest of the current args-element. Here is an example of what
- * optstring might look like: "c:dP:p".
- *@param returnAllArgs specify true if next() should return any
- * arguments, even if not in the optstring. This is useful for
- * providing an error message.
- */
- public GetOpt (String[] args, String optstring, boolean returnAllArgs)
- {
- returnAllArgs_ = returnAllArgs;
-
- // Cache the arguments
- this.args_ = args;
- this.hasArg_ = false;
-
- // Build the arg hashtable
- this.buildArgTable (optstring);
- }
-
- /**
- * Scan elements specified in optstring for next option flag.
- *@return The character corresponding to the next flag.
- */
- public int next ()
- {
- if (this.args_ == null)
- return -1;
-
- if (this.index_ < this.args_.length)
- {
- String arg = this.args_[this.index_++];
-
- // Make sure flag starts with "-"
- if (!arg.startsWith ("-"))
- return -1;
-
- // Check if there is more than one character specified as flag
- if (arg.length () > 2)
- return -1;
-
- // So far so good
- // Check if the flag is in the arg_table and if it is get the
- // associated binding.
- Character c = (Character) this.argTable_.get
- (new Character (arg.charAt (1)));
-
- if (c == null) {
- if (returnAllArgs_)
- return arg.charAt (1);
- else
- return -1;
- }
-
- if (c.charValue () == '#')
- {
- this.hasArg_ = false;
- return arg.charAt (1);
- }
- else if (c.charValue () == ':')
- {
- this.hasArg_ = true;
- return arg.charAt (1);
- }
- else // This should not happen
- return -1;
- }
- return -1;
- }
-
- /**
- * Get the argument (if any) associated with the flag.
- *@return the argument associated with the flag.
- */
- public String optarg ()
- {
- if (this.hasArg_)
- return this.args_[this.index_++];
- else
- return null;
- }
-
- // Build the argument table
- private void buildArgTable (String s)
- {
- this.argTable_ = new Hashtable ();
- StringTokenizer tokens = new StringTokenizer (s, ":");
- while (tokens.hasMoreTokens ())
- {
- // Get the next token
- String t = tokens.nextToken ();
-
- // First add all flags except the one with ":" after it
- // Note "#" is an arbitrary character we use to distinguish
- // the two cases
- for (int i = 0; i < t.length () - 1; i++)
- this.argTable_.put (new Character (t.charAt (i)),
- new Character ('#'));
-
- // Now Add the flag just before ":" to the arg_table
- this.argTable_.put (new Character (t.charAt (t.length () - 1)),
- new Character (':'));
- }
- }
-
- private String [] args_;
- // Copy of the args passed in
-
- private boolean hasArg_;
- // Indicator that the flag has an argument following it
-
- private int index_;
- // Index into the array of arguments
-
- private Hashtable argTable_;
- // Table of flags that take arguments after them
-
- private boolean returnAllArgs_;
- // When true, GetOpt returns arguments even if not present in the
- // given optstring.
-}
diff --git a/java/JACE/Misc/package.html b/java/JACE/Misc/package.html
deleted file mode 100644
index 31803472e19..00000000000
--- a/java/JACE/Misc/package.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Miscellaneous utility classes.
-</BODY>
-</HTML>
diff --git a/java/JACE/makebat.zip b/java/JACE/makebat.zip
deleted file mode 100644
index a05c72f274e..00000000000
--- a/java/JACE/makebat.zip
+++ /dev/null
Binary files differ
diff --git a/java/JACE/netsvcs/Handler.java b/java/JACE/netsvcs/Handler.java
deleted file mode 100644
index 7bf73f01206..00000000000
--- a/java/JACE/netsvcs/Handler.java
+++ /dev/null
@@ -1,185 +0,0 @@
-package JACE.netsvcs;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-/**
- * Abstract class representing a handler for a Server. Provides
- * default implementations and template methods.
- *
- *@see Server
- *@author Everett Anderson
- */
-public abstract class Handler extends SvcHandler
-{
- /**
- * Initialize this Handler. The default implementation sets the
- * done flag to false.
- *
- *@return -1 on failure, 0 on success
- */
- public int open (Object obj)
- {
- done_ = false;
- return 0;
- }
-
- /**
- * Shut down this handler. Default implementation calls close ().
- */
- public int close (long flags)
- {
- return close ();
- }
-
- /**
- * Shut down this handler, setting the done flag, and removing it
- * from the parent Server's handler list.
- */
- public synchronized int close ()
- {
- if (!done ()) {
- try {
- done_ = true;
- parent_.removeHandler (this);
- peer ().close ();
- } catch (IOException e) {
- return -1;
- }
- }
-
- return 0;
- }
-
- /**
- * Returns the name of the host that is connected to this handler,
- * or null if not connected.
- */
- public String hostName ()
- {
- if (done ())
- return null;
- else
- return this.peer().socket().getInetAddress().getHostName();
- }
-
- /**
- * Process a single request and handle any errors. The default
- * implementation calls handleRequest with an Object from
- * newRequest ().
- */
- public void handleRequest ()
- {
- handleRequest (newRequest ());
- }
-
- /**
- * Process a single request and handle any errors. The default
- * implementation calls processRequest with the given request
- * Object, and then handles exceptions appropriately. Subclasses
- * normally just implement processRequest rather than override
- * this method.
- *
- *@param request request to process
- */
- public void handleRequest (Object request)
- {
- try {
-
- processRequest (request);
-
- } catch (NullPointerException e) {
- if (!done ()) {
- ACE.ERROR("Failure: " + e);
- close ();
- }
- } catch (SocketException e) {
- if (!done ()) {
- ACE.DEBUG (hostName () + " disconnected");
- close ();
- }
- } catch (EOFException e) {
- if (!done ()) {
- ACE.DEBUG (hostName () + " disconnected");
- close ();
- }
- } catch (IOException e) {
- if (!done ()) {
- ACE.ERROR ("Lost connection: " + e);
- close ();
- }
- }
- }
-
- /**
- * Process a single request (including reading it from the wire)
- * without handling errors. Subclasses must define the behavior.
- *
- *@param requestObject request to process
- *@exception SocketException problem with the socket
- *@exception EOFException end of connection,
- * usually means client disconnected
- *@exception IOException error during transmission
- */
- protected abstract void processRequest (Object requestObject)
- throws SocketException, EOFException, IOException;
-
- /**
- * Returns a new instance of a request object. Subclasses must
- * define the behavior.
- */
- public abstract Object newRequest ();
-
- /**
- * Called by the JVM when a Handler is run in its own Thread. The
- * default implementation creates a single request object which is
- * reused during multiple handleRequest calls. The loop exits
- * when the Handler's done() method returns true.
- */
- public void run()
- {
- Object request = newRequest ();
-
- while (!done ())
- handleRequest (request);
-
- close ();
- }
-
- /**
- * Set the Server parent of this Handler.
- */
- public void parent (Server parent)
- {
- parent_ = parent;
- }
-
- /**
- * Return the Server parent of this Handler.
- */
- public Server parent ()
- {
- return parent_;
- }
-
- /**
- * Check to see if this Handler should shut down.
- */
- protected synchronized boolean done ()
- {
- return done_;
- }
-
- /**
- * Closes the handler, freeing resources.
- */
- protected void finalize () throws Throwable
- {
- close ();
- }
-
- private boolean done_ = true;
- private Server parent_;
-}
diff --git a/java/JACE/netsvcs/Logger/LogRecord.java b/java/JACE/netsvcs/Logger/LogRecord.java
deleted file mode 100644
index 972cf45af74..00000000000
--- a/java/JACE/netsvcs/Logger/LogRecord.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.netsvcs.Logger
- *
- * = FILENAME
- * LogRecord.java
- *
- *@author Chris Cleeland, Everett Anderson
- *
- *************************************************/
-package JACE.netsvcs.Logger;
-
-import java.util.*;
-import java.io.*;
-import JACE.OS.*;
-
-/**
- * Communicates logging information. Compatible with the C++ ACE
- * ACE_Log_Record class.
- */
-public class LogRecord
-{
- /**
- * Maximum size of a LogRecord
- */
- final public int MAXLOGMSGLEN = 4 * 1024;
-
- private int type_;
- private int length_;
- private long msec_;
- private int pid_;
- private byte[] msgData_;
- private final static int numIntMembers = 5;
- private final static int sizeofIntInBytes = 4;
-
- /**
- * Create a default instance.
- */
- public LogRecord()
- {
- type(0);
- timeStamp((int)new Date().getTime());
- length(0);
- pid(0);
- }
-
- /**
- * Create a LogRecord. This is the designated initializer.
- * @param priority a numeric specification of the priority (ascending)
- * @param milliseconds time attached to the log entry in Unix <pre>time_t</pre> format
- * @param pid the process ID
- */
- public LogRecord(int priority,
- long milliseconds,
- int pid)
- {
- type(priority);
- timeStamp(milliseconds);
- length(0);
- pid(pid);
- }
-
- /**
- * Create a LogRecord with the current time and the given message.
- *
- *@param message message to log
- */
- public LogRecord (String message)
- {
- this ();
-
- msgData (message);
- }
-
- /**
- * Conversion to string. Only includes the <pre>msgData_</pre> member.
- */
- public String toString()
- {
- String result = null;
- try {
- result = new String (msgData_,
- "US-ASCII");
- } catch (UnsupportedEncodingException e) {
- result = new String (msgData_);
- }
-
- return result;
- }
-
- /**
- * Place a textual representation of the record on a PrintStream.
- * When verbose is specified to be true, the output takes the form
- * <PRE>(Date)@(host name)@(PID)@(type)@(message)</PRE>
- * Otherwise it just prints the message.
- * @param hostname name of the host generating this record
- * @param verbose specify how much information to print (see above)
- * @param ps A PrintStream instance to which the output should go.
- */
- public void print(String hostname,
- boolean verbose,
- PrintStream ps)
- {
- String toprint;
- if (verbose)
- {
- Date now = new Date(this.timeStamp());
-
- /* 01234567890123456789012345 */
- /* Wed Oct 18 14:25:36 1989n0 */
- toprint = now.toString().substring(4) + "@"
- + hostname + "@" + pid_ + "@" + type_ + "@"
- + this.toString();
- }
- else
- {
- toprint = this.toString();
- }
- ps.println(toprint);
- }
-
- /**
- * Read in the data for this LogRecord from the given InputStream.
- *
- *@param is InputStream to read from
- *@exception IOException error during transmission
- */
- public void streamInFrom (InputStream is) throws IOException
- {
- BufferedInputStream bis = new BufferedInputStream (is);
-
- DataInputStream dis = new DataInputStream (bis);
-
- streamInFrom (dis);
- }
-
- /**
- * Read in the data for this LogRecord from the given DataInputStream.
- *
- *@param dis DataInputStream to read from
- *@exception IOException error during transmission
- */
- public void streamInFrom(DataInputStream dis) throws IOException
- {
- // Order here must match layout order in the C++ class.
- length(dis.readInt());
- type(dis.readInt());
- this.timeStamp((long)dis.readInt() * 1000);
-
- // Skip smaller time resolution info since we're lucky if Java's
- // timer can handle more than millisecond precision, anyway
- dis.skipBytes(4);
-
- pid(dis.readInt());
-
- int dataLength = (int) (length_ - numIntMembers * sizeofIntInBytes);
-
- msgData_ = new byte[dataLength];
-
- dis.readFully(msgData_, 0, dataLength);
- }
-
- /**
- * Write this LogRecord out to the given OutputStream.
- *
- *@param os OutputStream to write to
- *@exception IOException error during transmission
- */
- public void streamOutTo (OutputStream os) throws IOException
- {
- BufferedOutputStream bos = new BufferedOutputStream (os);
-
- DataOutputStream dos = new DataOutputStream (bos);
-
- streamOutTo (dos);
- }
-
- /**
- * Write this LogRecord out to the given DataOutputStream.
- *
- *@param dos OutputStream to write to
- *@exception IOException error during transmission
- */
- public void streamOutTo(DataOutputStream dos) throws IOException
- {
- dos.writeInt(length());
- dos.writeInt(type());
- dos.writeInt((int)(this.msec_ / 1000));
- dos.writeInt(0);
- dos.writeInt(pid());
-
- dos.write(msgData_);
-
- dos.flush ();
- }
-
- /**
- * Return the LogRecord type.
- */
- public int type() { return type_; }
-
- /**
- * Set the LogRecord type.
- */
- public void type(int t) { type_ = t; }
-
- /**
- * Return the length of this LogRecord.
- */
- public int length() { return length_; }
-
- /**
- * Set the length of this LogRecord.
- */
- public void length(int l) { length_ = l; }
-
- /**
- * Calculate the length of this LogRecord from the size of
- * the message and the header.
- */
- private void setLen(int msgLen)
- { length(msgLen + numIntMembers * sizeofIntInBytes); }
-
- /**
- * Return the millisec time stamp of this LogRecord.
- */
- public long timeStamp() { return this.msec_; }
-
- /**
- * Set the millisec time stamp of this LogRecord.
- */
- public void timeStamp(long msec){ this.msec_ = msec; }
-
- /**
- * Return the PID of this LogRecord.
- */
- public int pid() { return pid_; }
-
- /**
- * Set the PID of this LogRecord.
- */
- public void pid(int p) { pid_ = p; }
-
- /**
- * Return the message of this LogRecord as a byte array.
- */
- public byte[] msgData() { return msgData_; }
-
- /**
- * Set the message of this LogRecord to a given byte array.
- */
- public void msgData(byte[] m)
- {
- int size = m.length;
-
- if (size > MAXLOGMSGLEN)
- size = MAXLOGMSGLEN;
-
- this.msgData_ = new byte[size];
-
- System.arraycopy(m, 0, msgData_, 0, size);
-
- setLen(size);
- }
-
- /**
- * Set the message of this LogRecord to a given byte array. First
- * tries to use US-ASCII encoding, then uses the default encoding
- * if that fails. The toString method is essentially the opposite
- * version.
- */
- public void msgData(String m)
- {
- byte temp[] = null;
- try {
- temp = m.getBytes("US-ASCII");
- } catch (UnsupportedEncodingException e) {
- temp = m.getBytes ();
- }
- if (temp.length > MAXLOGMSGLEN) {
- this.msgData_ = new byte[MAXLOGMSGLEN];
-
- System.arraycopy(temp, 0, msgData_, 0, MAXLOGMSGLEN);
- } else
- this.msgData_ = temp;
-
- setLen(msgData_.length);
- }
-}
diff --git a/java/JACE/netsvcs/Logger/LoggingStrategy.java b/java/JACE/netsvcs/Logger/LoggingStrategy.java
deleted file mode 100644
index b7912499385..00000000000
--- a/java/JACE/netsvcs/Logger/LoggingStrategy.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * LogMessageReceiver.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.netsvcs.Logger;
-
-import java.io.*;
-
-/**
- * Encapsulates the handling of a LogRecord from a given host, allowing
- * easy swapping of behavior in the logging service. Strategies could
- * be developed to save to a file, print on a certain stream, forward
- * to another service, etc.
- *
- *@see StderrStrategy
- *@see LogRecord
- */
-public interface LoggingStrategy
-{
- /**
- * Process the given LogRecord.
- *
- *@param hostname host from which this LogRecord originated
- *@param record LogRecord instance to process
- */
- public void logRecord (String hostname,
- LogRecord record);
-}
diff --git a/java/JACE/netsvcs/Logger/ServerLoggingAcceptor.java b/java/JACE/netsvcs/Logger/ServerLoggingAcceptor.java
deleted file mode 100644
index c0ef8831fc6..00000000000
--- a/java/JACE/netsvcs/Logger/ServerLoggingAcceptor.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package JACE.netsvcs.Logger;
-
-import java.util.*;
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-import JACE.netsvcs.Server;
-
-/**
- * Server for the logging service. Sets the default logging strategy
- * to StderrStrategy so that logging requests are printed on the
- * System.err stream. Other strategies can be specified on the
- * command line.
- * <P>
- * <B>Valid command line arguments:</B>
- * <PRE>
- * -r (class name) Specify a LoggingStrategy
- * (Default is StdErrStrategy)
- * -p (port) Port to listen on for clients
- * -d Enable debugging messages
- * -a (class name) Specify ActivateStrategy
- * (Default is thread per connection)
- * </PRE>
- *
- *@see LoggingStrategy
- *@see StderrStrategy
- */
-public class ServerLoggingAcceptor extends Server
-{
- /**
- * Default constructor. Sets the default LoggingStrategy to
- * StderrStrategy.
- */
- public ServerLoggingAcceptor ()
- {
- name ("Logging Service");
- logStrategy_ = new StderrStrategy ();
- }
-
- /**
- * Simple main program for running the logging service without the
- * service configurator.
- *
- *@param args command line arguments
- */
- public static void main (String [] args)
- {
- ServerLoggingAcceptor sla = new ServerLoggingAcceptor();
-
- sla.init(args);
- }
-
- /**
- * Accessor for the LoggingStrategy
- */
- public LoggingStrategy loggingStrategy ()
- {
- return this.logStrategy_;
- }
-
- /**
- * Creates a new ServerLoggingHandler instance.
- */
- protected SvcHandler makeSvcHandler ()
- {
- return new ServerLoggingHandler ();
- }
-
- /**
- * Prints out the valid command line arguments. See the class
- * description for more information. Called by Server.init when
- * parseArgs returns -1.
- */
- protected void printUsage ()
- {
- ACE.ERROR ("Valid options:\n");
- ACE.ERROR ("-r <class name> Specify a LoggingStrategy");
- ACE.ERROR (" (Default is StdErrStrategy");
- ACE.ERROR ("-p <port> Port to listen on for clients");
- ACE.ERROR ("-d Enable debugging messages");
- ACE.ERROR ("-a <class name> Specify ActivateStrategy");
- ACE.ERROR (" (Default is single threaded");
- }
-
- /**
- * Parses the command line arguments. See the class description
- * for more information.
- *
- *@param args command line arguments
- *@return -1 on failure, 0 on success
- */
- protected int parseArgs (String args[])
- {
- String s;
- Object strategy;
- GetOpt opt = new GetOpt (args, "p:r:da:", true);
- int c = 0;
-
- try {
-
- while ((c = opt.next ()) != -1)
- {
- switch (c)
- {
- case 'd':
- ACE.enableDebugging ();
- ACE.DEBUG ("Debugging is enabled");
- break;
- case 'p':
- if (!port (opt.optarg ()))
- return -1;
- break;
- case 'a':
- strategy = newStrategyInstance (opt.optarg (),
- "ActivateStrategy");
- if (strategy == null)
- return -1;
-
- activateStrategy ((ActivateStrategy) strategy);
- break;
- case 'r':
- // Load the Strategy with the given name
- strategy = newStrategyInstance (opt.optarg (),
- "LoggingStrategy");
- if (strategy == null)
- return -1;
-
- logStrategy_ = (LoggingStrategy)strategy;
- break;
- default:
- ACE.ERROR ("Unknown argument: " + c);
- return -1;
- }
- }
- } catch (ArrayIndexOutOfBoundsException e) {
- ACE.ERROR ("Option -" + (char)c + " requires an argument");
- return -1;
- }
-
- return 0;
- }
-
- private LoggingStrategy logStrategy_;
-}
diff --git a/java/JACE/netsvcs/Logger/ServerLoggingHandler.java b/java/JACE/netsvcs/Logger/ServerLoggingHandler.java
deleted file mode 100644
index 88a564c2c34..00000000000
--- a/java/JACE/netsvcs/Logger/ServerLoggingHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * ServerLoggingHandler.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.netsvcs.Logger;
-
-import java.io.*;
-import java.util.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-import JACE.netsvcs.Handler;
-
-/**
- *
- * Created by ServerLoggingAcceptor to handle logging requests. This
- * simply reads the record and hands it to the registered LoggingStrategy.
- *
- * @see JACE.netsvcs.Logger.ServerLoggingAcceptor
- */
-public class ServerLoggingHandler extends Handler
-{
- /**
- * Reads in the given LogRecord request and hands it to the
- * LoggingStrategy registered with the ServerLoggingAcceptor parent.
- *
- *@param request LogRecord instance to use
- */
- public void processRequest (Object request)
- throws SocketException, EOFException, IOException
- {
- LogRecord rec = (LogRecord)request;
-
- rec.streamInFrom (this.peer ().dataInputStream ());
-
- ServerLoggingAcceptor parent = (ServerLoggingAcceptor)parent ();
-
- parent.loggingStrategy ().logRecord (this.hostName (), rec);
- }
-
- /**
- * Creates a new instance of LogRecord.
- */
- public Object newRequest ()
- {
- return new LogRecord ();
- }
-}
-
-
-
-
diff --git a/java/JACE/netsvcs/Logger/StderrStrategy.java b/java/JACE/netsvcs/Logger/StderrStrategy.java
deleted file mode 100644
index ee927e19062..00000000000
--- a/java/JACE/netsvcs/Logger/StderrStrategy.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * DefaultLMR.java
- *
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.netsvcs.Logger;
-
-import java.io.*;
-
-/**
- * Default LoggingStrategy for the logging service. This prints out the
- * LogRecord on the System.err stream.
- *
- * @see JACE.netsvcs.Logger.LogRecord
- */
-public class StderrStrategy implements LoggingStrategy
-{
- /**
- * Process the given LogRecord by printing it on the System.err stream.
- *
- *@param hostname host from which this LogRecord originated
- *@param record LogRecord instance to process
- */
- public void logRecord (String hostname,
- LogRecord record)
- {
- record.print(hostname, true, System.err);
- }
-}
diff --git a/java/JACE/netsvcs/Logger/c.bat b/java/JACE/netsvcs/Logger/c.bat
deleted file mode 100644
index 6600766df1d..00000000000
--- a/java/JACE/netsvcs/Logger/c.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo off
-javac -d C:\Everett\JACE\classes *.java
diff --git a/java/JACE/netsvcs/Logger/package.html b/java/JACE/netsvcs/Logger/package.html
deleted file mode 100644
index 84bffb246d9..00000000000
--- a/java/JACE/netsvcs/Logger/package.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Logging Service for processing logging records received from remote hosts.
-<P>
-The strategy for how to process the records can be easily changed via the
-command line.
-<P>
-A simple test client is available in the tests directory under netsvcs\Logger.
-The service itself can either be run on the command line (by running
-ServerLoggingAcceptor) or by loading it with a ServiceConfig file (see
-the tests for the service configurator).
-
-@see JACE.netsvcs.Logger.LoggingStrategy
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html">ACE Network Services</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/netsvcs/Server.java b/java/JACE/netsvcs/Server.java
deleted file mode 100644
index 199a830d0c5..00000000000
--- a/java/JACE/netsvcs/Server.java
+++ /dev/null
@@ -1,356 +0,0 @@
-package JACE.netsvcs;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Misc.GetOpt;
-import JACE.ServiceConfigurator.Service;
-
-/**
- * Abstract class providing default implementations for several
- * Service methods. Currently, all the network services
- * descend from this class. The real work for a service is done
- * by a Handler.
- * <P>
- * Inner classes are provided for thread per connection
- * and single threaded server activation strategies. Currently,
- * specifying a single threaded strategy means that the server will
- * disconnect the client after handling one request. Acceptor and
- * EventHandler may be changed later to incorporate handleInput to
- * address this. Thus, the default activation strategy is thread
- * per connection.
- *
- *@see Handler
- *@see JACE.Connection.ActivateStrategy
- *@author Everett Anderson
- */
-public abstract class Server extends Acceptor implements Runnable
-{
- /**
- * Safely shuts down all the handlers as well as the accepting socket.
- *
- *@return -1 on failure, 0 on success
- */
- public synchronized int fini ()
- {
- if (!done ()) {
- ACE.DEBUG ("Shutting down " + name ());
- try {
- this.done_ = true;
- for (int i = handlers_.size () - 1; i >= 0; i--)
- ((Handler)handlers_.elementAt (i)).close ();
-
- this.sockAcceptor_.close();
- } catch (IOException e) {
- ACE.ERROR(e);
- return -1;
- }
- }
-
- return 0;
- }
-
- /**
- * Returns information about the state of the service such as
- * suspended, not running, or running.
- */
- public String info ()
- {
- if (suspended ())
- return "suspended";
- else
- if (done ())
- return "not running";
- else
- return "running on port " + port_;
- }
-
- /**
- * Provided for extra initialization in subclasses after the
- * command line arguments have been parsed but before starting the
- * service. This is a good place to set the default ActivateStrategy
- * since you can make sure it wasn't set in parseArgs. The default
- * implementation sets the strategy to Server.ThreadPerConnection.
- *
- *@return -1 on error, 0 on success
- */
- protected int initialize ()
- {
- if (activateStrategy_ == null)
- activateStrategy (new Server.ThreadPerConnection ());
-
- return 0;
- }
-
- /**
- * Template method for initialization. Calls parseArgs, initialize,
- * sets the done() state to false, and starts this Server in its own
- * thread. If parseArgs fails, this calls printUsage.
- *
- *@param args command line arguments
- *@return -1 on failure, 0 on success
- */
- public int init (String [] args)
- {
- // Parse arguments
- if (this.parseArgs (args) == -1) {
- printUsage ();
- return -1;
- }
-
- if (initialize () < 0) {
- ACE.ERROR (name () + " failed initializing");
- return -1;
- }
-
- ACE.DEBUG ("Using " + activateStrategy_.getClass().getName ());
- ACE.DEBUG ("Starting " + name () + " on port: " + this.port_);
-
- done_ = false;
-
- // Run in own thread of control so that we don't block the caller
- new Thread (this).start();
- return 0;
- }
-
- /**
- * Called by the JVM when this Server starts running in its own
- * thread.
- */
- public void run ()
- {
- try {
- this.open (this.port_);
- while (!this.done ()) {
- this.accept ();
- }
- } catch (InstantiationException e) {
- ACE.ERROR (e);
- } catch (IllegalAccessException e) {
- ACE.ERROR (e);
- } catch (IOException e) {
- if (!done ())
- ACE.ERROR (e);
- } finally {
- fini ();
- }
- }
-
- /**
- * Calls the appropriate activation strategy with the given
- * service handler. This assumes the SvcHandler is an instance
- * of type Handler, and sets its parent accordingly.
- *
- *@param sh SvcHandler (assumed to be a Handler) to activate
- *@return -1 on failure, 0 on success
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- if (done ())
- return -1;
-
- addHandler (sh);
- ((Handler)sh).parent (this);
-
- while (suspended () && !done ())
- Thread.yield ();
-
- if (activateStrategy_.activateSvcHandler (sh) != 0) {
- removeHandler (sh);
- return -1;
- }
-
- return 0;
- }
-
- /**
- * Add the given SvcHandler to this Servers list of handlers.
- * @param sh service handler to add (assumed to be a Handler)
- */
- protected void addHandler (SvcHandler sh)
- {
- handlers_.addElement (sh);
- }
-
- /**
- * Called by Handler instances during their close () method.
- *@param sh service handler to remove
- */
- public void removeHandler (SvcHandler sh)
- {
- handlers_.removeElement (sh);
- }
-
- /**
- * Parses the command line arguments. Subclasses must override
- * this.
- *
- *@param args command line arguments
- *@return -1 on failure, 0 on success
- */
- protected abstract int parseArgs (String [] args);
-
- /**
- * Create the appropriate Handler. Subclasses must override this,
- * returning a new instance of the proper subclass of Handler.
- *
- *@return new Handler instance
- */
- protected abstract SvcHandler makeSvcHandler ();
-
- /**
- * Print out the correct syntax and meaning of the command line
- * arguments.
- */
- protected abstract void printUsage ();
-
- /**
- * Set the ActivateStrategy for handlers.
- *
- *@param strategy new ActivateStrategy to use
- *@see JACE.Connection.ActivateStrategy
- */
- protected void activateStrategy (ActivateStrategy strategy)
- {
- activateStrategy_ = strategy;
- }
-
- /**
- * Return the current ActivateStrategy for handlers.
- *
- *@return current ActivateStrategy instance
- */
- protected ActivateStrategy activateStrategy ()
- {
- return activateStrategy_;
- }
-
- /**
- * Check to see if this Server has been shut down.
- */
- protected synchronized boolean done ()
- {
- return done_;
- }
-
- /**
- * Useful method for subclasses when parsing the port command
- * line option.
- *
- *@param port String gathered from the command line representing the port
- *@return false if there was an error, true if successful
- */
- protected boolean port (String port)
- {
- try {
-
- this.port_ = Integer.parseInt (port);
-
- } catch (NumberFormatException e) {
- ACE.ERROR("Invalid port specified: " + e.getMessage ());
- return false;
- } catch (ArrayIndexOutOfBoundsException e) {
- ACE.ERROR("Port option requires an argument");
- return false;
- }
-
- return true;
- }
-
- /**
- * Useful method for subclasses when trying to load and instantiate
- * a certain class from a command line argument. This can be used
- * when a possible command line argument is what kind of activation
- * strategy is used for handlers.
- *
- *@param classname name of the class to load and create an instance of
- *@param descrption descrption of what type of class it is
- *@return null if failed loading, a new instance of the class on success
- */
- protected Object newStrategyInstance (String classname,
- String description)
- {
- try {
- Class factory = Class.forName (classname);
-
- return factory.newInstance ();
-
- } catch (ClassNotFoundException e) {
- ACE.ERROR("Unable to find " + description + ": "
- + e.getMessage ());
- } catch (InstantiationException e) {
- ACE.ERROR ("Instantiating " + description + ": "
- + e.getMessage ());
- } catch (IllegalAccessException e) {
- ACE.ERROR ("Illegal access on " + description + ": "
- + e.getMessage ());
- }
-
- return null;
- }
-
- /**
- * Shuts down the Server if it wasn't already done
- */
- protected void finalize () throws Throwable
- {
- fini ();
- }
-
- private boolean done_ = true;
-
- /**
- * List of currently active Handlers
- */
- protected Vector handlers_ = new Vector ();
- private ActivateStrategy activateStrategy_ = null;
-
- /**
- * Activation strategy in which each Handler is run in its own
- * Thread.
- */
- public static class ThreadPerConnection extends ActivateStrategy
- {
- /**
- * Opens the given service handler, and runs it in its own
- * Thread.
- *@param sh service handler to activate
- *@return -1 on failure, 0 on success
- */
- public int activateSvcHandler (SvcHandler sh)
- {
- if (sh.open (null) < 0)
- return -1;
-
- new Thread (sh).start ();
- return 0;
- }
- }
-
- /**
- * Activation strategy in which all Handlers are run in the
- * Server Thread in sequence. This assumes that the given
- * SvcHandler is a Handler instance.
- */
- public static class SingleThreaded extends ActivateStrategy
- {
- /**
- * Opens the given service handler, calls Handler.handleRequest, and
- * then Handler.close before returning.
- *@param sh service handler to activate (assumed to be a Handler)
- *@return -1 on failure, 0 on success
- */
- public int activateSvcHandler (SvcHandler sh)
- {
- if (sh.open (null) < 0)
- return -1;
-
- ((Handler)sh).handleRequest ();
- ((Handler)sh).close ();
-
- return 0;
- }
- }
-}
diff --git a/java/JACE/netsvcs/package.html b/java/JACE/netsvcs/package.html
deleted file mode 100644
index a806080aece..00000000000
--- a/java/JACE/netsvcs/package.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Bases classes for the network services and two activation strategies.
-<P>
-Services can be loaded and managed via the Service Configurator.
-
-@see JACE.ServiceConfigurator
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html">ACE Network Services</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/overview.html b/java/JACE/overview.html
deleted file mode 100644
index a0c2fdabd73..00000000000
--- a/java/JACE/overview.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Java ACE is a collection of Java packages containing classes that have been
-converted from the C++ version of the
-<A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ADAPTIVE Communication
-Environment</A> (ACE).
-<P>
-The C++ version of ACE is a large object-oriented network programming toolkit
-which contains over 125,000 lines of C++ code and uses advanced C++ features
-like templates.
-</P>
-<P>The goal of converting ACE from C++ to Java is to provide a portable
-programming toolkit with a similar interface and functionality to the original
- version of ACE. This allows new and current users of C++ ACE an easy transition
-to Java and also adds significant value to programming concurrent Java
-networking applications. Note that applications written using Java ACE can
-communicate seamlessly over sockets with applications written using C++ ACE.
-</P>
-<P>
-The following diagram illustrates the architecture of the Java version of ACE:
-</P>
-
-<P ALIGN="CENTER">
-<IMG SRC="images/java-ace.gif" WIDTH="735" HEIGHT="339" ALIGN="BOTTOM" BORDER="0">
-</P>
-
-<P>
-The Java ACE architecture has fewer components than the diagram illustrating
-the architecture for the
-<A HREF="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">C++ version
-of ACE </A>. This reduction in size occurs for two reasons. First, the Java
-Virtual Machine (JVM) handles many of the portability issues provided by C++
-ACE. Therefore, the OS adaptation layer is unnecessary. Second,
-Java doesn't support certain OS features provided by Win32, UNIX, and other
-OS platforms that C++ ACE is ported to. For example, Java doesn't support
-shared memory and memory-mapped files and therefore the memory management
-wrappers (such as <CODE>Mem_Map</CODE> and <CODE>Shared_Malloc</CODE>) are
-omitted from Java ACE.
-</P>
-
-<P>
-The process of converting ACE from C++ to Java provided us with an excellent
-source of insights on the strengths and weaknesses of using Java for
-industrial-strength software system frameworks. We've written a paper
-documenting our
-<A HREF="http://www.cs.wustl.edu/~schmidt/C++2java.html">experiences</A>
-converting the C++ version of ACE to Java.
-</P>
-
-<H3>Copyright Information for Java ACE</H3>
-
-<P>
-Java ACE is copyrighted by
-<A HREF="http://www.cs.wustl.edu/~schmidt">Douglas C. Schmidt</A> and his
-research group at
-<A HREF="http://www.wustl.edu">Washington University</A>.
-You are free to do anything you like with the Java ACE source code such
-as including it in commercial software, as long as you include this copyright
-statement along with code built using Java ACE.
-</P>
-<P>
-You are under no obligation to freely redistribute any of your source
-code that is built using Java ACE. Please note, however, that you may
-not do anything to the Java ACE code that will prevent it from being
-distributed freely (such as copyrighting it yourself). Naturally, I am not
-responsible for any problems caused by using Java ACE.
-</P>
-<P>
-My goal is to see Java ACE continue to evolve and become a more
-comprehensive, robust, and well-documented Java toolkit that is freely
-available to researchers and developers. If you have any
-improvements, suggestions, and or comments, I'd like to hear about it.
-</P>
-<P>
-Thanks,
-</P>
-<P>
-Douglas C. Schmidt
-<BR>
-<A HREF="mailto@schmidt@cs.wustl.edu">schmidt@cs.wustl.edu</A>
-</P>
-</BODY>
-</HTML>
diff --git a/java/JACE/package.html b/java/JACE/package.html
deleted file mode 100644
index 72d43449ea7..00000000000
--- a/java/JACE/package.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-
-<H3>Overview of Java ACE</H3>
-<P>Java ACE is a collection of Java packages containing classes that have been converted from the C++ version of
-the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ADAPTIVE Communication Environment</A> (ACE). The C++ version
-of ACE is a large object-oriented network programming toolkit which contains over 125,000 lines of C++ code and
-uses advanced C++ features like templates.</P>
-<P>The goal of converting ACE from C++ to Java is to provide a portable programming toolkit with a similar interface
-and functionality to the original version of ACE. This allows new and current users of C++ ACE an easy transition
-to Java and also adds significant value to programming concurrent Java networking applications. Note that applications
-written using Java ACE can communicate seamlessly over sockets with applications written using C++ ACE.</P>
-<P>The following diagram illustrates the architecture of the Java version of ACE:</P>
-<CENTER>
-<IMG SRC="java-ace.gif" ALIGN="BOTTOM" BORDER="0"></CENTER>
-<P>
-The Java ACE architecture has fewer components than the diagram illustrating the architecture for the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">C++
-version of ACE </A>. This reduction in size occurs for two reasons. First, the Java Virtual Machine (JVM) handles
-many of the portability issues provided by C++ ACE. Therefore, the OS adaptation layer is unnecessary. Second,
-Java doesn't support certain OS features provided by Win32, UNIX, and other OS platforms that C++ ACE is ported
-to. For example, Java doesn't support shared memory and memory-mapped files and therefore the memory management
-wrappers (such as <CODE>Mem_Map</CODE> and <CODE>Shared_Malloc</CODE>) are omitted from Java ACE.</P>
-
-<P>The process of converting ACE from C++ to Java provided us with an excellent source of insights on the strengths
-and weaknesses of using Java for industrial-strength software system frameworks. We've written a paper documenting
-our <A HREF="http://www.cs.wustl.edu/~schmidt/C++2java.html">experiences</A> converting the C++ version of ACE
-to Java.
-
-</BODY>
-</HTML>
-
diff --git a/java/MSVJProjects.zip b/java/MSVJProjects.zip
deleted file mode 100644
index d5d7c95ebe5..00000000000
--- a/java/MSVJProjects.zip
+++ /dev/null
Binary files differ
diff --git a/java/README b/java/README
deleted file mode 100644
index 961a0d94c66..00000000000
--- a/java/README
+++ /dev/null
@@ -1,40 +0,0 @@
-Java ACE Version 1.5
-
-JACE is compatible with Java 1.1 and higher.
-
-Directory information:
-
-JACE/ All main, network service, and test source files
-
-classes/ Output directory for all the .class files. This may
- need to be added to your classpath.
-
-doc/ If you generate the javadoc documentation, it will be
- placed here. Requires javadoc 1.2 or later. I think
- 1.2.2 is the first version that correctly "inherits"
- comments.
-
-Notes on building Java ACE:
-
-UNIX:
-
-Use GNU make on the Makefile in the JACE subdirectory. That will
-build the main and network service sources. To build the tests,
-use the Makefile in the JACE/tests subdirectory.
-
-Generate the javadoc documentation with the command "make doc" with
-the Makefile in the JACE subdirectory.
-
-Windows:
-
-Visual J++ 6.0 solution and project files are provided. The main
-JACE solution file compiles all the source files (main, network
-service, and test). The solutions and projects are in
-MSVJProjects.zip.
-
-If you don't have VJ++ and are using the JDK from the command line,
-you can compile JACE with the batch files in makebat.zip in the JACE
-subdirectory.
-
-Generate the javadoc documentation with the makedoc.bat file (also
-in makebat.zip).
diff --git a/java/VERSION b/java/VERSION
deleted file mode 100644
index 8c004c2231b..00000000000
--- a/java/VERSION
+++ /dev/null
@@ -1,5 +0,0 @@
-This is Java ACE version 1.5.
-
-If you have any problems, please send email to Douglas C. Schmidt
-at (schmidt@cs.wustl.edu)
-
diff --git a/java/apps/NexusII/README b/java/apps/NexusII/README
deleted file mode 100644
index 60a630cef5a..00000000000
--- a/java/apps/NexusII/README
+++ /dev/null
@@ -1,58 +0,0 @@
-Nexus II - A chat application in Java with image support
---------------------------------------------------------
-
- Rajeev Bector (rajeev@cs.wustl.edu)
- Aravind Gopalan (aravind@cs.wustl.edu)
- Sumedh Mungee (sumedh@cs.wustl.edu)
-
-This is the README file. This distribution contains the NexusII
-server, which is a java application that can be started by a command
-similar to the one contained in the sample "start" shell-script.
-
-It also contains a "start.html" file, which serves as an example on how
-a client applet can be included within a .html file.
-
-A sample use of this, alongwith a simple users manual, can be found at
-http://cumbia.cs.wustl.edu/NexusII/
-
-Compiling (optional, all the class files are already present)
--------------------------------------------------------------
-
-All the source .java files, alongwith the makefile should be placed in
-the same directory, and can then be compiled using make.
-
-The client/server use the following packages:
-
- awtCommand: This package provides a GUI toolkit for the applet
- ACE: This is used both by the client/server for
- networking. ACE documentation can be found at:
- http://www.cs.wustl.edu/~schmidt/ACE.html
-
-Running
--------
-
-See the "start" and "start.html" files for examples on how to run the
-server and client applet, respectively. The "mywebaddress" variable is
-the "temporary" URL of the server, and the "mywebdir" variable is the
-temporary directory in which images are cached by the server. Make
-sure that both these exist and are world-readable. The "mywebdir"
-should be writable to by the server. The "mywebdir" and "mywebaddress"
-variables should thus point to the same location, of which mywebdir
-contains the path, and mywebaddress contains the URL.
-
-See "start" for an example on how to do this.
-
-If you only want to use an existing running server, all you need to
-know is the server host-name and port number, and you can directly run
-the start.html file via appletviewer.
-
-Notes
------
-
-1. You can compile the client and server using the same makefile.
-2. The client applet MUST reside on the same host as the server is running on.
-4. run the server using start script. Change the paramters in the start script,
- suitable to your configurations. The start script contains further
- information on this.
-
-
diff --git a/java/apps/NexusII/classes/ClientHandler.class b/java/apps/NexusII/classes/ClientHandler.class
deleted file mode 100644
index ecfff46e582..00000000000
--- a/java/apps/NexusII/classes/ClientHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/FrameHandler.class b/java/apps/NexusII/classes/FrameHandler.class
deleted file mode 100644
index c7582979625..00000000000
--- a/java/apps/NexusII/classes/FrameHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/ImageCanvas.class b/java/apps/NexusII/classes/ImageCanvas.class
deleted file mode 100644
index 5768eef7116..00000000000
--- a/java/apps/NexusII/classes/ImageCanvas.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/NexusClientApplet.class b/java/apps/NexusII/classes/NexusClientApplet.class
deleted file mode 100644
index f5c913215f6..00000000000
--- a/java/apps/NexusII/classes/NexusClientApplet.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/NexusIIserver.class b/java/apps/NexusII/classes/NexusIIserver.class
deleted file mode 100644
index 5cf554e2961..00000000000
--- a/java/apps/NexusII/classes/NexusIIserver.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/Room.class b/java/apps/NexusII/classes/Room.class
deleted file mode 100644
index 1dc6e2fab54..00000000000
--- a/java/apps/NexusII/classes/Room.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/RoomFactory.class b/java/apps/NexusII/classes/RoomFactory.class
deleted file mode 100644
index e7addff06a4..00000000000
--- a/java/apps/NexusII/classes/RoomFactory.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/RoomFrame.class b/java/apps/NexusII/classes/RoomFrame.class
deleted file mode 100644
index 76e27e3b97b..00000000000
--- a/java/apps/NexusII/classes/RoomFrame.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/RoomThread.class b/java/apps/NexusII/classes/RoomThread.class
deleted file mode 100644
index 219a0cb0bc9..00000000000
--- a/java/apps/NexusII/classes/RoomThread.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CApplet.class b/java/apps/NexusII/classes/awtCommand/CApplet.class
deleted file mode 100644
index 998ff08bcef..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CApplet.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CApplet.java b/java/apps/NexusII/classes/awtCommand/CApplet.java
deleted file mode 100644
index a8680d9abf3..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CApplet.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-import java.applet.*;
-
-public class CApplet extends Applet {
-
- protected Command gotFocusCommand = null,
- lostFocusCommand = null;
- protected Command mouseDownCommand = null,
- mouseDragCommand = null,
- mouseEnterCommand = null,
- mouseExitCommand = null,
- mouseMoveCommand = null,
- mouseUpCommand = null;
- protected Command keyUpCommand = null,
- keyDownCommand = null;
-
- /**
- * Constructs a new CApplet.
- */
- public CApplet() {
- super();
- }
-
- /*
- * event handling methods
- */
-
- /**
- * Called if the window gains focus. This results in a call to
- * the gotFocusCommand object with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the window loses focus. This results in a call to
- * the lostFocusCommand object with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse is down.
- * This results in a call to the mouseDownCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDown(Event evt, int x, int y) {
- if (mouseDownCommand != null)
- mouseDownCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is dragged.
- * This results in a call to the mouseDragCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDrag(Event evt, int x, int y) {
- if (mouseDragCommand != null)
- mouseDragCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse enters the window.
- * This results in a call to the mouseEnterCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseEnter(Event evt, int x, int y) {
- if (mouseEnterCommand != null)
- mouseEnterCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse moves inside the window.
- * This results in a call to the mouseMoveCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseMove(Event evt, int x, int y) {
- if (mouseExitCommand != null)
- mouseExitCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is up.
- * This results in a call to the mouseUpCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseUp(Event evt, int x, int y) {
- if (mouseUpCommand != null)
- mouseUpCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if a character is pressed.
- * This results in a call to the keyDownCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyDown(Event evt, int key) {
- if (keyDownCommand != null)
- keyDownCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
- /**
- * Called if a character is released.
- * This results in a call to the keyUpCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyUp(Event evt, int key) {
- if (keyUpCommand != null)
- keyUpCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
-
- /*
- * set...Command methods
- */
-
-
- /**
- * Sets the mouseDownCommand object.
- */
- public void setMouseDownCommand(Command c) {
- mouseDownCommand = c;
- }
-
- /**
- * Sets the moueDragCommand object.
- */
- public void setMouseDragCommand(Command c) {
- mouseDragCommand = c;
- }
-
- /**
- * Sets the mouseEnterCommand object.
- */
- public void setMouseEnterCommand(Command c) {
- mouseEnterCommand = c;
- }
-
- /**
- * Sets the mouseExitCommand object.
- */
- public void setMouseExitCommand(Command c) {
- mouseExitCommand = c;
- }
-
- /**
- * Sets the mouseMoveCommand object.
- */
- public void setMouseMoveCommand(Command c) {
- mouseMoveCommand = c;
- }
-
- /**
- * Sets the mouseUpCommand object.
- */
- public void setMouseUpCommand(Command c) {
- mouseUpCommand = c;
- }
-
- /**
- * Sets the keyDownCommand object.
- */
- public void setKeyDownCommand(Command c) {
- keyDownCommand = c;
- }
-
- /**
- * Sets the keyUpCommand object.
- */
- public void setKeyUpCommand(Command c) {
- keyUpCommand = c;
- }
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CButton.class b/java/apps/NexusII/classes/awtCommand/CButton.class
deleted file mode 100644
index b099c2dc4a6..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CButton.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CButton.java b/java/apps/NexusII/classes/awtCommand/CButton.java
deleted file mode 100644
index ff0f3385bad..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CButton.java
+++ /dev/null
@@ -1,41 +0,0 @@
-
-package awtCommand;
-
-import java.lang.*;
-import java.awt.*;
-
-public class CButton extends java.awt.Button {
- protected Command actionCommand = null;
-
- /**
- * Constructs a CButton.
- */
- public CButton() {
- super();
- }
-
- /**
- * Constructs a CButton with the given name.
- */
- public CButton(String name) {
- super(name);
- }
-
- /**
- * Sets the actionCommand object.
- */
- public void setActionCommand(Command action) {
- actionCommand = action;
- }
-
- /**
- * Called when the button is selected..
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the button's label.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CCanvas.class b/java/apps/NexusII/classes/awtCommand/CCanvas.class
deleted file mode 100644
index 48f63357daf..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CCanvas.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CCanvas.java b/java/apps/NexusII/classes/awtCommand/CCanvas.java
deleted file mode 100644
index 837b6f56f7a..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CCanvas.java
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CCanvas extends Canvas {
-
- protected Command gotFocusCommand = null,
- lostFocusCommand = null;
- protected Command mouseDownCommand = null,
- mouseDragCommand = null,
- mouseEnterCommand = null,
- mouseExitCommand = null,
- mouseMoveCommand = null,
- mouseUpCommand = null;
- protected Command keyUpCommand = null,
- keyDownCommand = null;
- protected Command actionCommand = null;
- protected Command scrollAbsoluteCommand = null,
- lineDownCommand = null,
- lineUpCommand = null,
- pageDownCommand = null,
- pageUpCommand = null;
- protected Command selectCommand = null,
- deselectCommand = null;
-
-
- /**
- * Constructs a new CCanvas.
- */
- public CCanvas() {
- super();
- }
-
- /**
- * Handles the event.
- * Calls methods for variousL events and passes
- * others to its superclass method.
- */
- public boolean handleEvent(Event evt) {
- switch (evt.id) {
- case Event.SCROLL_ABSOLUTE:
- return scrollAbsolute(evt, evt.arg);
- case Event.SCROLL_LINE_DOWN:
- return lineDown(evt, evt.arg);
- case Event.SCROLL_LINE_UP:
- return lineUp(evt, evt.arg);
- case Event.SCROLL_PAGE_DOWN:
- return pageDown(evt, evt.arg);
- case Event.SCROLL_PAGE_UP:
- return pageUp(evt, evt.arg);
- case Event.LIST_SELECT:
- return select(evt, evt.arg);
- case Event.LIST_DESELECT:
- return deselect(evt, evt.arg);
- default:
- return super.handleEvent(evt);
- }
- }
-
-
- /*
- * event handling methods
- */
-
- /**
- * Called if the window gains focus. This results in a call to
- * the gotFocusCommand object with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the window loses focus. This results in a call to
- * the lostFocusCommand object with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse is down.
- * This results in a call to the mouseDownCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDown(Event evt, int x, int y) {
- if (mouseDownCommand != null)
- mouseDownCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is dragged.
- * This results in a call to the mouseDragCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDrag(Event evt, int x, int y) {
- if (mouseDragCommand != null)
- mouseDragCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse enters the window.
- * This results in a call to the mouseEnterCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseEnter(Event evt, int x, int y) {
- if (mouseEnterCommand != null)
- mouseEnterCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse moves inside the window.
- * This results in a call to the mouseMoveCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseMove(Event evt, int x, int y) {
- if (mouseExitCommand != null)
- mouseExitCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is up.
- * This results in a call to the mouseUpCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseUp(Event evt, int x, int y) {
- if (mouseUpCommand != null)
- mouseUpCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if a character is pressed.
- * This results in a call to the keyDownCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyDown(Event evt, int key) {
- if (keyDownCommand != null)
- keyDownCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
- /**
- * Called if a character is released.
- * This results in a call to the keyUpCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyUp(Event evt, int key) {
- if (keyUpCommand != null)
- keyUpCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
- /**
- * Called when an ACTION_EVENT is generated.
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the event's arg.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is dragged.
- * This results in a call to the scrollAbsoluteCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean scrollAbsolute(Event evt, Object what) {
- if (scrollAbsoluteCommand != null)
- scrollAbsoluteCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented down.
- * This results in a call to the lineDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineDown(Event evt, Object what) {
- if (lineDownCommand != null)
- lineDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented up.
- * This results in a call to the lineUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineUp(Event evt, Object what) {
- if (lineUpCommand != null)
- lineUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages up.
- * This results in a call to the pageUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageUp(Event evt, Object what) {
- if (pageUpCommand != null)
- pageUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages down.
- * This results in a call to the pageDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageDown(Event evt, Object what) {
- if (pageDownCommand != null)
- pageDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse selects an item in a List.
- * This results in a call to the selectCommand object
- * with <code>what</code> set to the selected index.
- */
- public boolean select(Event evt, Object what) {
- if (selectCommand != null)
- selectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /**
- * Called if the mouse deselects an item in a List.
- * This results in a call to the deselectCommand object
- * with <code>what</code> set to the deselected index.
- */
- public boolean deselect(Event evt, Object what) {
- if (deselectCommand != null)
- deselectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /*
- * set...Command methods
- */
-
-
-
- /**
- * Sets the mouseDownCommand object.
- */
- public void setMouseDownCommand(Command c) {
- mouseDownCommand = c;
- }
-
- /**
- * Sets the moueDragCommand object.
- */
- public void setMouseDragCommand(Command c) {
- mouseDragCommand = c;
- }
-
- /**
- * Sets the mouseEnterCommand object.
- */
- public void setMouseEnterCommand(Command c) {
- mouseEnterCommand = c;
- }
-
- /**
- * Sets the mouseExitCommand object.
- */
- public void setMouseExitCommand(Command c) {
- mouseExitCommand = c;
- }
-
- /**
- * Sets the mouseMoveCommand object.
- */
- public void setMouseMoveCommand(Command c) {
- mouseMoveCommand = c;
- }
-
- /**
- * Sets the mouseUpCommand object.
- */
- public void setMouseUpCommand(Command c) {
- mouseUpCommand = c;
- }
-
- /**
- * Sets the keyDownCommand object.
- */
- public void setKeyDownCommand(Command c) {
- keyDownCommand = c;
- }
-
- /**
- * Sets the keyUpCommand object.
- */
- public void setKeyUpCommand(Command c) {
- keyUpCommand = c;
- }
-
- /**
- * Sets the actionCommand object.
- */
- public void setActionCommand(Command action) {
- actionCommand = action;
- }
-
- /**
- * Sets the scrollAbsoluteCommand.
- */
- public void setScrollAbsoluteCommand(Command c) {
- scrollAbsoluteCommand = c;
- }
-
- /**
- * Sets the lineUpCommand.
- */
- public void setLineUpCommand(Command c) {
- lineUpCommand = c;
- }
-
- /**
- * Sets the lineDownCommand.
- */
- public void setLineDownCommand(Command c) {
- lineDownCommand = c;
- }
-
- /**
- * Sets the pageUpCommand.
- */
- public void setPageUpCommand(Command c) {
- pageUpCommand = c;
- }
-
- /**
- * Sets the pageDownCommand.
- */
- public void setPageDownCommand(Command c) {
- pageDownCommand = c;
- }
-
- /**
- * Sets the selectCommand.
- */
- public void setSelectCommand(Command select) {
- selectCommand = select;
- }
-
- /**
- * Sets the deselectCommand.
- */
- public void setDeselectCommand(Command deselect) {
- deselectCommand = deselect;
- }
-
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CFrame.class b/java/apps/NexusII/classes/awtCommand/CFrame.class
deleted file mode 100644
index 27f87ab82c8..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CFrame.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CFrame.java b/java/apps/NexusII/classes/awtCommand/CFrame.java
deleted file mode 100644
index f63d3ce8b9a..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CFrame.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CFrame extends Frame {
-
- protected Command destroyCommand = null,
- deiconifyCommand = null,
- iconifyCommand = null,
- movedCommand = null;
- protected Command gotFocusCommand = null,
- lostFocusCommand = null;
- protected Command mouseDownCommand = null,
- mouseDragCommand = null,
- mouseEnterCommand = null,
- mouseExitCommand = null,
- mouseMoveCommand = null,
- mouseUpCommand = null;
- protected Command keyUpCommand = null,
- keyDownCommand = null;
- protected Command actionCommand = null;
- protected Command scrollAbsoluteCommand = null,
- lineDownCommand = null,
- lineUpCommand = null,
- pageDownCommand = null,
- pageUpCommand = null;
- protected Command selectCommand = null,
- deselectCommand = null;
-
- /**
- * Constructs a new, initially invisible CFrame.
- */
- public CFrame() {
- super();
- }
-
- /**
- * Constructs a new, initially invisible CFrame with the
- * specified title.
- */
- public CFrame(String title) {
- super(title);
- }
-
- /**
- * Handles the event
- */
- public boolean handleEvent(Event evt) {
- switch (evt.id) {
- case Event.WINDOW_DESTROY:
- return windowDestroy(evt);
- case Event.WINDOW_DEICONIFY:
- return windowDeiconify(evt);
- case Event.WINDOW_ICONIFY:
- return windowIconify(evt);
- case Event.WINDOW_MOVED:
- return windowMoved(evt);
- case Event.SCROLL_ABSOLUTE:
- return scrollAbsolute(evt, evt.arg);
- case Event.SCROLL_LINE_DOWN:
- return lineDown(evt, evt.arg);
- case Event.SCROLL_LINE_UP:
- return lineUp(evt, evt.arg);
- case Event.SCROLL_PAGE_DOWN:
- return pageDown(evt, evt.arg);
- case Event.SCROLL_PAGE_UP:
- return pageUp(evt, evt.arg);
- case Event.LIST_SELECT:
- return select(evt, evt.arg);
- case Event.LIST_DESELECT:
- return deselect(evt, evt.arg);
- default:
- return super.handleEvent(evt);
- }
- }
-
- /*
- * event handling methods
- */
-
- /**
- * Called if the dialog's window is destroyed. This results in a call to
- * the destroyCommand object with <code>what</code> set to null
- */
- public boolean windowDestroy(Event evt) {
- if (destroyCommand != null)
- destroyCommand.execute(this, evt, null);
- return false;
- }
-
- /**
- * Called if the dialog's window is deiconified. This results in a call to
- * the deiconifyCommand object with <code>what</code> set to null
- */
- public boolean windowDeiconify(Event evt) {
- if (deiconifyCommand != null)
- deiconifyCommand.execute(this, evt, null);
- return false;
- }
-
- /**
- * Called if the dialog is iconified. This results in a call to
- * the iconifyCommand object with <code>what</code> set to null
- */
- public boolean windowIconify(Event evt) {
- if (iconifyCommand != null)
- iconifyCommand.execute(this, evt, null);
- return false;
- }
-
- /**
- * Called if the dialog's window is moved. This results in a call to
- * the movedCommand object with <code>what</code> set to Point(x, y)
- */
- public boolean windowMoved(Event evt) {
- if (movedCommand != null)
- movedCommand.execute(this, evt, new Point(evt.x, evt.y));
- return false;
- }
-
- /*
- * I don't know where what objects this next set should belong
- * to. Putting them at the top is ok for now
- */
-
- /**
- * Called if the window gains focus. This results in a call to
- * the gotFocusCommand object with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the window loses focus. This results in a call to
- * the lostFocusCommand object with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse is down.
- * This results in a call to the mouseDownCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDown(Event evt, int x, int y) {
- if (mouseDownCommand != null)
- mouseDownCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is dragged.
- * This results in a call to the mouseDragCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDrag(Event evt, int x, int y) {
- if (mouseDragCommand != null)
- mouseDragCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse enters the window.
- * This results in a call to the mouseEnterCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseEnter(Event evt, int x, int y) {
- if (mouseEnterCommand != null)
- mouseEnterCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse moves inside the window.
- * This results in a call to the mouseMoveCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseMove(Event evt, int x, int y) {
- if (mouseExitCommand != null)
- mouseExitCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is up.
- * This results in a call to the mouseUpCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseUp(Event evt, int x, int y) {
- if (mouseUpCommand != null)
- mouseUpCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if a character is pressed.
- * This results in a call to the keyDownCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyDown(Event evt, int key) {
- if (keyDownCommand != null)
- keyDownCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
- /**
- * Called if a character is released.
- * This results in a call to the keyUpCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyUp(Event evt, int key) {
- if (keyUpCommand != null)
- keyUpCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
-
- /**
- * Called when an ACTION_EVENT is generated.
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the event's arg.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is dragged.
- * This results in a call to the scrollAbsoluteCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean scrollAbsolute(Event evt, Object what) {
- if (scrollAbsoluteCommand != null)
- scrollAbsoluteCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented down.
- * This results in a call to the lineDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineDown(Event evt, Object what) {
- if (lineDownCommand != null)
- lineDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented up.
- * This results in a call to the lineUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineUp(Event evt, Object what) {
- if (lineUpCommand != null)
- lineUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages up.
- * This results in a call to the pageUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageUp(Event evt, Object what) {
- if (pageUpCommand != null)
- pageUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages down.
- * This results in a call to the pageDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageDown(Event evt, Object what) {
- if (pageDownCommand != null)
- pageDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse selects an item in a List.
- * This results in a call to the selectCommand object
- * with <code>what</code> set to the selected index.
- */
- public boolean select(Event evt, Object what) {
- if (selectCommand != null)
- selectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /**
- * Called if the mouse deselects an item in a List.
- * This results in a call to the deselectCommand object
- * with <code>what</code> set to the deselected index.
- */
- public boolean deselect(Event evt, Object what) {
- if (deselectCommand != null)
- deselectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /*
- * set...Command methods
- */
-
-
- /**
- * Sets the destroyCommand object.
- */
- public void setDestroyCommand(Command c) {
- destroyCommand = c;
- }
-
- /**
- * Sets the deiconifyCommand object.
- */
- public void setDeiconifyCommand(Command c) {
- deiconifyCommand = c;
- }
-
- /**
- * Sets the iconifyCommand object.
- */
- public void setIconifyCommand(Command c) {
- iconifyCommand = c;
- }
-
- /**
- * Sets the movedCommand object.
- */
- public void setMovedCommand(Command c) {
- movedCommand = c;
- }
-
- /**
- * Sets the mouseDownCommand object.
- */
- public void setMouseDownCommand(Command c) {
- mouseDownCommand = c;
- }
-
- /**
- * Sets the moueDragCommand object.
- */
- public void setMouseDragCommand(Command c) {
- mouseDragCommand = c;
- }
-
- /**
- * Sets the mouseEnterCommand object.
- */
- public void setMouseEnterCommand(Command c) {
- mouseEnterCommand = c;
- }
-
- /**
- * Sets the mouseExitCommand object.
- */
- public void setMouseExitCommand(Command c) {
- mouseExitCommand = c;
- }
-
- /**
- * Sets the mouseMoveCommand object.
- */
- public void setMouseMoveCommand(Command c) {
- mouseMoveCommand = c;
- }
-
- /**
- * Sets the mouseUpCommand object.
- */
- public void setMouseUpCommand(Command c) {
- mouseUpCommand = c;
- }
-
- /**
- * Sets the keyDownCommand object.
- */
- public void setKeyDownCommand(Command c) {
- keyDownCommand = c;
- }
-
- /**
- * Sets the keyUpCommand object.
- */
- public void setKeyUpCommand(Command c) {
- keyUpCommand = c;
- }
-
- /**
- * Sets the actionCommand object.
- */
- public void setActionCommand(Command action) {
- actionCommand = action;
- }
-
- /**
- * Sets the scrollAbsoluteCommand.
- */
- public void setScrollAbsoluteCommand(Command c) {
- scrollAbsoluteCommand = c;
- }
-
- /**
- * Sets the lineUpCommand.
- */
- public void setLineUpCommand(Command c) {
- lineUpCommand = c;
- }
-
- /**
- * Sets the lineDownCommand.
- */
- public void setLineDownCommand(Command c) {
- lineDownCommand = c;
- }
-
- /**
- * Sets the pageUpCommand.
- */
- public void setPageUpCommand(Command c) {
- pageUpCommand = c;
- }
-
- /**
- * Sets the pageDownCommand.
- */
- public void setPageDownCommand(Command c) {
- pageDownCommand = c;
- }
-
- /**
- * Sets the selectCommand.
- */
- public void setSelectCommand(Command select) {
- selectCommand = select;
- }
-
- public void setGotFocusCommand(Command c) {
- gotFocusCommand = c ;
- }
- /**
- * Sets the deselectCommand.
- */
- public void setDeselectCommand(Command deselect) {
- deselectCommand = deselect;
- }
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java/apps/NexusII/classes/awtCommand/CList.class b/java/apps/NexusII/classes/awtCommand/CList.class
deleted file mode 100644
index 1de89790826..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CList.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CList.java b/java/apps/NexusII/classes/awtCommand/CList.java
deleted file mode 100644
index 110e6a01db2..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CList.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CList extends List {
- protected Command selectCommand = null;
- protected Command deselectCommand = null;
- protected Command actionCommand = null;
-
- /**
- * Handles the event
- */
- public boolean handleEvent(Event evt) {
- switch (evt.id) {
- case Event.LIST_SELECT:
- return select(evt, evt.arg);
- case Event.LIST_DESELECT:
- return deselect(evt, evt.arg);
- default:
- return super.handleEvent(evt);
- }
- }
-
- /*
- * event handling methods
- */
-
-
- /**
- * Called if the Enter key is pressed.
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the selected item.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse selects an item.
- * This results in a call to the selectCommand object
- * with <code>what</code> set to the selected index.
- */
- public boolean select(Event evt, Object what) {
- if (selectCommand != null)
- selectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /**
- * Called if the mouse deselects an item.
- * This results in a call to the deselectCommand object
- * with <code>what</code> set to the deselected index.
- */
- public boolean deselect(Event evt, Object what) {
- if (deselectCommand != null)
- deselectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /**
- * Sets the actionCommand.
- */
- public void setActionCommand(Command action) {
- actionCommand = action;
- }
-
- /**
- * Sets the selectCommand.
- */
- public void setSelectCommand(Command select) {
- selectCommand = select;
- }
-
- /**
- * Sets the deselectCommand.
- */
- public void setDeselectCommand(Command deselect) {
- deselectCommand = deselect;
- }
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CPanel.class b/java/apps/NexusII/classes/awtCommand/CPanel.class
deleted file mode 100644
index a1b72ca7cb7..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CPanel.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CPanel.java b/java/apps/NexusII/classes/awtCommand/CPanel.java
deleted file mode 100644
index 1c8d39f8537..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CPanel.java
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CPanel extends Panel {
-
- protected Command gotFocusCommand = null,
- lostFocusCommand = null;
- protected Command mouseDownCommand = null,
- mouseDragCommand = null,
- mouseEnterCommand = null,
- mouseExitCommand = null,
- mouseMoveCommand = null,
- mouseUpCommand = null;
- protected Command keyUpCommand = null,
- keyDownCommand = null;
- protected Command actionCommand = null;
- protected Command scrollAbsoluteCommand = null,
- lineDownCommand = null,
- lineUpCommand = null,
- pageDownCommand = null,
- pageUpCommand = null;
- protected Command selectCommand = null,
- deselectCommand = null;
-
- /**
- * Constructs a new CPanel.
- */
- public CPanel() {
- super();
- }
-
-
- /**
- * Handles the event.
- * Calls methods for variousL events and passes
- * others to its superclass method.
- */
- public boolean handleEvent(Event evt) {
- switch (evt.id) {
- case Event.SCROLL_ABSOLUTE:
- return scrollAbsolute(evt, evt.arg);
- case Event.SCROLL_LINE_DOWN:
- return lineDown(evt, evt.arg);
- case Event.SCROLL_LINE_UP:
- return lineUp(evt, evt.arg);
- case Event.SCROLL_PAGE_DOWN:
- return pageDown(evt, evt.arg);
- case Event.SCROLL_PAGE_UP:
- return pageUp(evt, evt.arg);
- case Event.LIST_SELECT:
- return select(evt, evt.arg);
- case Event.LIST_DESELECT:
- return deselect(evt, evt.arg);
- default:
- return super.handleEvent(evt);
- }
- }
-
- /*
- * event handling methods
- */
-
- /**
- * Called if the window gains focus. This results in a call to
- * the gotFocusCommand object with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the window loses focus. This results in a call to
- * the lostFocusCommand object with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse is down.
- * This results in a call to the mouseDownCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDown(Event evt, int x, int y) {
- if (mouseDownCommand != null)
- mouseDownCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is dragged.
- * This results in a call to the mouseDragCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDrag(Event evt, int x, int y) {
- if (mouseDragCommand != null)
- mouseDragCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse enters the window.
- * This results in a call to the mouseEnterCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseEnter(Event evt, int x, int y) {
- if (mouseEnterCommand != null)
- mouseEnterCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse moves inside the window.
- * This results in a call to the mouseMoveCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseMove(Event evt, int x, int y) {
- if (mouseExitCommand != null)
- mouseExitCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is up.
- * This results in a call to the mouseUpCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseUp(Event evt, int x, int y) {
- if (mouseUpCommand != null)
- mouseUpCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if a character is pressed.
- * This results in a call to the keyDownCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyDown(Event evt, int key) {
- if (keyDownCommand != null)
- keyDownCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
- /**
- * Called if a character is released.
- * This results in a call to the keyUpCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyUp(Event evt, int key) {
- if (keyUpCommand != null)
- keyUpCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
-
- /**
- * Called when an ACTION_EVENT is generated.
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the event's arg.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is dragged.
- * This results in a call to the scrollAbsoluteCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean scrollAbsolute(Event evt, Object what) {
- if (scrollAbsoluteCommand != null)
- scrollAbsoluteCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented down.
- * This results in a call to the lineDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineDown(Event evt, Object what) {
- if (lineDownCommand != null)
- lineDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented up.
- * This results in a call to the lineUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineUp(Event evt, Object what) {
- if (lineUpCommand != null)
- lineUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages up.
- * This results in a call to the pageUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageUp(Event evt, Object what) {
- if (pageUpCommand != null)
- pageUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages down.
- * This results in a call to the pageDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageDown(Event evt, Object what) {
- if (pageDownCommand != null)
- pageDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse selects an item in a List.
- * This results in a call to the selectCommand object
- * with <code>what</code> set to the selected index.
- */
- public boolean select(Event evt, Object what) {
- if (selectCommand != null)
- selectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /**
- * Called if the mouse deselects an item in a List.
- * This results in a call to the deselectCommand object
- * with <code>what</code> set to the deselected index.
- */
- public boolean deselect(Event evt, Object what) {
- if (deselectCommand != null)
- deselectCommand.execute(this, evt, what);
- return false;
- }
-
- /*
- * set...Command methods
- */
-
-
-
- /**
- * Sets the mouseDownCommand object.
- */
- public void setMouseDownCommand(Command c) {
- mouseDownCommand = c;
- }
-
- /**
- * Sets the moueDragCommand object.
- */
- public void setMouseDragCommand(Command c) {
- mouseDragCommand = c;
- }
-
- /**
- * Sets the mouseEnterCommand object.
- */
- public void setMouseEnterCommand(Command c) {
- mouseEnterCommand = c;
- }
-
- /**
- * Sets the mouseExitCommand object.
- */
- public void setMouseExitCommand(Command c) {
- mouseExitCommand = c;
- }
-
- /**
- * Sets the mouseMoveCommand object.
- */
- public void setMouseMoveCommand(Command c) {
- mouseMoveCommand = c;
- }
-
- /**
- * Sets the mouseUpCommand object.
- */
- public void setMouseUpCommand(Command c) {
- mouseUpCommand = c;
- }
-
- /**
- * Sets the keyDownCommand object.
- */
- public void setKeyDownCommand(Command c) {
- keyDownCommand = c;
- }
-
- /**
- * Sets the keyUpCommand object.
- */
- public void setKeyUpCommand(Command c) {
- keyUpCommand = c;
- }
-
-
- /**
- * Sets the actionCommand object.
- */
- public void setActionCommand(Command action) {
- actionCommand = action;
- }
-
- /**
- * Sets the scrollAbsoluteCommand.
- */
- public void setScrollAbsoluteCommand(Command c) {
- scrollAbsoluteCommand = c;
- }
-
- /**
- * Sets the lineUpCommand.
- */
- public void setLineUpCommand(Command c) {
- lineUpCommand = c;
- }
-
- /**
- * Sets the lineDownCommand.
- */
- public void setLineDownCommand(Command c) {
- lineDownCommand = c;
- }
-
- /**
- * Sets the pageUpCommand.
- */
- public void setPageUpCommand(Command c) {
- pageUpCommand = c;
- }
-
- /**
- * Sets the pageDownCommand.
- */
- public void setPageDownCommand(Command c) {
- pageDownCommand = c;
- }
-
- /**
- * Sets the selectCommand.
- */
- public void setSelectCommand(Command select) {
- selectCommand = select;
- }
-
- /**
- * Sets the deselectCommand.
- */
- public void setDeselectCommand(Command deselect) {
- deselectCommand = deselect;
- }
-
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CTextArea.class b/java/apps/NexusII/classes/awtCommand/CTextArea.class
deleted file mode 100644
index 307cbf9e01c..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CTextArea.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CTextArea.java b/java/apps/NexusII/classes/awtCommand/CTextArea.java
deleted file mode 100644
index eacaf526929..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CTextArea.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CTextArea extends TextArea {
-
- protected Command gotFocusCommand = null,
- lostFocusCommand = null;
-
- /**
- * Constructs a new TextArea.
- */
- public CTextArea() {
- super();
- }
-
- /**
- * Constructs a new TextArea with the specified number of rows and columns.
- * @param rows the number of rows
- * @param cols the number of columns
- */
- public CTextArea(int rows, int cols) {
- super(rows, cols);
- }
-
- /**
- * Constructs a new TextArea with the specified text displayed.
- * @param text the text to be displayed
- */
- public CTextArea(String text) {
- super(text);
- }
-
- /**
- * Constructs a new TextArea with the specified text and the
- * specified number of rows
- * and columns.
- * @param text the text to be displayed
- * @param rows the number of rows
- * @param cols the number of cols
- */
- public CTextArea(String text, int rows, int cols) {
- super(text, rows, cols);
- }
-
-
- /**
- * Called when the text area gains the focus.
- * This results in a call to the gotFocusCommand object
- * with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when the text area loses the focus.
- * This results in a call to the lostFocusCommand object
- * with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Sets the gotFocusCommand object.
- */
- public void setGotFocusCommand(Command c) {
- gotFocusCommand = c;
- }
-
- /**
- * Sets the lostFocusCommand object.
- */
- public void setLostFocusCommand(Command c) {
- lostFocusCommand = c;
- }
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CTextField.class b/java/apps/NexusII/classes/awtCommand/CTextField.class
deleted file mode 100644
index 9e8e8bea709..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CTextField.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CTextField.java b/java/apps/NexusII/classes/awtCommand/CTextField.java
deleted file mode 100644
index 146f13206e5..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CTextField.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CTextField extends TextField {
-
- protected Command actionCommand = null,
- gotFocusCommand = null,
- lostFocusCommand = null;
-
- /**
- * Constructs a new CTextField.
- */
- public CTextField() {
- super();
- }
-
- /**
- * Constructs a new CTextField initialized with the specified columns.
- * @param cols the number of columns
- */
- public CTextField(int cols) {
- super(cols);
- }
-
- /**
- * Constructs a new CTextField initialized with the specified text.
- * @param text the text to be displayed
- */
- public CTextField(String text) {
- super(text);
- }
-
-
- /**
- * Constructs a new CTextField initialized with the specified text and columns.
- * @param text the text to be displayed
- * @param cols the number of columns
- */
- public CTextField(String text, int cols) {
- super(text, cols);
- }
-
-
- /**
- * Called when Enter is pressed in the text field.
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the text contents.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when the text field gains the focus.
- * This results in a call to the gotFocusCommand object
- * with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when the text field loses the focus.
- * This results in a call to the lostFocusCommand object
- * with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Sets the actionCommand object.
- */
- public void setActionCommand(Command c) {
- actionCommand = c;
- }
-
-
- /**
- * Sets the gotFocusCommand object.
- */
- public void setGotFocusCommand(Command c) {
- gotFocusCommand = c;
- }
-
- /**
- * Sets the lostFocusCommand object.
- */
- public void setLostFocusCommand(Command c) {
- lostFocusCommand = c;
- }
-}
diff --git a/java/apps/NexusII/classes/awtCommand/Command.class b/java/apps/NexusII/classes/awtCommand/Command.class
deleted file mode 100644
index 6b3c12c24f7..00000000000
--- a/java/apps/NexusII/classes/awtCommand/Command.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/Command.java b/java/apps/NexusII/classes/awtCommand/Command.java
deleted file mode 100644
index 373c7a363cf..00000000000
--- a/java/apps/NexusII/classes/awtCommand/Command.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-
-
-package awtCommand;
-
-import java.awt.*;
-
-public interface Command {
-
- /**
- * Executes application logic.
- * Called by events occurring in associated objects
- */
- public abstract void execute(Object target, Event evt, Object what);
-}
diff --git a/java/apps/NexusII/classes/commandHandler.class b/java/apps/NexusII/classes/commandHandler.class
deleted file mode 100644
index ce09bf08a09..00000000000
--- a/java/apps/NexusII/classes/commandHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/commandParser.class b/java/apps/NexusII/classes/commandParser.class
deleted file mode 100644
index 19b91f654ff..00000000000
--- a/java/apps/NexusII/classes/commandParser.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/connectionHandler.class b/java/apps/NexusII/classes/connectionHandler.class
deleted file mode 100644
index b91e9259402..00000000000
--- a/java/apps/NexusII/classes/connectionHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/joinHandler.class b/java/apps/NexusII/classes/joinHandler.class
deleted file mode 100644
index 82dc4cd27b3..00000000000
--- a/java/apps/NexusII/classes/joinHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/roomHandler.class b/java/apps/NexusII/classes/roomHandler.class
deleted file mode 100644
index f952c389176..00000000000
--- a/java/apps/NexusII/classes/roomHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/textHandler.class b/java/apps/NexusII/classes/textHandler.class
deleted file mode 100644
index d5ce3bf1d5e..00000000000
--- a/java/apps/NexusII/classes/textHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/src/Consumer.java b/java/apps/NexusII/src/Consumer.java
deleted file mode 100644
index 84df9b3a3ae..00000000000
--- a/java/apps/NexusII/src/Consumer.java
+++ /dev/null
@@ -1,74 +0,0 @@
-
-// This class encapsulates a Consumer. The consumer dq's from the queue
-// Supports both a timed and blocking consumer.
-// Each instance of this class creates a different thread of control.
-// On timeout, the producer returns.
-// The producer tries to dq "iteration" number of times, unless it times out
-
-//package NexusII.util ;
-
-public class Consumer extends Thread
-{
-public static final int DEFAULT_ITERATIONS = 1 ;
-public Consumer(MT_Bounded_Queue queue)
- {
- this.queue_ = queue ;
- this.iterations_ = new Integer(DEFAULT_ITERATIONS);
- this.time_out_ = -1 ;
- }
-
-public Consumer(MT_Bounded_Queue queue, String name)
- {
- super(name);
- this.queue_ = queue ;
- this.iterations_ = new Integer(DEFAULT_ITERATIONS);
- this.time_out_ = -1 ;
- }
-
-
-public Consumer(MT_Bounded_Queue queue, String name, Integer iterations)
- {
- super(name);
- this.queue_ = queue ;
- this.iterations_ = iterations ;
- this.time_out_ = -1 ;
- }
-
-
-public Consumer(MT_Bounded_Queue queue, String name, Integer iterations, long msec_timeout)
- {
- super(name);
- this.queue_ = queue ;
- this.iterations_ = iterations ;
- this.time_out_ = msec_timeout ;
- }
-
-
-
-public void run()
- {
- for(int i=0;i<iterations_.intValue();i++)
- {
- if(time_out_ < 0)
- System.out.println(getName() + ": dequeued " + queue_.dq());
- else
- {
- Object err = queue_.dq(time_out_);
- if(err == null)
- {
- System.out.println(getName() + ": Timedout\n");
- return ;
- }
-
- else
- System.out.println(getName() + ": dequeued " + err);
- }
- }
- }
-
-
-protected MT_Bounded_Queue queue_ ;
-private Integer iterations_ ;
-private long time_out_ ;
-}
-
diff --git a/java/apps/NexusII/src/MT_Bounded_Queue.java b/java/apps/NexusII/src/MT_Bounded_Queue.java
deleted file mode 100644
index a9b493fa263..00000000000
--- a/java/apps/NexusII/src/MT_Bounded_Queue.java
+++ /dev/null
@@ -1,226 +0,0 @@
-
-// package NexusII.util ;
-
-// The minimun functionality to be associated with a queue
-interface Queue
-{
-public void nq(Object item);
-public Object dq();
-public boolean is_full();
-public boolean is_empty();
-public static final int DEF_SIZE = 1;
-};
-
-// Specific Conditions associated with MT_Bounded_Queue
-// Is true if there is space in the queue
-
-class Not_Full_Condition extends Timed_Wait
-{
-
-public Not_Full_Condition(MT_Bounded_Queue q)
- {
- super(q);
- }
-
-public synchronized boolean condition()
- {
- MT_Bounded_Queue mq_ = (MT_Bounded_Queue) object_;
- return !mq_.is_full ();
- }
-
-}
-
-// Is true if there's something in the queue
-
-class Not_Empty_Condition extends Timed_Wait
-{
-
-public Not_Empty_Condition(MT_Bounded_Queue q)
- {
- super(q);
- }
-
-public synchronized boolean condition()
- {
- // Delegate to the appropriate conditional
- // check on the MessageQueue.
- MT_Bounded_Queue mq_ = (MT_Bounded_Queue) object_;
- return !mq_.is_empty ();
- }
-
-private MT_Bounded_Queue mq_ ;
-}
-
-
-
-
-// Encapsulates a bounded - synchronized queue
-
-public class MT_Bounded_Queue implements Queue
-{
-
-
-private Object[] queue_ ;
-private int front_ ;
-private int back_ ;
-private int max_size_ ;
-private int size_ ;
-private Not_Empty_Condition not_empty_condition_ ;
-private Not_Full_Condition not_full_condition_ ;
-private int nq_count_ ;
-private int dq_count_ ;
-
-// The counters counts the number of nq's and dq's operations made on this
-// instance of the queue
-
-public int dq_count()
-{
- return dq_count_ ;
-}
-
-public int nq_count()
-{
- return nq_count_ ;
-}
-
-public MT_Bounded_Queue()
- {
- // call the other constructor with DEF_SIZE
- this(DEF_SIZE);
- }
-
-public MT_Bounded_Queue(int max_size)
- {
- this.front_ = 0 ;
- this.back_ = 0 ;
- this.max_size_ = max_size ;
- this.size_ = 0 ;
- // these are included for STATISTICS
- this.nq_count_ = 0 ;
- this.dq_count_ = 0 ;
- this.queue_ = new Object[this.max_size_];
- not_full_condition_ = new Not_Full_Condition(this);
- not_empty_condition_ = new Not_Empty_Condition(this);
- }
-
-// Blocking nq
-public synchronized void nq(Object item)
- {
- // Wait till the queue has space
- while(is_full())
- {
- try {
- wait();
- } catch (InterruptedException e) {}
- }
-
- // enqueue here
- queue_[back_] = item ;
- back_ = (back_ + 1) % max_size_ ;
- size_++ ;
- // One more enqueue operation has occured
- nq_count_ ++ ;
- // wakeup the sleeping guys
- notifyAll();
- }
-
- // Timed nq
-// returns -1 if timed_out
-public synchronized int nq(Object item,long msec_timeout)
- {
- // Wait till the queue has space
- try {
- not_full_condition_.timed_wait(msec_timeout);
- } catch (InterruptedException e) {}
- catch (TimeoutException t)
- {
- return -1 ;
- }
-
- // enqueue here
- queue_[back_] = item ;
- back_ = (back_ + 1) % max_size_ ;
- size_++ ;
-
- // One more enqueue operation has occured
- nq_count_ ++ ;
- // wakeup the sleeping consumers
- not_empty_condition_.broadcast ();
- return 0 ;
- }
-
-
-
-
- // Blockin dq
-public synchronized Object dq()
- {
- // wait till the queue has something in it
- while(is_empty())
- {
- try {
- wait();
- } catch (InterruptedException e) {}
- }
-
- // dequeue here
- Object return_object = queue_[front_] ;
- front_ = (front_ + 1) % max_size_ ;
- size_ -- ;
- // One more enqueue operation has occured
- dq_count_ ++ ;
- //wake up the sleeping producers
- notifyAll();
- return return_object ;
- }
-
-
- // Timed dq
-
-public synchronized Object dq(long msec_timeout)
- {
- // wait till the queue has something in it
- try {
- not_empty_condition_.timed_wait(msec_timeout);
- } catch (InterruptedException e) {}
- catch (TimeoutException t)
- {
- return null;
- }
-
- // dequeue here
- Object return_object = queue_[front_] ;
- front_ = (front_ + 1) % max_size_ ;
- size_ -- ;
-
- // One more enqueue operation has occured
- dq_count_ ++ ;
-
- //wake up the sleeping guys
- not_full_condition_.broadcast();
- return return_object ;
- }
-
-public boolean is_empty()
- {
- if (size_ == 0)
- return true ;
- else
- return false ;
-
- }
-
-public boolean is_full()
- {
- if (size_ == max_size_)
- return true ;
- else
- return false ;
- }
-
-}
-
-
-
-
-
diff --git a/java/apps/NexusII/src/MT_Bounded_Queue_Group.java b/java/apps/NexusII/src/MT_Bounded_Queue_Group.java
deleted file mode 100644
index 734dc51a84b..00000000000
--- a/java/apps/NexusII/src/MT_Bounded_Queue_Group.java
+++ /dev/null
@@ -1,79 +0,0 @@
-//package NexusII.server;
-
-//import NexusII.util.*;
-import java.util.*;
-
-
-public class MT_Bounded_Queue_Group {
-
- public Vector q_group_ = new Vector();
-
- public MT_Bounded_Queue_Group(int num) {
-
- q_group_ = new Vector(num);
-
- }
-
- public MT_Bounded_Queue_Group() {
-
- // q_group_ = new Vector();
-
- }
-
- public String toString() {
-
- return q_group_.toString();
-
- }
-
- // always returns true
- public boolean addToGroup(MT_Bounded_Queue q) {
-
- q_group_.addElement(q);
- return true; // for now
-
- }
-
-
- // returns false if the q was not part of the group
- public boolean delFromGroup(MT_Bounded_Queue q) {
-
- return q_group_.removeElement(q);
-
- }
-
-
- public boolean checkInGroup(MT_Bounded_Queue q) {
-
- return q_group_.contains(q);
-
- }
-
-
- // returns number of q's on which data was successfully enqueued
- public int nq(Object o) {
-
- if(q_group_.isEmpty() )
- return 0;
-
- Enumeration e = q_group_.elements();
-
- int i = 0;
- while(e.hasMoreElements()) {
-
- MT_Bounded_Queue q = (MT_Bounded_Queue) e.nextElement();
- q.nq(o);
- i++;
-
- }
-
- return i;
- }
-
-}
-
-
-
-
-
-
diff --git a/java/apps/NexusII/src/NexusClientApplet.java b/java/apps/NexusII/src/NexusClientApplet.java
deleted file mode 100644
index 58b26930718..00000000000
--- a/java/apps/NexusII/src/NexusClientApplet.java
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:10:59 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.3 1996/12/06 07:25:29 rajeev
-# Got SetRoomName to work -- needed for LROOMS
-#
-# Revision 1.2 1996/12/06 04:48:21 rajeev
-# added handling for l_users and L_room packets from server
-#
-# Revision 1.1 1996/12/06 03:37:22 rajeev
-# Initial revision
-#
-
- This is the client applet
- Part of Nexus-II project !!
- Copyright : Aravind Gopalan, Rajeev Bector, Sumedh Mungee
-*/
-
-// package NexusII;
-
-// I hate packages
-
-import java.applet.Applet;
-import java.awt.* ;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-//import NexusII.networking.* ;
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-
-// get the awtCommand package now
-import awtCommand.* ;
-
-// The applet runs the root thread -- easy access to graphics now ...
-
-public class NexusClientApplet extends CApplet implements consts,Runnable {
-
- // Who am I -- will be modified if the /nick command is given
- public static String myName = new String("anonymous");
-
- /* All Event Handlers */
-
- // To check if applet is connected
- boolean connected = false;
-
- // The connector handler
- connectionHandler nexusConnector ;
-
- // join handler
- joinHandler nexusJoiner ;
-
- // command handler
- commandParser nexusParser ;
-
- commandHandler commandLineHandler ;
- // Streams for writing and reading from Socket
- DataOutputStream outStream;
- DataInputStream inStream;
-
- // Thread which does everything for the applet
- Thread mainThread ;
-
- // this is just a visit
- // host where I live actually ;-)
- String host;
-
- // Which server to connect to
- Integer serverPort ;
-
- // Where are the queues for reading and writing
- // reader and writers will access these and also the interpretor and dep.
-
- MT_Bounded_Queue read_q ;
- MT_Bounded_Queue write_q ;
- MT_Bounded_Queue root_q ;
- // Where Aravind writes his commands
- MT_Bounded_Queue command_q ;
-
-
-
-
- // ***********************************************************
- // Graphics objects
- // ***********************************************************
-
- // Total applet size
- int minWidth_ = 500;
- int minHeight_ = 450;
-
- // State variables needed to be maintained
- boolean connected_ = false;
- int numRooms_ = 0;
-
- // Buttons
- private CButton bConn;
- private CButton bJoin;
- private CButton bLeave;
- private CButton bRooms;
- private CButton bUsers;
-
- private CTextField tfCommandLine = new CTextField(80);
- private CTextField tfRoomName = new CTextField(16);
- private List lRooms = new List(10,false);
- private Label roomLabel = new Label("Rooms:");
- private List lUsers = new List(10,false);
- private Label userLabel = new Label("Users:");
-
-// private RoomSpace roomspace = new RoomSpace();
- private Panel roomspace = new Panel();
-
- public Dimension preferredSize() {
- return minimumSize();
- }
-
- public Dimension minimumSize() {
- return new Dimension(minWidth_, minHeight_);
- }
-
- // -----------------------------------------------------------------
- // Basically draws up all the components (not sub-components) of the
- // Applet window ...
- // Pretty much straightforward barring quirks of AWT -- ArGo
- void SetUpButtons(GridBagLayout gbl, GridBagConstraints gbc) {
- // The Connect Button
- gbc.weightx = 1.0;
- gbc.weighty = 0.5;
- gbc.gridx = 2;
- gbc.gridy = 1;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.anchor = GridBagConstraints.CENTER;
- gbc.ipady = 5;
- bConn = new CButton("Connect");
- bConn.setActionCommand(nexusConnector);
- gbl.setConstraints(bConn, gbc);
- add(bConn);
- gbc.ipady = 0;
-
- // The remaining buttons
- gbc.fill = GridBagConstraints.BOTH;
- gbc.anchor = GridBagConstraints.CENTER;
- gbc.weightx = 1.0;
- gbc.weighty = 0.5;
- gbc.insets = new Insets(2,2,2,2);
- gbc.ipadx = 2;
- gbc.ipady = 2;
-
- // Join Button
- gbc.gridx = 0;
- gbc.gridy = 3;
- bJoin = new CButton("Join");
- gbl.setConstraints(bJoin,gbc);
- add(bJoin);
-
- // Leave Button
- gbc.gridx = 1;
- gbc.gridy = 3;
- bLeave = new CButton("Leave");
- gbl.setConstraints(bLeave,gbc);
- add(bLeave);
-
- // List Rooms Button
- gbc.gridx = 0;
- gbc.gridy = 4;
- bRooms = new CButton("List Rooms");
- gbl.setConstraints(bRooms,gbc);
- add(bRooms);
-
- // List Users Button
- gbc.gridx = 1;
- gbc.gridy = 4;
- bUsers = new CButton("List Users");
- gbl.setConstraints(bUsers,gbc);
- add(bUsers);
-
- } // of SetUpButtons
-
- void SetUpGraphics() {
-
- resize(preferredSize());
-
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
- setFont(new Font("Helvetica", Font.PLAIN, 14));
- setLayout (gbl);
-
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
-
- // For the list of rooms
- // First the Room list label
- gbc.weightx = 0;
- gbc.weighty = 0;
- gbc.gridx = 0;
- gbc.gridy = 0;
- gbc.anchor = GridBagConstraints.SOUTHWEST;
- gbc.fill = GridBagConstraints.NONE;
- gbl.setConstraints(roomLabel,gbc);
- add(roomLabel);
- // Now the Room combo -- list + text field
- // the actual list
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
- gbc.gridy = 1;
- gbc.fill = GridBagConstraints.VERTICAL;
- gbc.anchor = GridBagConstraints.NORTH;
- // gbc.insets = new Insets(0,2,0,2);
- gbl.setConstraints(lRooms,gbc);
- add(lRooms);
- if (DEBUG)
- lRooms.addItem("Room_1");
- // The text field
- gbc.weightx = 0;
- gbc.weighty = 0;
- gbc.gridy = 2;
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(0,0,0,0);
- gbl.setConstraints(tfRoomName,gbc);
- add(tfRoomName);
-
- // Similarly for the list of users
- // label
- gbc.weightx = 0;
- gbc.weighty = 0;
- gbc.gridx = 1;
- gbc.gridy = 0;
- gbc.anchor = GridBagConstraints.SOUTHWEST;
- gbc.fill = GridBagConstraints.NONE;
- gbc.insets = new Insets(0,0,0,0);
- gbl.setConstraints(userLabel,gbc);
- add(userLabel);
- // The list
- gbc.weightx = 1;
- gbc.weighty = 1;
- gbc.gridy = 1;
- gbc.fill = GridBagConstraints.VERTICAL;
- gbc.anchor = GridBagConstraints.NORTH;
- gbl.setConstraints(lUsers,gbc);
- add(lUsers);
- if (DEBUG)
- lUsers.addItem("USer #1");
-
- // Setup all the buttons
- SetUpButtons(gbl,gbc) ;
-
- // The command line
- gbc.gridx = 0;
- gbc.gridy = 5;
- gbc.ipadx = 0;
- gbc.ipady = 0;
- gbc.insets = new Insets(0,0,0,0);
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.fill = GridBagConstraints.NONE;
- gbc.anchor = GridBagConstraints.CENTER;
- gbl.setConstraints(tfCommandLine,gbc);
- add(tfCommandLine);
-
-
- // We are done -- startup with all buttons except connect disabled
- OnDisconnect();
- return;
- }
-
- public void init() {
- //Get the address of the host the applet was downloaded from
- host = getCodeBase().getHost();
- // Get servers portnumber from the home page
- serverPort = Integer.valueOf(getParameter("serverport"));
-
-
- // Create the nexusconnector object whose execute will be called later
- // on pressing the connect button
- nexusConnector = new connectionHandler(host,serverPort,this);
-
- if(DEBUG){
- System.out.println("Server Portnumber is " + serverPort + "\n");
- }
-
- // initialize the graphics
- SetUpGraphics();
- } // of method init
-
- public synchronized void start() {
- // Aravind will create the "connect" button here and register an instance
-
- if (DEBUG) {
- System.out.println("In start() method.");
- }
- }
-
-
- // Here is the stop for the applet
- // Called when the user goes away from the page
- public synchronized void stop() {
- if (!DEBUG) {
- showStatus("Stop has been called ");
- }
-
- if (connected) {
- nexusConnector.execute(null,null,null);
- }
- }
-
-
-
-
- // -----------------------------------------------------------------------
- // Public Access functions
- public Hashtable Mapper() {
- return nexusJoiner.Mapper();
- }
-
- public String GetRoomName() {
- StringTokenizer t = new StringTokenizer(tfRoomName.getText());
- if(t.hasMoreTokens()) {
- return t.nextToken();
- }
- else
- return "" ;
- }
-
- public void AddRoomName(String name) {
- int count = lRooms.countItems();
- for (int i=0;i<count;i++)
- if (lRooms.getItem(i).equalsIgnoreCase(name))
- return;
- lRooms.addItem(name);
- }
-
- public void SetRoomName(String name) {
- int count = lRooms.countItems();
- for(int i=0;i<count;i++) {
- if(lRooms.getItem(i).equalsIgnoreCase(name)) {
- // Have to simulate a select event by doing the selection ourselves
- lRooms.select(i);
- tfRoomName.setText(lRooms.getSelectedItem());
- tfRoomName.selectAll();
- break ;
- }
- }
- }
-
- public void sendNickToServer(String name) {
- nexusJoiner.sendTestPacket("ROOT","NICK",name,nexusConnector.writer_q());
- }
-
-
- // will run the mainthread
- public void run() {
- if(DEBUG) {
- System.out.println("Root thread is starting -- ");
- }
-
- root_q = new MT_Bounded_Queue(QUEUE_SIZE);
- nexusJoiner.Mapper().put("ROOT",root_q);
- // continously wait for something to read and then update the graphics
- // objects ----
- if(DEBUG) {
- nexusJoiner.sendTestPacket("ROOT","LROOMS","a b c d",root_q);
- }
-
- for(;;) {
- dataPacket rootPacket = (dataPacket)root_q.dq();
- if(DEBUG) {
- System.out.println("Root got a packet --- ");
- }
- if(rootPacket.contentType().equalsIgnoreCase("LROOMS")) {
- update_lrooms(rootPacket.content());
- }
- else if(rootPacket.contentType().equalsIgnoreCase("LUSERS")) {
- update_lusers(rootPacket.destination(),rootPacket.content());
- }
- }
-
- }
-
-
-
- // This method will update the graphics of lrooms
- void update_lrooms(String data) {
- lRooms.disable();
- tfRoomName.disable();
- lRooms.clear();
-
- StringTokenizer t = new StringTokenizer(data);
- while(t.hasMoreTokens()) {
- lRooms.addItem(t.nextToken());
- }
- if (lRooms.countItems() != 0) {
- lRooms.select(0);
- tfRoomName.setText(lRooms.getItem(0));
- }
- tfRoomName.enable();
- lRooms.enable();
- repaint();
- }
-
- void update_lusers(String name,String data) {
- lUsers.disable();
- userLabel.setText("Users: "+ name);
- lUsers.clear();
- StringTokenizer t = new StringTokenizer(data);
- while(t.hasMoreTokens()) {
- lUsers.addItem(t.nextToken());
- }
- lUsers.enable();
- repaint();
- }
-
- // -----------------------------------------------------------------------
- // User Input handling -- ArGo
-
- // Function to handle Connect button being pressed
- public void OnConnect(){
- // Create the event handlers --
- nexusJoiner = new joinHandler(nexusConnector.writer_q(),this);
- nexusParser = new commandParser(nexusConnector.writer_q(),this);
- commandLineHandler = new commandHandler(this);
- // start the main thread in the applets context
- mainThread = new Thread(this);
- mainThread.start();
- // test
- // Graphics here --
- bJoin.enable();
- bJoin.setActionCommand(nexusJoiner);
- bLeave.enable();
- bLeave.setActionCommand(nexusJoiner);
- bRooms.enable();
- bRooms.setActionCommand(nexusParser);
- bUsers.enable();
- bUsers.setActionCommand(nexusParser);
- tfCommandLine.enable();
- tfCommandLine.setActionCommand(commandLineHandler);
- tfRoomName.enable();
- lRooms.enable();
- lUsers.enable();
- // Change the name to "Disconnect" and ensure that update happens
- bConn.setLabel("Disconnect");
- validate(); // Don't know if this is necessary
- connected = true; // Applet is now connected
- }
-
- // Function to handle Connect button being pressed
- public void OnDisconnect(){
- bJoin.disable();
- bLeave.disable();
- bRooms.disable();
- bUsers.disable();
- tfCommandLine.disable();
- tfRoomName.disable();
- lRooms.disable();
- lUsers.disable();
- // Change the name back to "Connect" and ensure update happens
- bConn.setLabel("Connect");
- validate();
- // Stop the ROOT room thread
- if (connected) {
- mainThread.stop();
- connected = false; // Applet is disconnected
- }
- }
-
- // Basically take care of the inputs
- public boolean handleEvent(Event event) {
- if (event.target == lRooms) {
- if (event.id == Event.LIST_SELECT) { // selected the item
- tfRoomName.setText(lRooms.getSelectedItem());
- tfRoomName.selectAll();
- if (DEBUG)
- System.out.println("Actually handling the select event");
- return true;
- }
- }
- return super.handleEvent(event);
- }
-
- public void update(Graphics g) {
- paint(g);
- }
-} // of class NexusClientApplet
-
-
-
diff --git a/java/apps/NexusII/src/NexusIIserver.java b/java/apps/NexusII/src/NexusIIserver.java
deleted file mode 100644
index e3b5a52acd5..00000000000
--- a/java/apps/NexusII/src/NexusIIserver.java
+++ /dev/null
@@ -1,280 +0,0 @@
-// The Nexus II server.
-// Sumedh Mungee <sumedh@cs.wustl.edu>
-
-import java.net.*;
-import java.io.*;
-import java.util.*;
-import ACE.OS.*;
-import ACE.SOCK_SAP.*;
-
-public class NexusIIserver implements consts {
-
- // Entry point into the server
- public static void main(String args[]) throws IOException {
-
- if(args.length != 1) {
- System.out.println("Usage: java NexusIIserver <port_num>");
- return;
- }
-
- // Create a "Hotel", which is a factory to generate Rooms
- // as and when required.
- RoomFactory Hotel = new RoomFactory();
-
- System.out.println("NexusII server booting");
- SOCKAcceptor sacceptor = new SOCKAcceptor( (new Integer(args[0])).intValue());
-
- System.out.println("NexusII is now accepting connections on port " + (new Integer(args[0])).intValue());
-
- for(;;) {
-
- SOCKStream s = new SOCKStream();
- sacceptor.accept(s);
- // Accepted connection
- // construct a client handler..
- // Pass in the connected socket as an argument,
- // and a reference to the Hotel, in case it needs
- // to create rooms..
- // and away you go..
- new Thread(new ClientHandler(s, Hotel)).start();
-
- }
- }
-}
-
-
-// This thread handles the clients..
-// It uses 2 additional threads for read/write network operations
-// These threads are dedicated to read/write from the
-// respective read/write queues..
-class ClientHandler implements Runnable,consts {
-
- private SOCKStream s_;
- private RoomFactory Hotel_;
- private MT_Bounded_Queue rq_ = new MT_Bounded_Queue(QUEUE_SIZE);
- private MT_Bounded_Queue wq_ = new MT_Bounded_Queue(QUEUE_SIZE);
- private String my_name_;
- private Vector roomlist_ = new Vector();
- private boolean finished_ = false;
- private String init_image_;
-
- public ClientHandler(SOCKStream s, RoomFactory h) {
- s_ = s;
- Hotel_ = h;
- init_image_ = new String(System.getProperty("mywebaddress") + NEXUS_LOGO);
- }
-
- public void run() {
- // Construct the reader/writer threads with the queues and the
- // corresponding socket data streams as parameters.
- Thread r_ = new socketReaderThread(rq_, new DataInputStream(s_.inputStream()));
- Thread w_ = new socketWriterThread(wq_, new DataOutputStream(s_.outputStream()));
- r_.start();
- w_.start();
-
- // now start parsing the messages, and take action..
- // todo: optimize the below..
-
- while(!finished_) {
- dataPacket d = (dataPacket) rq_.dq();
- if(d.contentType().startsWith("INIT"))
- nexus_init(d);
- if(d.contentType().startsWith("JOIN"))
- nexus_join(d);
- if(d.contentType().startsWith("LEAVE"))
- nexus_leave(d);
- if(d.contentType().startsWith("QUIT"))
- nexus_quit(d);
- if(d.contentType().startsWith("TEXT"))
- nexus_text(d);
- if(d.contentType().startsWith("LUSERS"))
- nexus_lusers(d);
- if(d.contentType().startsWith("LROOMS"))
- nexus_lrooms(d);
- if(d.contentType().startsWith("NICK"))
- nexus_nick(d);
- if(d.contentType().startsWith("URL"))
- nexus_url(d);
- }
- }
-
- // The following classes implement the server functions..
-
- private void nexus_init(dataPacket packet) {
- my_name_ = new String(packet.clientName());
- wq_.nq(packet);
- }
-
- private void nexus_join(dataPacket packet) {
- Room r = Hotel_.getRoom(packet.content());
- if(r.checkClient(this))
- return;
- r.addClient(this);
- roomlist_.addElement(r);
- writeRoom(r, my_name_ + " has joined the room ");
- String contenttype = new String("url");
- dataPacket d = new dataPacket(my_name_, packet.content(), contenttype, (new Integer(init_image_.length())).toString() , init_image_);
- wq_.nq(d);
- }
-
- private void nexus_text(dataPacket packet) {
- Room r = Hotel_.getRoom(packet.destination());
- r.getQ().nq(packet);
- }
-
- private void nexus_lusers(dataPacket packet) {
-
- Room r = Hotel_.getRoom(packet.content());
- Enumeration e = r.clientList();
- StringBuffer sb = new StringBuffer();
- while(e.hasMoreElements())
- sb.append(" " + ((ClientHandler)e.nextElement()).getName() + " ");
- dataPacket d = new dataPacket(my_name_, packet.destination(), packet.contentType(), (new Integer(sb.length())).toString(), sb.toString());
- wq_.nq(d);
- }
-
- private void nexus_lrooms(dataPacket packet) {
- String s = Hotel_.listRooms();
- dataPacket d = new dataPacket(my_name_, packet.destination(), packet.contentType(), (new Integer(s.length())).toString(), s.toString());
- wq_.nq(d);
- }
-
- private void nexus_nick(dataPacket packet) {
- Enumeration e = roomlist_.elements();
- while(e.hasMoreElements())
- writeRoom((Room)e.nextElement(), my_name_ + " is now known as " + packet.content());
-
- my_name_ = new String(packet.content());
- }
-
- private void nexus_leave(dataPacket packet) {
-
- Room r = Hotel_.getRoom(packet.content());
- writeRoom(r, my_name_ + " has left the room " + packet.content());
- if(r.delClient(this)) Hotel_.delRoom(r);
- roomlist_.removeElement(r);
- }
-
- private void nexus_quit(dataPacket packet) {
-
- Enumeration e = roomlist_.elements();
- while(e.hasMoreElements()) {
- Room r = (Room)e.nextElement();
- writeRoom(r, my_name_ + " has quit " );
- r.delClient(this);
- }
- finished_ = true;
- }
-
- private void nexus_url(dataPacket packet) {
- try {
- URL u = new URL(packet.content());
-
- // first extract the filename stripped of its path.
- int index = u.getFile().lastIndexOf("/");
- String infilename = u.getFile().substring(index + 1);
-
- // next construct the name of the temporary file
- String outfilename = (System.getProperty("mywebdir") + "_" + packet.destination() + "." + infilename);
-
- // now the temporary URL assigned to this request
- String imageURL = new String(System.getProperty("mywebaddress") + "_" + packet.destination() + "." + infilename);
-
- // Open temporary file for writing
- FileOutputStream fout = new FileOutputStream(outfilename);
-
- // Now contact alien ship
- InputStream i = u.openStream();
- byte[] buffer = new byte[1024];
-
- // And download the image
- for(;;) {
- int num = i.read(buffer);
- if(num < 0)
- break;
- fout.write(buffer, 0, num);
- }
-
- fout.close();
- i.close();
-
- // Get room for which this request was issued
- Room r = Hotel_.getRoom(packet.destination());
-
- // invalidate previous entry
- File f = new File(r.getLastImageName());
- if(f.exists()) f.delete();
-
- // add new image name
- r.putNextImageName(outfilename);
- writeRoom(r,"Asynchronously transferring image " + packet.content() + " from " + my_name_ );
- dataPacket d = new dataPacket(my_name_, packet.destination(), packet.contentType(), (new Integer(imageURL.length())).toString(), imageURL);
- r.getQ().nq(d); // multicast this imageURL onto the room..
-
- }
- catch(java.net.MalformedURLException ue) {
- System.out.println("warning:Invalid URL requested");
- }
- catch(java.io.IOException e) {
- System.out.println("warning: IOException occurred");
- }
-
- }
-
- // Sends a "system" message msg onto room r
- private void writeRoom(Room r, String msg) {
- StringBuffer sb = new StringBuffer();
- sb.append("==>");
- sb.append(msg);
- dataPacket d = new dataPacket(my_name_, r.getName() , "TEXT" , (new Integer(sb.length())).toString(), sb.toString());
- r.getQ().nq(d);
- }
-
- public String getName() {
- return my_name_;
- }
-
- public MT_Bounded_Queue getQ() {
- return wq_;
- }
-
-}
-// ----------------------------------------------------------------------
-/** This class implements a room factory. getRoom returns an existing room,
- or else creates it and returns a reference to a new room.
-
-**/
-class RoomFactory implements consts {
-
- private Vector Hotel_;
- public RoomFactory() {
- Hotel_ = new Vector();
- }
- public synchronized Room getRoom(String name) {
- Enumeration e = Hotel_.elements();
- while(e.hasMoreElements()) {
- Room r = (Room) e.nextElement();
- if(r.getName().equals(name))
- return r;
- }
- addRoom(name);
- return getRoom(name);
- }
-
- private synchronized void addRoom(String name) {
- Room r = new Room(name);
- Hotel_.addElement(r);
- }
- public synchronized void delRoom(Room r) {
- Hotel_.removeElement(r);
- }
- public synchronized String listRooms() {
- Enumeration e = Hotel_.elements();
- StringBuffer sb = new StringBuffer();
- while(e.hasMoreElements())
- sb.append(" " + ((Room)e.nextElement()).getName() + " ");
- return sb.toString();
- }
-}
-
-
diff --git a/java/apps/NexusII/src/Producer.java b/java/apps/NexusII/src/Producer.java
deleted file mode 100644
index 4153f7d79df..00000000000
--- a/java/apps/NexusII/src/Producer.java
+++ /dev/null
@@ -1,87 +0,0 @@
-// This class encapsulates a Producer. Each new instance of this class
-// creates a different thread which tries to nq into the queue
-// Currently queues random values generated by the Random class
-// If timeout expires, the Producer instance returns
-
-//package NexusII.util ;
-
-import java.util.Random ;
-
-public class Producer extends Thread
-{
-
-// If no time out is desired, timeout value is set to one. so the run method
-// knows which nq to call
-
-public Producer(MT_Bounded_Queue queue)
- {
- this.queue_ = queue ;
- this.iterations_ = new Integer(DEFAULT_ITERATIONS);
- this.time_out_ = -1 ;
- }
-
-// Include the name of the thread as a parameter
-public Producer(MT_Bounded_Queue queue, String name)
- {
- super(name);
- this.queue_ = queue ;
- this.iterations_ = new Integer(DEFAULT_ITERATIONS);
- this.time_out_ = -1 ;
- }
-
-// If the number of iterations are also included --
-public Producer(MT_Bounded_Queue queue, String name, Integer iterations)
- {
- super(name);
- this.queue_ = queue ;
- iterations_ = iterations ;
- this.time_out_ = -1 ;
- }
-
-// Finally, if the timeout period is also included
-
-public Producer(MT_Bounded_Queue queue, String name, Integer iterations, long msec_timeout)
- {
- super(name);
- this.queue_ = queue ;
- iterations_ = iterations ;
- this.time_out_ = msec_timeout ;
- }
-
-// The hook method called by start()
-
-public void run()
- {
- // Initialize the random number generator
- Random rand = new Random();
- for(int i=0;i<iterations_.intValue();i++)
- {
- int err = 0 ;
- // Get the next random value for insertion into queue
- Integer new_item = new Integer(rand.nextInt()) ;
-
- // Doesnt make sense to have a negative timeout -- default
- if(time_out_ < 0)
- queue_.nq(new_item);
- else
- err = queue_.nq(new_item,time_out_);
-
- // If timedout stop this thread
- if(err == -1)
- {
- System.out.println(getName() + ": Timed Out \n");
- return ;
- }
-
- System.out.println(getName() + ": enqueued " + new_item.intValue());
- }
-
- }
-
-private static final int DEFAULT_ITERATIONS = 1 ;
-protected MT_Bounded_Queue queue_ ;
-private Integer iterations_ ;
-private long time_out_ ;
-}
-
-
diff --git a/java/apps/NexusII/src/Room.java b/java/apps/NexusII/src/Room.java
deleted file mode 100644
index 4a9a294c653..00000000000
--- a/java/apps/NexusII/src/Room.java
+++ /dev/null
@@ -1,97 +0,0 @@
-// RoomThread and Room implement the concept of a chat "room"
-// Sumedh Mungee <sumedh@cs.wustl.edu>
-
-
-import java.util.*;
-import java.io.File;
-
-// This class(&thread) is responsible for multicasting
-// packets on its incoming "client" queues, onto one or
-// more outgoing queues, which are picked up by the client.
-class RoomThread implements Runnable, consts {
-
- private MT_Bounded_Queue rq_;
- private Vector clientlist_;
-
- public RoomThread(MT_Bounded_Queue rq, Vector clientlist) {
- rq_ = rq;
- clientlist_ = clientlist;
- }
-
- public void run() {
- for(;;) {
- dataPacket d = (dataPacket) rq_.dq(); // Extract packet
- Enumeration e = clientlist_.elements(); // Iterate over clients
- while(e.hasMoreElements())
- ((ClientHandler)e.nextElement()).getQ().nq(d); // Enqueue packet
- }
- }
-}
-
-
-public class Room implements consts {
-
- private String name_; // name of this "room"
- private String last_image_ = new String("NexusII.gif"); // filename of the last image broadcast
- private Thread roomthread_;
- private MT_Bounded_Queue rq_ = new MT_Bounded_Queue();
- private Vector clientlist_ = new Vector();
-
- // Constructors
- public Room(String name) {
- int i;
- name_ = new String(name);
- roomthread_ = new Thread(new RoomThread(rq_, clientlist_));
- roomthread_.start();
- }
-
- // Client management methods follow..
-
- public synchronized void addClient(ClientHandler client) {
- clientlist_.addElement(client);
- }
- // Returns true if this room has now become empty
- public synchronized boolean delClient(ClientHandler client) {
- clientlist_.removeElement(client);
- return clientlist_.isEmpty();
- }
-
- public synchronized boolean checkClient(ClientHandler client) {
- return clientlist_.contains(client);
- }
-
- public synchronized Enumeration clientList() {
- return clientlist_.elements();
- }
-
- public String getName() {
- return name_;
- }
-
- public MT_Bounded_Queue getQ() {
- return rq_;
- }
-
- public synchronized String getLastImageName() {
- return last_image_;
- }
-
- public synchronized void putNextImageName(String s) {
- last_image_ = s;
- }
-
- protected void finalize() {
- roomthread_.stop();
- File f = new File(last_image_);
- if(f.exists())
- f.delete();
- roomthread_ = null;
- }
-}
-
-
-
-
-
-
-
diff --git a/java/apps/NexusII/src/RoomFrame.java b/java/apps/NexusII/src/RoomFrame.java
deleted file mode 100644
index e9da19b31d6..00000000000
--- a/java/apps/NexusII/src/RoomFrame.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:02 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.2 1996/12/07 06:25:18 rajeev
-# backup
-#
-# Revision 1.1 1996/12/07 06:15:12 rajeev
-# Initial revision
-#
-
-
-*/
-import java.awt.*;
-import awtCommand.*;
-import java.util.* ;
-
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-//import NexusII.networking.*;
-
-class RoomFrame extends CFrame implements consts {
- private static String rcsId = new String("$Id$");
-
- // Graphics Objects
- private CTextField tfInput ;
- private CTextArea taOutput ;
- private CButton bLeave ;
- private ImageCanvas icOutput;
- private Font normalFont = new Font("Helvetica", Font.PLAIN, 14);
- private Font boldFont = new Font("Helvetica", Font.BOLD, 14);
- private Font italicFont = new Font("Helvetica", Font.ITALIC, 14);
- private static final int LINE_LENGTH = 70;
-
- // Other required objects
- private MT_Bounded_Queue write_q_ ;
- private NexusClientApplet applet_ ;
- private String myName_ ;
-
- public RoomFrame(MT_Bounded_Queue write_q,
- NexusClientApplet applet,
- String name) {
- super(name);
- write_q_ = write_q ;
- applet_ = applet ;
- myName_ = name ;
- SetUpGraphics();
- this.pack();
- this.show();
- }
-
- void SetUpGraphics() {
- // Initialize the graphics objects
- // The input text line
- tfInput = new CTextField(LINE_LENGTH);
- textHandler handlerT = new textHandler(write_q_,applet_,myName_);
- tfInput.setActionCommand(handlerT);
- // The leave button
- bLeave = new CButton(LEAVE_STR);
- bLeave.setActionCommand(applet_.nexusJoiner);
-
- icOutput = new ImageCanvas(myName_);
- taOutput = new CTextArea(10,LINE_LENGTH);
-
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
- setFont(normalFont);
- setLayout (gbl);
-
- gbc.insets = new Insets(5,5,5,5);
- gbc.ipadx = 5;
- gbc.ipady = 5;
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
-
- // First the Image so that sizes are fixed
- gbc.gridx = 1;
- gbc.gridy = 0;
- gbc.anchor = GridBagConstraints.CENTER;
- gbc.fill = GridBagConstraints.BOTH;
- gbl.setConstraints(icOutput, gbc);
- add(icOutput);
-
- // The Text Output Area
- gbc.gridx = 0;
- gbc.gridy = 0;
- gbc.weighty = 0.0;
- gbc.anchor = GridBagConstraints.SOUTH;
- gbc.fill = GridBagConstraints.BOTH;
- gbl.setConstraints(taOutput,gbc);
- taOutput.setEditable(false);
- add(taOutput);
-
- // The Text Input Field
- gbc.gridx = 0;
- gbc.gridy = 1;
- gbc.weighty = 0.0;
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(tfInput,gbc);
- add(tfInput);
-
- // The Leave Button
- gbc.gridx = 1;
- gbc.gridy = 1;
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(bLeave,gbc);
- add(bLeave);
-
- resize(800,280);
- setResizable(true); // Allow the user to resize
- validate();
- }
-
- public boolean handleEvent(Event event) {
- if (event.id == Event.WINDOW_DESTROY)
- dispose();
- return super.handleEvent(event);
- }
-
- // This function will be called by the RoomHandler when it receives
- // anything for this room and will add the data
- public void addText(String tobeadded) {
- if (false) {
- String speaker = null;
- String msg = null;
- int pos = tobeadded.indexOf(':');
- if (pos >= 0)
- speaker = tobeadded.substring(0,pos+1);
- else
- speaker = new String("");
- msg = tobeadded.substring(pos+1);
- Font oldf = taOutput.getFont();
- taOutput.setFont(boldFont);
- taOutput.appendText(speaker);
- taOutput.setFont(italicFont);
- taOutput.appendText(msg+"\n");
- taOutput.setFont(oldf);
- }
- else {
- taOutput.appendText(tobeadded+"\n");
- }
- return;
- }
-
- // This function will also be called by the RoomHandler whenit receives
- // Image data for this room.
- public void updateImage(Image im) {
- if(DEBUG) {
- System.out.println("Room : I got an image");
- }
- icOutput.setImage(im);
- }
-
-
-}
-
-
-
-/**
- * The ImageCanvas Class -- for the image in the class
- */
-class ImageCanvas extends Canvas implements consts {
-
- Image image_ = null;
- int defWidth_ = 128;
- int defHeight_ = 128;
- int margin = 5;
-
- String name_ = new String("Nexus Room");
- Font nameFont = new Font("Helvetica",0,14);
-
- public ImageCanvas(String s)
- {
- name_ = s;
- }
-
- public Dimension preferredSize() {
- return minimumSize();
- }
- public Dimension minimumSize() {
- return new Dimension(defWidth_, defHeight_);
- }
-
- public void setImage(Image newIm) {
- image_ = newIm;
- repaint();
- }
- public Image getImage() {
- return image_;
- }
-
- public void name(String n) {
- name_ = n;
- }
- public String name() {
- return name_;
- }
-
- public void paint(Graphics g) {
- Dimension d = size();
- int width = d.width;
- int height = d.height;
-
- if (DEBUG)
- System.out.println("ImageCanvas:: width = "+width+ " height="+height);
-
- g.setColor(Color.black);
- g.fillRect(0,0,width-1,height-1);
- g.setColor(Color.white);
- g.fillRect(margin,margin,width-2*margin,height-2*margin);
- // Create image if reqd
- if (image_ == null)
- image_ = createImage(width-2*margin,height-2*margin);
-
- g.drawImage(image_, margin, margin,
- width-2*margin, height-2*margin, Color.white, this);
- g.setColor(Color.blue);
- g.setFont(nameFont);
- FontMetrics fm = g.getFontMetrics();
- g.drawString(name_,(width - fm.stringWidth(name_))/2,
- (int)(height*0.9 - fm.getMaxDescent()));
- validate();
- return;
- }
-
- public void update(Graphics g) {
- paint(g);
- }
-
-} // End of the Image Canvas Class
-
-
-
-// this is the event handler for the textfield -- whenever anything is typed
-class textHandler implements Command,consts,Runnable {
- private MT_Bounded_Queue write_q_ ;
- private NexusClientApplet applet_ ;
- private String name_ ;
- Object what_ ;
-
- public textHandler(MT_Bounded_Queue write_q,
- NexusClientApplet applet,
- String name) {
- write_q_ = write_q ;
- applet_ = applet ;
- name_ = name ;
- }
-
- public void execute(Object target, Event evt, Object what) {
- // get the string and send it across in a different thread
- what_ = what ;
- // clear the field in the gui
- ((TextField)target).setText("");
- // send it off
- new Thread(this).start();
- }
-
- // send off the string in a different thread
- public void run() {
- String data = (String)what_;
- // check if data begins with / and is followed by url
- if(!data.startsWith("/url")) {
-
- String user = NexusClientApplet.myName ;
- String command = user + ":" + data ;
- String len = Integer.toString(command.length());
- dataPacket packet = new dataPacket(NexusClientApplet.myName,name_,
- "TEXT",len,command);
- write_q_.nq(packet);
- }
- else {
- // it is /url
- StringTokenizer t = new StringTokenizer(data);
- // take out the /url from here
- String ur = t.nextToken();
- // data now
- String command = t.nextToken();
- String len = Integer.toString(command.length());
- dataPacket packet = new dataPacket(NexusClientApplet.myName,name_,
- "URL",len,command);
- write_q_.nq(packet);
- }
- }
-} // end of class
-
-
-
diff --git a/java/apps/NexusII/src/RoomSpace.java b/java/apps/NexusII/src/RoomSpace.java
deleted file mode 100644
index 9afb78ddff1..00000000000
--- a/java/apps/NexusII/src/RoomSpace.java
+++ /dev/null
@@ -1,110 +0,0 @@
-import java.awt.*;
-
-class RoomFrame extends Frame // implements Runnable
-{
-
- // Graphics Objects
- private Panel panel = new Panel();
- private TextField tfInput = new TextField(80);
- private TextArea taOutput = new TextArea(80,10);
- Button bLeave = new Button("Leave");
- ImageCanvas icOutput = new ImageCanvas();
-
- void InitGraphics()
- {
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
- setFont(new Font("Helvetica", Font.PLAIN, 14));
- panel.setLayout (gbl);
-
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
-
- // First the Image so that sizes are fixed
- gbc.gridx = 1;
- gbc.gridy = 0;
- gbc.anchor = GridBagConstraints.CENTER;
- gbc.fill = GridBagConstraints.NONE;
- gbl.setConstraints(icOutput, gbc);
- panel.add(icOutput);
-
- // The Text Output Area
- gbc.gridx = 0;
- gbc.gridy = 0;
- gbc.anchor = GridBagConstraints.WEST;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(taOutput,gbc);
- taOutput.setEditable(false);
- panel.add(taOutput);
-
- // The Text Input Field
- gbc.gridx = 0;
- gbc.gridy = 1;
- gbc.anchor = GridBagConstraints.WEST;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(tfInput,gbc);
- panel.add(tfInput);
-
- // The Leave Button
- gbc.gridx = 1;
- gbc.gridy = 1;
- gbc.anchor = GridBagConstraints.WEST;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(bLeave,gbc);
- panel.add(bLeave);
- }
-
-
- public RoomFrame()
- {
- this("Anonymous");
- }
-
- public RoomFrame(String s)
- {
- InitGraphics();
- super(s);
- this.pack();
- this.show();
- }
-
- public boolean handleEvent(Event event)
- {
- if (event.id == Event.WINDOW_DESTROY)
- dispose();
- return super.handleEvent(event);
- }
-
-}
-
-class ImageCanvas extends Canvas {
-
- Image image_;
- int imgWidth_ = 128;
- int imgHeight_ = 128;
-
- public Dimension preferredSize() {
- return minimumSize();
- }
-
- public Dimension minimumSize() {
- return new Dimension(imgWidth_, imgHeight_);
- }
-
- public void image(Image newIm) {
- image_ = newIm;
- }
-
- public Image image() {
- return image_;
- }
-
- public void paint(Graphics g) {
- g.drawImage(image_,0,0,this);
- }
-
- public void update() {
- paint();
- }
-
-} // End of the Image Canvas Class
diff --git a/java/apps/NexusII/src/Timed_Wait.java b/java/apps/NexusII/src/Timed_Wait.java
deleted file mode 100644
index 792db39ceb9..00000000000
--- a/java/apps/NexusII/src/Timed_Wait.java
+++ /dev/null
@@ -1,86 +0,0 @@
-// package NexusII.util ;
-
-
-// Subclass the Exception class to get TimeoutException
-
-class TimeoutException extends Exception
-{
- public TimeoutException()
- {
- super();
- }
-
- public TimeoutException(String s)
- {
- super(s);
- }
-
-}
-
-// Timed_wait class. This can used by enq and deq to do timed_waits
-public abstract class Timed_Wait
-{
- // By default the object is itself
-public Timed_Wait ()
- {
- object_ = this;
- }
- // If the calling class specifies objects, delegate to it.
-public Timed_Wait (Object obj)
- {
- object_ = obj;
- }
-
- // This is the object we delegate to if a
- // subclass gives us a particular object,
- // otherwise, we ``delegate'' to ourself
- // (i.e., to this).
-protected Object object_;
-
- // This hook method must be overridden
- // by a subclass to provide the condition.
-
-public abstract boolean condition ();
-
- // This will borrow the monitor lock from the calling class
-
-public final void timed_wait(long msec_timeout)
-throws InterruptedException, TimeoutException
- {
- // wait if the condition is false
- if (!condition())
- {
- long start = System.currentTimeMillis() ;
- long wait_time = msec_timeout ;
-
- for(;;)
- {
- // anyway have to wait atleast till waittime
- object_.wait(wait_time);
-
- // on coming out check for the condition again
- if(!condition())
- {
- long now = System.currentTimeMillis() ;
- long time_so_far = now - start ;
-
- // if timed out
- if(time_so_far >= msec_timeout)
- throw new TimeoutException() ;
- else
- // retry !! we have some time left
- wait_time = msec_timeout - time_so_far ;
- }
- else // the condition is true here
- break ;
- }
- }
- }
-
- // Notify all threads waiting on the object_.
-public final void broadcast ()
- {
- object_.notifyAll ();
- }
-}
-
diff --git a/java/apps/NexusII/src/Timer.java b/java/apps/NexusII/src/Timer.java
deleted file mode 100644
index df781274913..00000000000
--- a/java/apps/NexusII/src/Timer.java
+++ /dev/null
@@ -1,31 +0,0 @@
-// This class encapsulates a Timer mechanism
-// Can be used for Profiling of parts of code and gathering statistics
-
-package NexusII ;
-
-public class Timer {
-
-public Timer()
-{
- start_ = 0 ;
-}
-
-public void start()
-
-{
- start_ = System.currentTimeMillis();
-}
-
-public long elapsed_time()
-{
- return System.currentTimeMillis() - start_ ;
-}
-
-public void stop()
-{
- start_ = 0 ;
-}
-
-private long start_ = 0 ;
-
-}
diff --git a/java/apps/NexusII/src/commandHandler.java b/java/apps/NexusII/src/commandHandler.java
deleted file mode 100644
index 4cf80d04235..00000000000
--- a/java/apps/NexusII/src/commandHandler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// To handle the events generated by command-line. The user will be saying
-// /nick <nick-name>
-
-import java.awt.* ;
-import java.util.* ;
-
-//import NexusII.client.* ;
-
-import awtCommand.* ;
-
-
-public class commandHandler implements Command,consts {
- NexusClientApplet applet_ ;
- // will handle the /nick command for now -- urgent
- public commandHandler(NexusClientApplet applet ) {
- applet_ = applet ;
- }
-
- public void execute(Object target,Event evt,Object what) {
- // Right now assume that it is just a nick command
- if(DEBUG) {
- System.out.println("Nick typed in ---- ");
- }
- StringTokenizer t = new StringTokenizer((String)what) ;
- // string for holding /nick and <nickname>
- String command = null ;
- if(t.hasMoreTokens()) {
- command = t.nextToken();
- }
-
- if(command.equalsIgnoreCase("/nick")) {
- if(t.hasMoreTokens()) {
- // have to send a nick packet to server
- applet_.myName = new String(t.nextToken());
- applet_.sendNickToServer(applet_.myName);
-
- }
- }
- // clear the field in the gui
- ((TextField)target).setText("");
-
- }
-}
-// of class
diff --git a/java/apps/NexusII/src/commandParser.java b/java/apps/NexusII/src/commandParser.java
deleted file mode 100644
index 64e6da66122..00000000000
--- a/java/apps/NexusII/src/commandParser.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:06 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:05:08 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-// why not use java utilities !!
-
-import java.util.* ;
-import java.lang.* ;
-import java.awt.* ;
-
-
-
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-//import NexusII.networking.* ;
-
-
-
-import awtCommand.* ;
-
-// This class takes a command parses it and packetizes it and puts it in the
-// global send queue. It works in its own thread of control and after nqing
-// its run() method falls off. It does its work and dies
-// Will act as an eventHandler for TextField most probably
-
-public class commandParser implements Command,consts,Runnable {
-
- String command ;
- MT_Bounded_Queue q_ ;
- NexusClientApplet applet_ ;
- // constructor
-
- public commandParser(MT_Bounded_Queue write_q,NexusClientApplet applet) {
- // create a reference to the write_q
- q_ = write_q ;
- // note the applet name
- applet_ = applet ;
-
- }
-
-
- public void execute(Object target, Event evt, Object what) {
- // Get the text which was entered there --
- command = new String((String) what) ;
- // run in a separate thread
- Thread main = new Thread(this);
- main.start();
- }
-
- // The parser etc. run here
- public synchronized void run() {
- String actual_command = new String();
- String data = new String();
- String data_len = new String();
- if(DEBUG) {
- System.out.println("commandParser thread running --- \n");
- }
-
- // Do the parsing first
- if(command.equalsIgnoreCase(LUSERS_STR)) {
- actual_command = new String("LUSERS") ;
- data = applet_.GetRoomName() ;
- data_len = new String(String.valueOf(data.length()));
- if(data.length() == 0)
- return ;
- }
-
- else if(command.equalsIgnoreCase(LROOMS_STR)) {
- actual_command = new String("LROOMS") ;
- data = new String("") ;
- data_len = new String("0") ;
- }
-
- String room = new String("ROOT");
-
- if(DEBUG) {
- System.out.println("The room is " + room + "\n");
- }
-
- /*
- StringBuffer databuffer = new StringBuffer();
-
- // Get the data
- while(t.hasMoreTokens()) {
- databuffer.append(t.nextToken());
- }
- String data = new String(databuffer);
- if(DEBUG) {
- System.out.println("The data is " + data + "\n");
- }
-
- // data length
- String data_len = String.valueOf(data.length());
- // Now make a packet
- */
-
- dataPacket pack = new dataPacket(NexusClientApplet.myName,room,actual_command,data_len,data);
- // enqueue it now
- q_.nq(pack);
-
- } // my job is over
-
-}
-// of class
-
diff --git a/java/apps/NexusII/src/connectionHandler.java b/java/apps/NexusII/src/connectionHandler.java
deleted file mode 100644
index 5e9d3823a68..00000000000
--- a/java/apps/NexusII/src/connectionHandler.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:07 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:05:30 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-// This class will handle the event generated when user presses "connect/dis
-// connect" button. It will maintain all the state associated with a
-// connection ;
-// In particular, it will create reader,writer and demux threads and stop
-// them when user pressed disconnect. It also sends the init and quit
-// packet to the server
-// -- Rajeev Bector 11/26/96
-
-// package NexusII.networking ;
-
-import awtCommand.* ;
-
-import java.net.* ;
-import java.awt.* ;
-import java.io.* ;
-import java.util.* ;
-import ACE.OS.*;
-import ACE.SOCK_SAP.*;
-
-public class connectionHandler implements Command,consts,Runnable {
-
- // The socket for reading and writing
- // private Socket nexusSocket;
- private SOCKConnector nexusConnector_ = new SOCKConnector();
- private SOCKStream nexusStream_ = new SOCKStream();
-
- // Threads which will do reading and writing from Socket
- private Thread readerThread ;
- private Thread writerThread ;
-
- // Threads which demuxes the data from Write Queue
- private Thread demuxThread;
-
- // The socket
- // private Socket nexusSocket_ ;
-
- // Data Streams which flow the data out
- private DataInputStream is_ ;
- private DataOutputStream os_ ;
-
- // links to the outside world
- private MT_Bounded_Queue read_q_ ;
- private MT_Bounded_Queue write_q_ ;
-
- Integer port_ ;
- String host_ ;
-
- NexusClientApplet applet_ ;
- // Constructor
- public connectionHandler(String host,Integer port,NexusClientApplet applet) {
- host_ = host ;
- port_ = port ;
- applet_ = applet ;
- } // of constructor
-
- // This will be called when the "connect/disconnet" button is pressed
-
- public void execute(Object target, Event evt, Object what) {
- // run in a separate thread
- new Thread(this).start();
- }
-
- public synchronized void run() {
-
- // If not connected -- then connect
- if(!applet_.connected) {
-
- // Initialize the queues now
- read_q_ = new MT_Bounded_Queue(QUEUE_SIZE);
- write_q_ = new MT_Bounded_Queue(QUEUE_SIZE);
-
- // Try to connect to the server now
- // nexusSocket_ = new Socket(host_,port_.intValue());
- try {
- nexusConnector_.connect(nexusStream_, host_, port_.intValue());
- }
- catch(SocketException s) { }
- catch(IOException i) { }
- // Attach Streams to read and write end os socket
- os_ = new DataOutputStream(nexusStream_.outputStream());
- is_ = new DataInputStream(nexusStream_.inputStream());
-
- // do something now
-
- // create and start the socket reader first
- readerThread = new socketReaderThread(read_q_,is_);
- readerThread.start();
-
- // now create the writer also -- subclass of consumer
- writerThread = new socketWriterThread(write_q_,os_);
- writerThread.start();
- // Have to send the init packet to the server
- sayHelloToServer();
-
-
- // Do all the graphics needed and also init the join handlers etc.
- applet_.OnConnect();
-
- // make sure that when demux is created -- joinHandler is there ... !!
-
- // Create the demux here -- he'll spawn off the rooms
- demuxThread = new nexusDemuxThread(read_q_,applet_.Mapper());
- demuxThread.start();
-
- } // of if !connected
-
- // if connected already then I have to disconnect --- have to
- // write code for this
- else {
-
- // first leave all the rooms
- for(Enumeration e = applet_.Mapper().keys(); e.hasMoreElements();) {
- String name = (String) e.nextElement() ;
- applet_.SetRoomName(name);
- applet_.nexusJoiner.execute(null,null,LEAVE_STR);
- }
- // send a quit packet to the server
- sayByeToServer();
-
- // Have to send a leave for all the rooms and leave all the rooms
-
- // stop the running threads
- readerThread.stop();
- demuxThread.stop();
-
- // Again meddle with graphics
- applet_.OnDisconnect();
- return ;
- }
- } // of run
-
- // This method returns the underlying socket descriptor
- public Socket handle() {
- return nexusStream_.socket();
- }
-
- public DataInputStream getinStream() {
- return is_ ;
- }
-
- public DataOutputStream getoutStream() {
- return os_ ;
- }
-
- public MT_Bounded_Queue reader_q() {
- return read_q_ ;
- }
-
-
- public MT_Bounded_Queue writer_q() {
- if(write_q_ == null)
- System.out.println("Sending a null write_q");
- return write_q_ ;
- }
-
- // This method will compose a hello packet and send it off -- cannot run
- // this in a separate thread. Has to send this first surely to our TCP
- // Connection
-
- public void sayHelloToServer() {
- // hello doesnt have any body
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH] ;
- String clientID = new String(NexusClientApplet.myName);
- String roomID = new String("ROOT");
- String contentType = new String("INIT");
- String contentLength = new String("0");
-
- // Make a proper packet out of it
- dataPacket initPacket = new dataPacket(clientID,roomID,contentType,contentLength);
-
- // enqueue that packet for socketWriter to read
- write_q_.nq(initPacket);
-
- }
-
- // This method send a Quit command to the server -- to say that it is
- // pushing off
- public void sayByeToServer() {
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH] ;
- String clientID = new String(NexusClientApplet.myName);
- String roomID = new String("null");
- String contentType = new String("QUIT");
- String contentLength = new String("0");
-
- // Make a proper packet out of it
- dataPacket quitPacket = new dataPacket(clientID,roomID,contentType,contentLength);
-
- // enqueue that packet for socketWriter to read
- write_q_.nq(quitPacket);
- } // of sayByeToServer
-
-} // of class
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java/apps/NexusII/src/consts.java b/java/apps/NexusII/src/consts.java
deleted file mode 100644
index 304ec41a41e..00000000000
--- a/java/apps/NexusII/src/consts.java
+++ /dev/null
@@ -1,40 +0,0 @@
-// package NexusII.client ;
-
-// An interface for all the public constants shared by clientApplet
-// All classes that need to access constants will implement this
-
-public interface consts {
- // Length of each field in the header
- public static final int FIELD_LENGTH = 32 ;
-
- // Total length of header
- public static final int PACKET_HEADER_LENGTH = 128;
-
- // Offset where we can find the data length
- public static final int DATA_LEN_OFFSET = 96;
-
- // Size of Queues where reader and writer work
- public static final int QUEUE_SIZE = 20 ;
-
- // Separator used by tokens in the packet
- public static final String SEPARATOR = " " ;
-
- // End of message
- public static final String END_OF_DATA = "\n" ;
-
- // Useful for debugging -- set to false for release version (demo) -- Aravind
- public static final boolean DEBUG = false;
-
- // Size of hash tables
- public static final int HASH_SIZE = 16 ;
-
- public static final String JOIN_STR = "Join" ;
- public static final String LEAVE_STR = "Leave" ;
- public static final String LUSERS_STR = "List Users" ;
- public static final String LROOMS_STR = "List Rooms" ;
-
- public static final int SERVER_PORT = 42429 ;
- public static final String NEXUS_LOGO = "Nexus_Logo.gif";
-}
-
-
diff --git a/java/apps/NexusII/src/dataPacket.java b/java/apps/NexusII/src/dataPacket.java
deleted file mode 100644
index 1bd2dfeb6ab..00000000000
--- a/java/apps/NexusII/src/dataPacket.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:08 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.2 1996/12/07 06:27:38 rajeev
-# yaah paranoid backup ...
-#
-# Revision 1.1 1996/12/06 18:23:45 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:07:53 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-// This class encapsulates a dataPacket
-// Will encapsulate the byteStream as a characterStream into a single thing
-// no packets for now
-// package NexusII.networking ;
-
-//import NexusII.client.* ;
-
-public class dataPacket implements consts, Cloneable{
-
- private String clientName ;
- private String roomName ;
- private String contentType ;
- private String contentLength ;
- private String content ;
-
- // constructor -- will create the data packet
- public dataPacket(byte[] header, byte[] body) {
- int len = FIELD_LENGTH ;
- clientName = new String(header,0,0,len);
- roomName = new String(header,0,1*len,len);
- contentType = new String(header,0,2*len,len);
- contentLength = new String(header,0,3*len,len);
- content = new String(body,0);
- if(DEBUG)
- System.out.println("datapacket: Constructed packet with header " + header + " and body " + body);
- }
-
- // another constructor for length 0 packets
- public dataPacket(String client, String room, String type,String len)
- {
- clientName = new String(client);
- roomName = new String(room);
- contentType = new String(type);
- contentLength = new String(len);
- content = new String();
- }
-
- // another one for some data also
- public dataPacket(String client, String room, String type,String len,String data)
- {
- this(client,room,type,len);
- content = new String(data);
- }
-
- // return the data in bytized header and body
- public void bytize(byte[] header, byte[] body)
- {
- // clear the header and body -- fill them with whitespace
- String white_space = new String(" ");
-
- if(DEBUG) {
- System.out.println("dataPacket: length is " + new Integer(contentLength.trim()).intValue() + "\n");
- }
-
- int len = FIELD_LENGTH ;
- // copy the header
- clientName.getBytes(0,clientName.length(),header,0);
- roomName.getBytes(0,roomName.length(),header,len*1);
- contentType.getBytes(0,contentType.length(),header,len*2);
- contentLength.getBytes(0,contentLength.length(),header,len*3);
-
- int body_len = (new Integer(contentLength.trim())).intValue();
- // copy the body also
- content.getBytes(0,body_len,body,0);
- }
-
- public int contentLength() {
- return new Integer(contentLength.trim()).intValue();
- }
-
- // Returns the destination for the current packet
- public String destination(){
- return roomName.trim() ;
- }
-
- public String contentType() {
- return contentType.trim() ;
- }
-
-
- public String content() {
- return content.trim() ;
- }
-
- public String clientName() {
- return clientName.trim() ;
- }
-
-}
-// of class datapacket
-
-
-
-
-
-
-
-
diff --git a/java/apps/NexusII/src/joinHandler.java b/java/apps/NexusII/src/joinHandler.java
deleted file mode 100644
index 3ff071c26ed..00000000000
--- a/java/apps/NexusII/src/joinHandler.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:09 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:06:22 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-
-// This class will handle the event generated when user presses "join/leave"
-// button. It will maintain all the state associated with all the rooms
-// It'll also create and maintain the rooms
-// -- Rajeev Bector 11/26/96
-
-// package NexusII.networking ;
-
-// This is a SINGLETON
-
-
-import java.net.* ;
-import java.util.* ;
-import java.awt.* ;
-import java.io.* ;
-
-
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-//import NexusII.networking.* ;
-
-import awtCommand.* ;
-
-public class joinHandler implements Command,consts {
- MT_Bounded_Queue write_q_ ;
- Hashtable name_to_q_ ;
- Hashtable name_to_handler_ ;
- NexusClientApplet applet_ ;
-
- // This will be called when the "join/leave" button is pressed
- public joinHandler(MT_Bounded_Queue writer_q,NexusClientApplet applet) {
- write_q_ = writer_q ;
- applet_ = applet ;
- // init. the Hashtables
- name_to_q_ = new Hashtable(HASH_SIZE);
- name_to_handler_ = new Hashtable(HASH_SIZE);
-
- }
-
- public Hashtable Mapper() {
- return name_to_q_ ;
- }
-
- public void execute(Object target, Event evt, Object what) {
-
- String roomName = applet_.GetRoomName() ;
- if(roomName.length()==0) {
- return ;
- }
-
- // if it is the join button
- if(((String)what).equalsIgnoreCase(JOIN_STR)) {
- //if already joined -- return
- if(name_to_q_.get(roomName) != null)
- return ;
-
- // room doesnt exist
- // Just in case the room name isn't listed
- applet_.AddRoomName(roomName);
- // create a new queue for the room to use
-
- MT_Bounded_Queue q_ = new MT_Bounded_Queue(QUEUE_SIZE);
- if(DEBUG) {
- System.out.println("joinHandler: inserted the queue in hash ");
- }
- name_to_q_.put(roomName,q_);
- roomHandler handler = new roomHandler(roomName,q_,write_q_,applet_);
- name_to_handler_.put(roomName,handler);
-
- // send a request to the server
- sayJoinToServer(roomName);
- // sendTestPacket(roomName,"URL","http://cumbia.cs.wustl.edu:4242/~sumedh/NexusII/NexusII.gif",q_);
- } // of join
-
- else {
- // its a "leave packet"
- if(name_to_q_.get(roomName) == null)
- return ;
- // remove the entry from the queue
- name_to_q_.remove(roomName);
-
- roomHandler handle = (roomHandler) name_to_handler_.get(roomName);
- if(DEBUG)
- System.out.println("joinHandler:Stopiing the room thread" + roomName);
- handle.mystop();
- // handle = null ;
-
- // remove the entry from the queue
- name_to_handler_.remove(roomName);
- sayLeaveToServer(roomName);
- } // of else
- } // of execute
-
- private void sayJoinToServer(String roomName) {
- //if (DEBUG)
- // System.out.println("In the say J to server...");
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH] ;
- String clientID = new String(NexusClientApplet.myName);
- String roomID = new String("ROOT");
- String contentType = new String("JOIN");
- String contentLength = String.valueOf(roomName.length());
- String content = new String(roomName);
- // Make a proper packet out of it
- dataPacket joinPacket = new dataPacket(clientID,roomID,contentType,contentLength,content);
-
- // enqueue that packet for socketWriter to read
- write_q_.nq(joinPacket);
- }
-
- private void sayLeaveToServer(String roomName) {
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH] ;
- String clientID = new String(NexusClientApplet.myName);
- String roomID = new String("ROOT");
- String contentType = new String("LEAVE");
- String contentLength = new String(Integer.toString(roomName.length()));
- String content = new String(roomName);
-
- // Make a proper packet out of it
- dataPacket leavePacket = new dataPacket(clientID,roomID,contentType,contentLength,content);
-
- // enqueue that packet for socketWriter to read
- write_q_.nq(leavePacket);
- }
-
-
- public void sendTestPacket(String roomName,String type,String content,MT_Bounded_Queue readq) {
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH] ;
- String clientID = new String(NexusClientApplet.myName);
- String contentLength = new String(Integer.toString(content.length()));
-
-
- // Make a proper packet out of it
- dataPacket testPacket = new dataPacket(clientID,roomName,type,contentLength,content);
-
- // enqueue that packet for socketWriter to read
- readq.nq(testPacket);
- }
-
-
-}
-
-// of class
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java/apps/NexusII/src/makefile b/java/apps/NexusII/src/makefile
deleted file mode 100644
index c3cff521511..00000000000
--- a/java/apps/NexusII/src/makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-all: client server
-
-client: ../classes/NexusClientApplet.class
-
-../classes/NexusClientApplet.class:
- javac -d ../classes -depend -g NexusClientApplet.java
-
-server: ../classes/NexusIIserver.class
-
-../classes/NexusIIserver.class:
- javac -d ../classes -depend -g NexusIIserver.java
-
-clean:
- rm -f ../classes/*.class *~
-
diff --git a/java/apps/NexusII/src/nexusDemuxThread.java b/java/apps/NexusII/src/nexusDemuxThread.java
deleted file mode 100644
index 96d0fdd06e1..00000000000
--- a/java/apps/NexusII/src/nexusDemuxThread.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:10 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.2 1996/12/05 05:39:47 sumedh
-# ok
-#
-# Revision 1.1 1996/12/02 06:08:20 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-
-// Will take the packets from the input queue
-// Parse the packet
-// Call the room handler thread which Aravind will provide
-
-// Mapper object is the one which returns the room_q reference if you pass
-// it the room number. Aravind has to implement this object called roomMapper
-// which has an instance called mapper in the Applet context. This will be
-// referred by nexusDemuxThread whenever it has anything to put in the room_q
-
-// package NexusII.networking ;
-
-//import NexusII.util.* ;
-//import NexusII.client.* ;
-
-import java.util.* ;
-
-public class nexusDemuxThread extends Thread implements consts {
- MT_Bounded_Queue q_ ;
- dataPacket packet ;
- Hashtable mapper_ ;
-
- // constructor
- public nexusDemuxThread(MT_Bounded_Queue read_q,Hashtable mapper) {
- q_ = read_q ;
- mapper_ = mapper ;
- }
-
- public void run() {
- // run till infinity
- for(;;) {
- if(DEBUG) {
- System.out.println("Demux running ---- ");
- }
- // take out packets from the queue
- // parse to find out which room they belong to
- packet = ((dataPacket)q_.dq());
- if(DEBUG) {
- System.out.println("Demux got something ---- ");
- }
-
- String roomName = packet.destination().trim();
- if(DEBUG) {
- System.out.println("demux: destination is : " + roomName);
- }
- if(DEBUG) {
- System.out.println("Hashtable size is " + new Integer(mapper_.size()));
- }
- // Get a reference to which queue to put it in
- MT_Bounded_Queue room_q = (MT_Bounded_Queue)mapper_.get(roomName);
-
- // nq the packet on the room q
- if(room_q != null) {
- room_q.nq(packet);
- System.out.println("deMux: I have enqueued it successfully");
- }
- else
- {
- System.out.println("demux: room_q was null: i couldnt do much");
- }
- }
- }
- // of run
-}
-// of class
-
-
-
-
-
-// 11/24/96 -- Rajeev Bector
diff --git a/java/apps/NexusII/src/roomHandler.java b/java/apps/NexusII/src/roomHandler.java
deleted file mode 100644
index bd125631b74..00000000000
--- a/java/apps/NexusII/src/roomHandler.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:11 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.4 1996/12/07 06:22:49 rajeev
-# taking a backup !
-#
-# Revision 1.3 1996/12/06 06:20:07 rajeev
-# Changes to include leave handler
-#
-# Revision 1.2 1996/12/06 04:49:44 rajeev
-# working now hopefully !
-#
-# Revision 1.1 1996/12/06 03:44:32 rajeev
-# Initial revision
-#
-
-*/
-
-// per room
-import java.awt.* ;
-import awtCommand.* ;
-import java.io.* ;
-import java.net.* ;
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-//import NexusII.networking.*;
-
-public class roomHandler implements Runnable,consts{
-
- String roomName_ ;
- MT_Bounded_Queue read_q_ ;
- MT_Bounded_Queue write_q_ ;
- RoomFrame rf_;
- Thread mainThread ;
- NexusClientApplet applet_ ;
-
- // I dont know what to do currently
- public roomHandler(String roomName, MT_Bounded_Queue reader_q,MT_Bounded_Queue writer_q,NexusClientApplet applet) {
- roomName_ = roomName ;
- read_q_ = reader_q ;
- write_q_ = writer_q ;
- applet_ = applet ;
- rf_ = new RoomFrame(write_q_,applet_,roomName_);
- // whenever this frame gets the mouse focus, handler will be called
- FrameHandler fh_ = new FrameHandler(applet_);
- rf_.setGotFocusCommand(fh_);
- mainThread = new Thread(this);
- mainThread.start();
- }
-
-
- public void mystop() {
- // dispose the graphics part here
- if(DEBUG)
- System.out.println("Roomhandlers stop called \n");
- rf_.hide();
- rf_.dispose();
- // no longer need the roomframe
- rf_ = null ;
- mainThread.stop();
- }
-
- public void run() {
- if(DEBUG) {
- System.out.println("Room receiver running ---- ");
- }
- while(Thread.currentThread() == mainThread) {
- // get the data packet
- dataPacket packet = (dataPacket)(read_q_.dq()) ;
- if(DEBUG)
- System.out.println("Room - I got something\n");
-
- // if the packet is of text type -- display it
- if(packet.contentType().trim().equalsIgnoreCase("TEXT")) {
- rf_.addText(packet.content());
- }
- // if the packet is a url address -- pull the image across
- // this url has to be an image as of now
- if(packet.contentType().equalsIgnoreCase("URL")) {
- Image im = null ;
- try {
- im = applet_.getImage(new URL(packet.content()));
- } catch (MalformedURLException i) {
- // nothing as of now
- }
- // display the image
- rf_.updateImage(im);
-
- }
-
- if (DEBUG)
- System.out.println("roomhandler" + roomName_ + " got data");
- }
- }
-
- public String toString() {
- return roomName_ ;
- }
-
-} // of class roomHandler
-
-// is executed when the room frame gets mouse focus
-
-class FrameHandler implements Command {
- NexusClientApplet applet_ ;
- public FrameHandler(NexusClientApplet applet) {
- applet_ = applet ;
- }
-
- public void execute(Object target, Event evt, Object what) {
- if(target instanceof Frame) {
- applet_.SetRoomName(((RoomFrame)target).getTitle());
- }
- }
-}
-
diff --git a/java/apps/NexusII/src/socketReaderThread.java b/java/apps/NexusII/src/socketReaderThread.java
deleted file mode 100644
index 35679c504b4..00000000000
--- a/java/apps/NexusII/src/socketReaderThread.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:11 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.3 1996/12/03 01:35:37 rajeev
-# fixed a big bug with respect to trim()
-#
-# Revision 1.2 1996/12/03 01:01:27 rajeev
-# // fixed the bug at line 76
-#
-# Revision 1.1 1996/12/02 06:08:56 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-// The socketReaderThread is like a Producer who reads from the socket and
-// nqs it onto the queue. Thats it ... Big Deal. huh !
-
-// This threads task is
-// 1. Take things from SocketBuffer.
-// 2. Ensure that Full Packets are read
-// 3. Put the packet onto the queue
-
-//package NexusII.networking ;
-
-// get hold of java classes
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-
-import java.io.* ;
-
-
-public class socketReaderThread extends Producer implements Runnable,consts
-{
- DataInputStream is_ ;
-
- // new constructor
- // Pass the queue and socketid to the constructor
-
- public socketReaderThread(MT_Bounded_Queue q, DataInputStream is) {
- // call the super constructor
- super(q);
- is_ = is ;
- }
-
- // This will just override the run method and thats it
- // I want to have my own run !
-
- public void run() {
- // run indefinitely -- i am a daemon anyway
- if(DEBUG) {
- System.out.println("--- This is socketReaderThread --- \n");
- }
-
- for(;;) {
-
- // read header bytes from stream
- int field_len = FIELD_LENGTH ;
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH];
- try {
- is_.readFully(packetHeader,0,PACKET_HEADER_LENGTH);
- }
- catch (IOException e) {
- // do something here
- System.out.println("socketReader: I/O exception in read: I am quitting");
- // what to do here -- right now quit
- return ;
- }
- if(DEBUG){
- System.out.println("socketReader read:" + new String(packetHeader,0));
- }
-
- // take out the length field from this
- String length = new String(packetHeader,0,DATA_LEN_OFFSET,field_len);
-
- // Read this much more from the socket
- if(DEBUG) {
- System.out.println("The length of packet is " + length);
- }
-
- Integer Test = new Integer(length.trim());
- int len = Test.intValue();
- if(DEBUG) {
- System.out.println("srt: attempting to read " + Test + " bytes ");
- }
-
- byte[] packetBody = new byte[len] ;
- try {
- if(len != 0)
- is_.readFully(packetBody,0,len);
- }
- catch (IOException e) {
- // do something here
- System.out.println("socketReader: I/O exception in read: I am quitting");
- // what to do here -- right now quit
- return ;
- }
-
- // The header and the body are there now -- so make a packet
- dataPacket packet = new dataPacket(packetHeader,packetBody);
- if(DEBUG)
- System.out.println("srt: Now nq'ing item body " + packet.content() );
- queue_.nq(packet);
- if(DEBUG)
- System.out.println("srt: Done nq'ing..");
-
- // go back to reading the socket now
- }
- // of for(;;)
- }
- // of method run
-}
diff --git a/java/apps/NexusII/src/socketWriterThread.java b/java/apps/NexusII/src/socketWriterThread.java
deleted file mode 100644
index 395449b6a53..00000000000
--- a/java/apps/NexusII/src/socketWriterThread.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:12 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:09:22 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-// The socketWriterThread is like a Consumer who reads from the write_q and
-// puts it onto the socket. Thats it ... Big Deal. huh !
-
-// This threads task is
-// 1. Write things to SocketBuffer.
-// 2. Ensure that Full Packets are sent
-// 3. Read the packet off the queue
-
-//package NexusII.networking ;
-
-// get hold of java classes
-
-import java.io.* ;
-
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-
-public class socketWriterThread extends Consumer implements Runnable,consts
-{
- DataOutputStream os_ ;
-
- // new constructor
- // Pass the queue and outstream to the constructor
-
- public socketWriterThread(MT_Bounded_Queue q, DataOutputStream os) {
- // call the super constructor
- super(q);
- os_ = os ;
- }
-
- // This will just override the run method and thats it
- // I want to have my own run !
-
- public void run() {
- // run indefinitely -- i am a daemon anyway
- if(DEBUG) {
- System.out.println("--- This is socketWriterThread --- \n");
- }
- boolean bye_sent = false ;
- while(!bye_sent) {
-
- // read the packet from the queue
- dataPacket packet = (dataPacket) queue_.dq();
- if(DEBUG){
- System.out.println("socketWriterThread: I got something -- \n");
- }
-
- // read length bytes from packet
- int len = packet.contentLength() ;
- if(DEBUG) {
- System.out.println("socketWriterThread: length is " + new Integer(len));
- }
-
-
- int field_len = FIELD_LENGTH ;
-
- // Allocate storage for holding the fields
-
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH];
- byte[] packetBody = new byte[len] ;
-
- // Fill them
- packet.bytize(packetHeader,packetBody);
-
- // put it on the wire now --
-
- try {
- os_.write(packetHeader,0,PACKET_HEADER_LENGTH);
- }
- catch (IOException e) {
- // do something here
- }
- if(DEBUG){
- System.out.println("I wrote:" + new String(packetHeader,0));
- }
-
- try {
- os_.write(packetBody,0,len);
- }
- catch (IOException e) {
- // do something here
- }
- if(DEBUG){
- System.out.println("I wrote:" + new String(packetBody,0));
- }
- // this is to handle if the user presses disconnect without leaving the
- // room
- if(packet.contentType().equalsIgnoreCase("QUIT"))
- bye_sent = true ;
- // go back to reading the queue now
- }
- // of for(;;)
- }
- // of method run
-
-}
diff --git a/java/apps/NexusII/src/url_to_url.java b/java/apps/NexusII/src/url_to_url.java
deleted file mode 100644
index 0fe08ab6db3..00000000000
--- a/java/apps/NexusII/src/url_to_url.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// This method takes in a url and a prefix name and pulls that url across the
-// network, stores it in a local file named prefix
-
-// for now it assumes that the url is an image only !
-
-import java.net.* ;
-import java.io.* ;
-import java.awt.* ;
-public class url_to_url {
- Image im ;
-
- public url_to_url(URL url,String prefix) {
- try {
- im = (Image)url.getContent();
- } catch (IOException i) {}
- String www_path = System.getProperty("www-path");
- String home_dir = System.getProperty("user.home");
- String dir = home_dir + www_path ;
- System.out.println("web dir is this : " + dir);
-
- }
-
- public static void main(String[] argv) {
- URL test = null ;
- try {
- test = new URL("http://www.cs.wustl.edu/~rajeev/images/sand.jpg");
- } catch ( MalformedURLException e) {}
-
- url_to_url t = new url_to_url(test,"root") ;
-
- }
-
-}
diff --git a/java/apps/NexusII/start b/java/apps/NexusII/start
deleted file mode 100755
index c699c96da60..00000000000
--- a/java/apps/NexusII/start
+++ /dev/null
@@ -1,27 +0,0 @@
-#! /bin/sh
-
-## This is an example script to launch the server.
-
-# the mywebaddress variable should point to a URL which is world-readable
-# the mywebdir variable should point to the actual pathname of the URL
-# which is specified by the mywebaddress variable
-# The server needs to have write access to the mywebdir directory.
-# Thus, the server saves images into the "mywebdir", and clients
-# can access them via the "mywebaddress" URL.
-
-# the 222222 number is the port number on which the server is to be launched
-# the same port number should appear in the html document containing
-# the client applet (see start.html for an example)
-
-# while running the server, the ./classes should be part of the CLASSPATH.
-# while running the client, the client classes as well as the awtCommand
-# toolkit should be world-readable. (The awtcommand toolkit is included
-# in this toolkit, under the classes directory.)
-
-
-umask 022
-java -Dmywebaddress=http://cumbia.cs.wustl.edu/NexusII/tmp/ -Dmywebdir=/project/cumbia/sumedh/web/apache/root/NexusII/tmp/ NexusIIserver 222222
-
-
-
-
diff --git a/java/apps/NexusII/start.html b/java/apps/NexusII/start.html
deleted file mode 100644
index e80bdd13d4b..00000000000
--- a/java/apps/NexusII/start.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<!-- $Id$ -->
-<applet code=NexusClientApplet.class width=550 height=500>
- <param name=serverport value="222222">
-</applet>
diff --git a/java/classes/README.TXT b/java/classes/README.TXT
deleted file mode 100644
index ba771e6615d..00000000000
--- a/java/classes/README.TXT
+++ /dev/null
@@ -1,2 +0,0 @@
-The .class files are not included in the release archive. When properly
-setup and built, a JACE subdirectory will be here.
diff --git a/java/doc/images/GridBagEx.gif b/java/doc/images/GridBagEx.gif
deleted file mode 100644
index 16c326d88ca..00000000000
--- a/java/doc/images/GridBagEx.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/OpenBookIcon.gif b/java/doc/images/OpenBookIcon.gif
deleted file mode 100644
index 86384f7733f..00000000000
--- a/java/doc/images/OpenBookIcon.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/blue-ball-small.gif b/java/doc/images/blue-ball-small.gif
deleted file mode 100644
index d4c5cde5b00..00000000000
--- a/java/doc/images/blue-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/blue-ball.gif b/java/doc/images/blue-ball.gif
deleted file mode 100644
index edc29b786ce..00000000000
--- a/java/doc/images/blue-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/class-index.gif b/java/doc/images/class-index.gif
deleted file mode 100644
index 7f276bcb242..00000000000
--- a/java/doc/images/class-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/constructor-index.gif b/java/doc/images/constructor-index.gif
deleted file mode 100644
index 435cac42386..00000000000
--- a/java/doc/images/constructor-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/constructors.gif b/java/doc/images/constructors.gif
deleted file mode 100644
index d1a6ae507ca..00000000000
--- a/java/doc/images/constructors.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/cyan-ball-small.gif b/java/doc/images/cyan-ball-small.gif
deleted file mode 100644
index 7f74357443a..00000000000
--- a/java/doc/images/cyan-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/cyan-ball.gif b/java/doc/images/cyan-ball.gif
deleted file mode 100644
index 97ca1f2b6e3..00000000000
--- a/java/doc/images/cyan-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/error-index.gif b/java/doc/images/error-index.gif
deleted file mode 100644
index 22835ff8c64..00000000000
--- a/java/doc/images/error-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/exception-index.gif b/java/doc/images/exception-index.gif
deleted file mode 100644
index e3830d9c52e..00000000000
--- a/java/doc/images/exception-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/green-ball-small.gif b/java/doc/images/green-ball-small.gif
deleted file mode 100644
index 17fea5b32bb..00000000000
--- a/java/doc/images/green-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/green-ball.gif b/java/doc/images/green-ball.gif
deleted file mode 100644
index 71e1b2ec2db..00000000000
--- a/java/doc/images/green-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/interface-index.gif b/java/doc/images/interface-index.gif
deleted file mode 100644
index bf93dda9e35..00000000000
--- a/java/doc/images/interface-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/magenta-ball-small.gif b/java/doc/images/magenta-ball-small.gif
deleted file mode 100644
index bd0584b3c67..00000000000
--- a/java/doc/images/magenta-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/magenta-ball.gif b/java/doc/images/magenta-ball.gif
deleted file mode 100644
index 5da03b84d2b..00000000000
--- a/java/doc/images/magenta-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/method-index.gif b/java/doc/images/method-index.gif
deleted file mode 100644
index a05e7051160..00000000000
--- a/java/doc/images/method-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/methods.gif b/java/doc/images/methods.gif
deleted file mode 100644
index 949e01b8a33..00000000000
--- a/java/doc/images/methods.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/package-index.gif b/java/doc/images/package-index.gif
deleted file mode 100644
index f894d4210d7..00000000000
--- a/java/doc/images/package-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/red-ball-small.gif b/java/doc/images/red-ball-small.gif
deleted file mode 100644
index f6b3c372ca1..00000000000
--- a/java/doc/images/red-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/red-ball.gif b/java/doc/images/red-ball.gif
deleted file mode 100644
index dca92960148..00000000000
--- a/java/doc/images/red-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/variable-index.gif b/java/doc/images/variable-index.gif
deleted file mode 100644
index 65cc029e722..00000000000
--- a/java/doc/images/variable-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/variables.gif b/java/doc/images/variables.gif
deleted file mode 100644
index e8a735399a6..00000000000
--- a/java/doc/images/variables.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/yellow-ball-small.gif b/java/doc/images/yellow-ball-small.gif
deleted file mode 100644
index 8e5f57cdfcb..00000000000
--- a/java/doc/images/yellow-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/yellow-ball.gif b/java/doc/images/yellow-ball.gif
deleted file mode 100644
index 2b8c0bb3d6b..00000000000
--- a/java/doc/images/yellow-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/examples/Logger/README b/java/examples/Logger/README
deleted file mode 100644
index 1da7dbcbb19..00000000000
--- a/java/examples/Logger/README
+++ /dev/null
@@ -1,29 +0,0 @@
-This directory contains a simple client/server Java implementation of the
-distributed logging server described in several papers in the C++
-Report (which can be obtained via the following WWW URLs:
-http://www.cs.wustl.edu/~schmidt/{Reactor1-93.ps.gz,Reactor2-93.ps.gz}).
-
-The example consists of the following two directories:
-
- . client
- NOT YET CONVERTED
- This program talks directly to the server logging
- daemon. The server daemon must be started before you
- can run this test.
-
- . simple-server
-
- This program runs a simple
- implementation of the
- distributed logging server daemon. It also contains
- code for a simple client as well.
-
- . Acceptor-server
- NOT YET CONVERTED
- This program runs templated, Acceptor-based
- single-threaded Reactive implementation of the
- distributed logging server daemon.
-
-The server implemented in "simple" is completely compatible with the
-client defined in the C++ version of ACE.
-
diff --git a/java/examples/Logger/simple-server/LogRecord.java b/java/examples/Logger/simple-server/LogRecord.java
deleted file mode 100644
index e29ed6e32b9..00000000000
--- a/java/examples/Logger/simple-server/LogRecord.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * Class used to communicate logging information; compatible with
- * the C++ ACE ACE_Log_Record class.
- *
- * @author Chris Cleeland
- */
-
-//package ACE.SimpleLogger;
-
-import java.util.Date;
-import java.io.DataOutputStream;
-import java.io.DataInputStream;
-import java.io.PrintStream;
-import java.io.IOException;
-
-public class LogRecord
-{
- final public static int MAXLOGMSGLEN = 4 * 1024;
-
- private int type_;
- private int length_;
- private int timeStamp_;
- private int pid_;
- private byte[] msgData_ = new byte[MAXLOGMSGLEN];
- private final static int numIntMembers = 4;
- private final static int sizeofIntInBytes = 4;
-
- /**
- * Create a default instance.
- */
- public LogRecord()
- {
- this(0, (int) ((new Date()).getTime()/1000), 0);
- }
-
- /**
- * Create a LogRecord. This is the designated initializer.
- * @param priority a numeric specification of the priority (ascending)
- * @param time_stamp time attached to the log entry in Unix <pre>time_t</pre> format
- * @param pid the process ID; not currently used
- */
- public LogRecord(int priority,
- int timeStamp,
- int pid)
- {
- type(priority);
- timeStamp(timeStamp);
- length(0);
- pid(pid);
- }
-
- /**
- * Conversion to string. Only includes the <pre>msgData_</pre> member.
- */
- public String toString()
- {
- return new String(msgData_, 0);
- }
-
- /**
- * Place a textual representation of the record on a PrintStream.
- * @param hostname name of the host generating this record
- * @param verbose if <b>true</b>, print information in the form, (give example)
- * @param ps A PrintStream instance to which the output should go.
- * @see PrintStream,String
- */
- public void print(String hostname,
- boolean verbose,
- PrintStream ps)
- {
- String toprint;
- if (verbose)
- {
- long cur = (long)timeStamp() * (long)1000;
- Date now = new Date(cur);
-
- /* 01234567890123456789012345 */
- /* Wed Oct 18 14:25:36 1989n0 */
- toprint = now.toString().substring(4) + "@"
- + hostname + "@" + pid_ + "@" + type_ + "@"
- + this.toString();
- }
- else
- {
- toprint = this.toString();
- }
- ps.println(toprint);
- }
-
- /**
- * Streaming methods
- */
- public void streamInFrom(DataInputStream dis) throws IOException
- {
- // Order here must match layout order in the C++ class.
- // This, of course, is VERY fragile, and ought not be used as
- // a model for anything except how NOT to do anything.
- type(dis.readInt());
- length(dis.readInt());
- timeStamp(dis.readInt());
- pid(dis.readInt());
-
- // Does readFully() allocate space for the buffer? Either
- // way, we won't have memory leaks :-)
- int dataLength = (int) (length_ - numIntMembers * sizeofIntInBytes);
- msgData_ = new byte[dataLength];
- dis.readFully(msgData_, 0, dataLength);
- }
-
- public void streamOutTo(DataOutputStream dos) throws IOException
- {
- dos.writeInt(type());
- dos.writeInt(length());
- dos.writeInt(timeStamp());
- dos.writeInt(pid());
- int dataLength = (int) (length_ - numIntMembers * sizeofIntInBytes);
- dos.write(msgData_, 0, dataLength);
- }
-
- /**
- * Accessor methods
- */
- public int type() { return type_; }
- public void type(int t) { type_ = t; }
-
- public int length() { return length_; }
- public void length(int l) { length_ = l; }
- private void setLen(int msgLen)
- { length(msgLen + numIntMembers * sizeofIntInBytes); }
-
- public int timeStamp() { return timeStamp_; }
- public void timeStamp(int t){ timeStamp_ = t; }
-
- public int pid() { return pid_; }
- public void pid(int p) { pid_ = p; }
-
- public byte[] msgData() { return msgData_; }
- public void msgData(byte[] m){ msgData_ = m; setLen(m.length); }
- public void msgData(String m)
- {
- m.getBytes(0, m.length(), msgData_, 0);
- setLen(m.length());
- }
-};
-
diff --git a/java/examples/Logger/simple-server/LoggerConstants.java b/java/examples/Logger/simple-server/LoggerConstants.java
deleted file mode 100644
index db62d2fff6e..00000000000
--- a/java/examples/Logger/simple-server/LoggerConstants.java
+++ /dev/null
@@ -1,7 +0,0 @@
-// package ACE.Logger;
-
-public class LoggerConstants
-{
- final public static int DEFAULT_SERVER_PORT = 4000;
- final public static String DEFAULT_SERVER_HOSTNAME = "localhost";
-}
diff --git a/java/examples/Logger/simple-server/LoggingAcceptor.java b/java/examples/Logger/simple-server/LoggingAcceptor.java
deleted file mode 100644
index 7925e3d5a15..00000000000
--- a/java/examples/Logger/simple-server/LoggingAcceptor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-//package ACE.SimpleLogger;
-
-import JACE.SOCK_SAP.*;
-import java.io.IOException;
-
-public class LoggingAcceptor extends Thread
-{
- private SOCKAcceptor peerAcceptor_;
-
- public LoggingAcceptor(int port) throws IOException
- {
- peerAcceptor_ = new SOCKAcceptor(port);
- this.setName("LoggingAcceptor");
- System.err.println("Waiting for connection on port " +
- port);
- }
-
- public void run()
- {
- try
- {
- while (true)
- {
- LoggingHandler handler = new LoggingHandler();
- peerAcceptor_.accept(handler.stream());
- handler.open();
- }
- }
- catch (IOException e)
- {
- }
- }
-};
diff --git a/java/examples/Logger/simple-server/LoggingClient.java b/java/examples/Logger/simple-server/LoggingClient.java
deleted file mode 100644
index e6ea986c011..00000000000
--- a/java/examples/Logger/simple-server/LoggingClient.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * Main class that acts as an example logging client.
- */
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import LogRecord;
-import LoggerConstants;
-
-public class LoggingClient implements Runnable
-{
- private String loggerHost_;
- private int port_;
- private int maxIter_;
- private static final int DEFAULT_ITERATIONS = 10;
-
- public static void main(String[] args)
- {
- // Really need to put code in here to parse options
- int iter;
- int port;
- String host;
-
- iter = (args.length > 0) ? Integer.parseInt(args[0])
- : DEFAULT_ITERATIONS;
- port = (args.length > 1) ? Integer.parseInt(args[1])
- : LoggerConstants.DEFAULT_SERVER_PORT;
- host = (args.length > 2) ? args[2]
- : LoggerConstants.DEFAULT_SERVER_HOSTNAME;
-
- LoggingClient lc = new LoggingClient(iter, port, host);
- lc.run();
- }
-
- public LoggingClient()
- {
-
- this(DEFAULT_ITERATIONS,
- LoggerConstants.DEFAULT_SERVER_PORT,
- LoggerConstants.DEFAULT_SERVER_HOSTNAME);
- }
-
- public LoggingClient(int iterations, int thePort, String theHost)
- {
- maxIter_ = iterations;
- port_ = thePort;
- loggerHost_ = theHost;
- }
-
- public void run()
- {
- SOCKStream logger = new SOCKStream();
- SOCKConnector connector = new SOCKConnector();
- // INETAddr addr = new INETAddr(port_, loggerHost_);
-
- LogRecord rec = new LogRecord(9, 2, 0);
-
- try
- {
- connector.connect(logger, loggerHost_, port_);
-
- int oneSecond = 1000;
- // Currently SOCKStream uses DataInputStream for its input stream,
- // and PrintStream for its output stream. It probably ought to use
- // DataOutputStream for the output stream for symmetry, or at least
- // provide a mechanism for changing the type of the filter stream
- // used (which might be better in the long run...give it the class
- // id).
- BufferedOutputStream bos = new BufferedOutputStream((OutputStream) logger.outputStream(), LogRecord.MAXLOGMSGLEN);
- DataOutputStream dos = new DataOutputStream(bos);
-
- for (int i = 0; i < maxIter_; i++)
- {
- // Need to overload LogRecord.msgData to take a String
- // argument so that it's easy to create instances with text
- // inside.
- rec.msgData("message = " + i);
- try
- {
- dos.writeInt(rec.length());
- rec.streamOutTo(dos);
- bos.flush();
- rec.print("localhost", true, System.err);
- }
- catch (IOException ex) { }
-
- try
- {
- Thread.sleep(oneSecond);
- }
- catch (InterruptedException ex) { }
- }
-
- try { logger.close(); } catch (IOException ex) { }
-
- }
- catch (SocketException ex)
- {
- System.err.println("socket exception: " + ex);
- }
- catch (IOException ex)
- {
- System.err.println("io exception: " + ex);
- }
-
- }
-}
diff --git a/java/examples/Logger/simple-server/LoggingHandler.java b/java/examples/Logger/simple-server/LoggingHandler.java
deleted file mode 100644
index aeffc991ac3..00000000000
--- a/java/examples/Logger/simple-server/LoggingHandler.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*************************************************
- *
- *@author Chris Cleeland
- *
- * What we really need to define is a run() (or whatever
- * the Thread class has as its method to execute code), and
- * have that do the usual delegated work of handle_input.
- * We also need to figure out the best place to close the
- * the socket, which probably ISN'T the finalizer.
- *
- *************************************************/
-
-//package ACE.SimpleLogger;
-
-import JACE.SOCK_SAP.*;
-import java.util.*;
-import java.io.*;
-
-// Should this extend or simply be handed to a Thread instance to
-// be run?
-public class LoggingHandler extends Thread
-{
- private SOCKStream cliStream_;
-
- /**
- * Create a default Logging Handler
- */
- public LoggingHandler()
- {
- this(new SOCKStream());
- }
-
- /**
- * Create a LoggingHandler with an existing stream
- */
- public LoggingHandler(SOCKStream aStream)
- {
- cliStream_ = aStream;
- setName();
- }
-
- private void setName()
- {
- int portnum = ((cliStream_.socket() == null)
- ? 0
- : cliStream_.socket().getLocalPort());
- this.setName("LoggingHandler#" + portnum);
- }
-
- /**
- * Start
- */
- public void open()
- {
- this.start();
- }
-
- /**
- */
- public SOCKStream stream()
- {
- return cliStream_;
- }
-
- /**
- * Handle logging events
- */
- public void run()
- {
- DataInputStream dis = (DataInputStream) cliStream_.inputStream();
-
- for (;;)
- {
- // Messages arrive in the following format:
- // o 4 byte length (network format)
- // o message, in ACE.LogRecord format
- //
- // Hey! We need exception catching in here too!
- try
- {
- // Reconstitute a log message from the wire
- LogRecord rec = new LogRecord();
-
- // We don't really need this, because
- // the object already knows how to
- // extract itself properly. However,
- // in order to interoperate with the
- // C++ version, this must be extracted.
- // Plus, it makes a convenient way to
- // check everything.
- int length = dis.readInt();
-
- rec.streamInFrom(dis);
-
- if (rec.length() == length)
- {
- rec.print(cliStream_.socket().getInetAddress().getHostName(),
- true, System.out);
- System.out.flush();
- }
- else
- {
- System.err.println("Logging_Handler: Length error receiving logging message\n");
- }
- }
- catch (EOFException eof)
- {
- System.err.println(Thread.currentThread().getName()
- + ": end-of-file condition found; terminating.");
- try { cliStream_.close(); } catch (IOException n) { }
- this.stop();
- }
- catch (IOException ioe)
- {
- System.err.println(Thread.currentThread().getName()
- + ": IOException received -- "
- + ioe.getMessage());
- }
- }
- }
-};
diff --git a/java/examples/Logger/simple-server/README b/java/examples/Logger/simple-server/README
deleted file mode 100644
index 90393c1aae8..00000000000
--- a/java/examples/Logger/simple-server/README
+++ /dev/null
@@ -1,25 +0,0 @@
-======
-BASICS
-======
-
-This directory contains both the client (LoggingClient.java) and the
-server (SimpleLogger.java). To compile, use GNU make with no specific
-target.
-
-To execute, use "java <classname>" where <classname> is from the
-following table:
-
- Application <classname>
- ===========================================
- client LoggingClient
- server SimpleLogger
-
-
-==============
-KNOWN PROBLEMS
-==============
-
-Interoperability between the C++ client and the Java server
-implementation is fine. Interoperability between the C++ server and
-the Java client seems to work right now. See the CVS information on
-LoggingClient.java for details.
diff --git a/java/examples/Logger/simple-server/SimpleLogger.java b/java/examples/Logger/simple-server/SimpleLogger.java
deleted file mode 100644
index f562689e283..00000000000
--- a/java/examples/Logger/simple-server/SimpleLogger.java
+++ /dev/null
@@ -1,44 +0,0 @@
-//package ACE.SimpleLogger;
-
-import java.io.IOException;
-
-class SimpleLogger implements Runnable
-{
- private LoggingAcceptor la;
- private int port;
-
- public static void main(String[] args)
- {
- SimpleLogger sl = new SimpleLogger();
- sl.run();
- }
-
- public SimpleLogger()
- {
- this(LoggerConstants.DEFAULT_SERVER_PORT);
- }
-
- public SimpleLogger(int port)
- {
- try
- {
- la = new LoggingAcceptor(port);
- }
- catch (IOException ioe)
- {
- System.err.println("SimpleLogger: unable to create LoggingAcceptor ("
- + ioe.getMessage() + ")");
- }
- }
-
- public void run()
- {
- la.run();
- try
- {
- la.join();
- }
- catch (InterruptedException ie)
- { }
- }
-};
diff --git a/java/gjt/Assert.java b/java/gjt/Assert.java
deleted file mode 100644
index b704be9ff3c..00000000000
--- a/java/gjt/Assert.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package gjt;
-
-/**
- * A simple assertion mechanism for asserting validity of
- * arguments.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- */
-public class Assert {
- static public void notFalse(boolean b)
- throws IllegalArgumentException {
- if(b == false)
- throw new IllegalArgumentException(
- "boolean expression false");
- }
- static public void notNull(Object obj)
- throws IllegalArgumentException {
- if(obj == null)
- throw new IllegalArgumentException("null argument");
- }
-
- static public void notFalse(boolean b, String s)
- throws IllegalArgumentException {
- if(b == false)
- throw new IllegalArgumentException(s);
- }
- static public void notNull(Object obj, String s)
- throws IllegalArgumentException {
- if(obj == null)
- throw new IllegalArgumentException(s);
- }
-}
diff --git a/java/gjt/Bargauge.java b/java/gjt/Bargauge.java
deleted file mode 100644
index 27be8afad7b..00000000000
--- a/java/gjt/Bargauge.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A bargauge which can be filled (wholly or partially) with a
- * client-specified color. Fill color is specified at
- * construction time; both fill color and fill percent may be
- * set after construction time.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ThreeDRectangle
- * @see gjt.test.BargaugeTest
- */
-public class Bargauge extends Canvas {
- private double percentFill = 0;
- private ThreeDRectangle border = new ThreeDRectangle(this);
- private Color fillColor;
-
- public Bargauge(Color fillColor) {
- setFillColor(fillColor);
- }
- public void setFillColor(Color fillColor) {
- this.fillColor = fillColor;
- }
- public void setFillPercent(double percentage) {
- Assert.notFalse(percentage >= 0 && percentage <= 100);
- percentFill = percentage;
- }
- public void resize(int w, int h) {
- reshape(location().x, location().y, w, h);
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x,y,w,h);
- border.resize(w,h);
- }
- public Dimension minimumSize() { return preferredSize(); }
-
- public Dimension preferredSize() {
- int w = border.getThickness() * 3;
- return new Dimension(w, w*4);
- }
- public void paint(Graphics g) {
- border.raise();
- border.paint();
- fill();
- }
- public void fill() {
- Graphics g = getGraphics();
-
- if((g != null) && (percentFill > 0)) {
- Rectangle b = border.getInnerBounds();
- int fillw = b.width;
- int fillh = b.height;
-
- if(b.width > b.height) fillw *= percentFill/100;
- else fillh *= percentFill/100;
-
- g.setColor(fillColor);
- border.clearInterior();
-
- if(b.width > b.height)
- g.fillRect(b.x, b.y, fillw, b.height);
- else
- g.fillRect(b.x, b.y + b.height - fillh,
- b.width, fillh);
- }
- }
- protected String paramString() {
- Dimension size = size();
- Orientation orient = size.width > size.height ?
- Orientation.HORIZONTAL :
- Orientation.VERTICAL;
- String str = "fill percent=" + percentFill + "," +
- "orientation=" + orient + "," +
- "color" + fillColor;
- return str;
- }
-}
diff --git a/java/gjt/Border.java b/java/gjt/Border.java
deleted file mode 100644
index ba80ef2e76a..00000000000
--- a/java/gjt/Border.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A panel containing a single component, around which a border
- * is drawn. Of course, the single component may be a
- * container which may contain other components, so a Border
- * can surround multiple components.<p>
- *
- * Thickness of the border, and the gap between the Component
- * and the border are specified at time of construction.
- * Default border thickness is 2 - default gap is 0.<p>
- *
- * Border color may be set via setLineColor(Color).<p>
- *
- * Border employs a DrawnRectangle to paint the border. Derived
- * classes are free to override DrawnRectangle border() if they
- * wish to use an extension of DrawnRectangle for drawing their
- * border.<p>
- *
- * The following code snippet, from gjt.test.BorderTest creates
- * and AWT Button, and embeds the button in a border. That
- * border is then embedded in another border. The AWT Button
- * winds up inside of a cyan border with a pixel width of 7,
- * inside of a black border (pixel width 2):<p>
- *
- * <pre>
- * private Border makeBorderedAWTButton() {
- * Button button;
- * Border cyanBorder, blackBorder;
- *
- * button = new Button("Button Inside Two Borders");
- * cyanBorder = new Border(button, 7);
- * cyanBorder.setLineColor(Color.cyan);
- *
- * blackBorder = new Border(cyanBorder);
- *
- * return blackBorder;
- * }
- *</pre>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see DrawnRectangle
- * @see ThreeDBorder
- * @see EtchedBorder
- * @see gjt.test.BorderTest
- */
-public class Border extends Panel {
- protected int thickness;
- protected int gap;
- protected DrawnRectangle border;
-
- protected static int _defaultThickness = 2;
- protected static int _defaultGap = 0;
-
- public Border(Component borderMe) {
- this(borderMe, _defaultThickness, _defaultGap);
- }
- public Border(Component borderMe, int thickness) {
- this(borderMe, thickness, _defaultGap);
- }
- public Border(Component borderMe, int thickness, int gap) {
- this.thickness = thickness;
- this.gap = gap;
-
- setLayout(new BorderLayout());
- add("Center", borderMe);
- }
- public Insets insets() {
- return new Insets(thickness+gap, thickness+gap,
- thickness+gap, thickness+gap);
- }
- public Rectangle getInnerBounds() {
- return border().getInnerBounds();
- }
- public void setLineColor(Color c) {
- border().setLineColor(c);
- }
- public Color getLineColor() {
- return border().getLineColor();
- }
- public void paint(Graphics g) {
- border().paint();
- }
- public void resize(int w, int h) {
- Point location = location();
- reshape(location.x, location.y, w, h);
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x, y, w, h);
- border().resize(w, h);
- }
- protected String paramString() {
- return super.paramString() + ",border=" +
- border().toString() + ",thickness=" + thickness
- + ",gap=" + gap;
- }
- protected DrawnRectangle border() {
- if(border == null)
- border = new DrawnRectangle(this, thickness);
- return border;
- }
-}
diff --git a/java/gjt/Box.java b/java/gjt/Box.java
deleted file mode 100644
index 8feda366942..00000000000
--- a/java/gjt/Box.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A Panel containing a single component; an etched rectangle is
- * drawn around the component, and a Label is centered at the top
- * of the rectangle. Of course, the single component may be
- * a container, and therefore a Box may surround many components.
- * <p>
- *
- * Both the Component around which the box is drawn, and the
- * String drawn at the top of the box are specified at
- * construction time.<p>
- *
- * Etching of the box is controlled by etchedIn() and
- * etchedOut(). Default etching is etched in.<p>
- *
- * <em>Note: AWT 1.0.2 contains a bug which causes the
- * Label.CENTER argument of the Label created for the title
- * to be ignored, under Win95. Therefore, under Win95, the
- * title will be off-center.</em><p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see EtchedRectangle
- * @see gjt.test.BoxTest
- */
-public class Box extends Panel {
- private EtchedRectangle box = new EtchedRectangle(this);
- private Label titleLabel;
-
- public Box(Component surrounded, String title) {
- this(surrounded, new Label(title, Label.CENTER));
- }
- public Box(Component surrounded, Label label) {
- Assert.notNull(surrounded);
- Assert.notNull(label);
-
- titleLabel = label;
-
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
-
- setLayout(gbl);
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.anchor = GridBagConstraints.NORTH;
- gbl.setConstraints(titleLabel, gbc);
- add(titleLabel);
-
- gbc.insets = new Insets(0,10,10,10);
- gbc.anchor = GridBagConstraints.CENTER;
- gbc.weighty = 1.0;
- gbc.weightx = 1.0;
- gbc.fill = GridBagConstraints.BOTH;
- gbl.setConstraints(surrounded,gbc);
- add(surrounded);
- }
- public void etchedIn () { box.etchedIn (); }
- public void etchedOut() { box.etchedOut(); }
- public void paint (Graphics g) { box.paint(); }
-
- public void resize(int w, int h) {
- reshape(location().x, location().y, w, h);
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x,y,w,h);
-
- FontMetrics fm = titleLabel.getFontMetrics(
- titleLabel.getFont());
- int top = insets().top + fm.getAscent();
- Dimension size = size();
-
- box.reshape(0, top, size.width-1, size.height-top-1);
- }
- protected String paramString() {
- return super.paramString() + ",etching=" +
- (box.isEtchedIn() ? Etching.IN : Etching.OUT) +
- ",title=" + titleLabel;
- }
-}
diff --git a/java/gjt/BulletinLayout.java b/java/gjt/BulletinLayout.java
deleted file mode 100644
index 848a280de03..00000000000
--- a/java/gjt/BulletinLayout.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Lays out components as though they were pinned to
- * a bulletin board.<p>
- *
- * Components are simply reshaped to their location and their
- * preferred size. BulletinLayout is preferrable to setting
- * a container's layout manager to null and explicitly positioning
- * and sizing components.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- */
-public class BulletinLayout implements LayoutManager {
- public BulletinLayout() {
- }
- public void addLayoutComponent(String name, Component comp) {
- }
- public void removeLayoutComponent(Component comp) {
- }
- public Dimension preferredLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
- Rectangle preferredBounds = new Rectangle(0,0);
- Rectangle compPreferredBounds;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.preferredSize();
- compPreferredBounds =
- new Rectangle(comp.location());
- compPreferredBounds.width = d.width;
- compPreferredBounds.height = d.height;
-
- preferredBounds =
- preferredBounds.union(compPreferredBounds);
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
-
- return dim;
- }
- public Dimension minimumLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
- Rectangle minimumBounds = new Rectangle(0,0);
- Rectangle compMinimumBounds;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.minimumSize();
- compMinimumBounds =
- new Rectangle(comp.location());
- compMinimumBounds.width = d.width;
- compMinimumBounds.height = d.height;
-
- minimumBounds =
- minimumBounds.union(compMinimumBounds);
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
-
- return dim;
- }
- public void layoutContainer(Container target) {
- Insets insets = target.insets();
- int ncomponents = target.countComponents();
- Component comp;
- Dimension ps;
- Point loc;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- ps = comp.preferredSize();
- loc = comp.location();
-
- comp.reshape(insets.left + loc.x,
- insets.top + loc.y,
- ps.width, ps.height);
- }
- }
- }
-}
diff --git a/java/gjt/ButtonPanel.java b/java/gjt/ButtonPanel.java
deleted file mode 100644
index 6fc72ecaab2..00000000000
--- a/java/gjt/ButtonPanel.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Button panel employs a BorderLayout to lay out a Separator in
- * the north, and a Panel to which Buttons are added in the
- * center.<p>
- *
- * Buttons may be added to the panel via two methods:
- * <dl>
- * <dd> void add(Button)
- * <dd> Button add(String)
- * </dl>
- * <p>
- *
- * Button add(String) creates a Button and adds it to the
- * panel, then returns the Button created, as a convenience to
- * clients so that they do not have to go through the pain
- * and agony of creating an ImageButton.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see MessageDialog
- * @see QuestionDialog
- * @see YesNoDialog
- * @see gjt.test.DialogTest
- * @see gjt.test.ComponentScrollerTest
- */
-public class ButtonPanel extends Panel {
- Panel buttonPanel = new Panel();
- Separator separator = new Separator();
-
- public ButtonPanel() {
- setLayout(new BorderLayout(0,5));
- add("North", separator);
- add("Center", buttonPanel);
- }
- public void add(Button button) {
- buttonPanel.add(button);
- }
- public Button add(String buttonLabel) {
- Button addMe = new Button(buttonLabel);
- buttonPanel.add(addMe);
- return addMe;
- }
- protected String paramString() {
- return super.paramString() + "buttons=" +
- countComponents();
- }
-}
diff --git a/java/gjt/CardPanel.java b/java/gjt/CardPanel.java
deleted file mode 100644
index c2ab1a9033c..00000000000
--- a/java/gjt/CardPanel.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * CardPanel employs a BorderLayout to lay out North and Center
- * panels; extensions of CardPanel must implement
- * Component viewSelector(). The component returned from
- * Component viewSelector() is centered in the North panel, and
- * should contain UI controls that allow selection of the
- * component to be displayed in the Center panel.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see IconCardPanel
- * @see ChoiceCardPanel
- * @see gjt.test.ChoiceCardPanelTest
- * @see gjt.test.IconCardPanelTest
- */
-public abstract class CardPanel extends Panel {
- private Panel north, center;
- private CardLayout cards;
-
- abstract public Component viewSelector();
-
- public CardPanel() {
- center = new Panel();
- north = new Panel();
-
- setLayout(new BorderLayout());
- center.setLayout(cards = new CardLayout());
- north.setLayout (new BorderLayout());
-
- add("North", north);
- add("Center", center);
- }
- public void addNotify() {
- super.addNotify();
- north.add("Center", viewSelector());
- north.add("South", new Separator());
- }
- protected void addView(String name, Component component) {
- center.add(name, component);
- }
- protected void showView(String name) {
- cards.show(center, name);
- }
-}
diff --git a/java/gjt/ChoiceCardPanel.java b/java/gjt/ChoiceCardPanel.java
deleted file mode 100644
index 6273e03a5aa..00000000000
--- a/java/gjt/ChoiceCardPanel.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * ChoiceCardPanel is an extension of CardPanel which presents
- * an awt.Choice for selecting the panel to be displayed
- * in the center panel.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CardPanel
- * @see IconCardPanel
- * @see gjt.test.IconCardPanelTest
- * @see gjt.test.ChoiceCardPanelTest
- */
-public class ChoiceCardPanel extends CardPanel {
- private ChoiceViewSelector viewSelector;
-
- public ChoiceCardPanel() {
- viewSelector = new ChoiceViewSelector(this);
- }
- public Component viewSelector() {
- return viewSelector;
- }
- public void addChoice(String name,
- Component component) {
- viewSelector.addItem(name);
- super.addView(name, component);
- }
-}
-
-class ChoiceViewSelector extends Panel {
- private ChoiceCardPanel mvp;
- private Choice choice;
-
- public ChoiceViewSelector(ChoiceCardPanel panel) {
- setLayout(new FlowLayout());
- add(choice = new Choice());
- mvp = panel;
- }
- public void addItem(String name) {
- choice.addItem(name);
- }
- public boolean handleEvent(Event event) {
- if(event.id == Event.ACTION_EVENT) {
- if(event.target instanceof Choice) {
- mvp.showView(choice.getSelectedItem());
- }
- }
- return super.handleEvent(event);
- }
-}
diff --git a/java/gjt/ColumnLayout.java b/java/gjt/ColumnLayout.java
deleted file mode 100644
index bc51b44e456..00000000000
--- a/java/gjt/ColumnLayout.java
+++ /dev/null
@@ -1,154 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * ColumnLayout lays out components in a column. At
- * construction time, both horizontal orientation and vertical
- * orientation may be specified, along with the gap to use
- * between components.<p>
- *
- * Horizontal orientation must be one of the following:
- * <dl>
- * <dd> LEFT
- * <dd> CENTER
- * <dd> RIGHT
- * </dl>
- *
- * Vertical orientation must be one of the following:
- * <dl>
- * <dd> TOP
- * <dd> CENTER
- * <dd> BOTTOM
- * </dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Orientation
- * @see RowLayout
- */
-public class ColumnLayout implements LayoutManager {
- static private int _defaultGap = 5;
-
- private int gap;
- private Orientation horizontalOrientation;
- private Orientation verticalOrientation;
-
- public ColumnLayout() {
- this(Orientation.CENTER,
- Orientation.CENTER, _defaultGap);
- }
- public ColumnLayout(int gap) {
- this(Orientation.CENTER, Orientation.CENTER, gap);
- }
- public ColumnLayout(Orientation horizontalOrient,
- Orientation verticalOrient) {
- this(horizontalOrient, verticalOrient, _defaultGap);
- }
- public ColumnLayout(Orientation horizontalOrient,
- Orientation verticalOrient, int gap) {
- Assert.notFalse(gap >= 0);
- Assert.notFalse(
- horizontalOrient == Orientation.LEFT ||
- horizontalOrient == Orientation.CENTER ||
- horizontalOrient == Orientation.RIGHT);
- Assert.notFalse(
- verticalOrient == Orientation.TOP ||
- verticalOrient == Orientation.CENTER ||
- verticalOrient == Orientation.BOTTOM);
-
- this.gap = gap;
- this.verticalOrientation = verticalOrient;
- this.horizontalOrientation = horizontalOrient;
- }
-
- public void addLayoutComponent(String name,
- Component comp) {
- }
- public void removeLayoutComponent(Component comp) {
- }
-
- public Dimension preferredLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.preferredSize();
- if(i > 0)
- dim.height += gap;
-
- dim.height += d.height;
- dim.width = Math.max(d.width, dim.width);
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
- return dim;
- }
- public Dimension minimumLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.minimumSize();
-
- dim.width = Math.max(d.width, dim.width);
- dim.height += d.height;
-
- if(i > 0) dim.height += gap;
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
-
- return dim;
- }
- public void layoutContainer(Container target) {
- Insets insets = target.insets();
- int top = insets.top;
- int left = 0;
- int ncomponents = target.countComponents();
- Dimension preferredSize = target.preferredSize();
- Dimension targetSize = target.size();
- Component comp;
- Dimension ps;
-
- if(verticalOrientation == Orientation.CENTER)
- top += (targetSize.height/2) -
- (preferredSize.height/2);
- else if(verticalOrientation == Orientation.BOTTOM)
- top = targetSize.height - preferredSize.height +
- insets.top;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
- left = insets.left;
-
- if(comp.isVisible()) {
- ps = comp.preferredSize();
-
- if(horizontalOrientation == Orientation.CENTER)
- left = (targetSize.width/2) - (ps.width/2);
- else if(
- horizontalOrientation == Orientation.RIGHT) {
- left = targetSize.width - ps.width -
- insets.right;
- }
- comp.reshape(left,top,ps.width,ps.height);
- top += ps.height + gap;
- }
- }
- }
-}
diff --git a/java/gjt/ComponentScroller.java b/java/gjt/ComponentScroller.java
deleted file mode 100644
index 3aef71c4ea2..00000000000
--- a/java/gjt/ComponentScroller.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Scrolls any component. Component to be scrolled may be a
- * container, so ultimately many components may be scrolled
- * at once.<p>
- *
- * Component to be scrolled may be specified at construction
- * time, or may be set after construction via
- * void setComponent(Component).<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see BulletinLayout
- * @see Scroller
- * @see ScrollerLayout
- * @see ImageScroller
- * @see gjt.test.ComponentScrollerTest
- */
-public class ComponentScroller extends Scroller {
- private Component scrollMe;
-
- public ComponentScroller() {
- }
- public ComponentScroller(Component component) {
- setComponent(component);
- }
- public void setComponent(Component component) {
- scrollMe = component;
- viewport.setLayout(new BulletinLayout());
- viewport.add (scrollMe);
- viewport.move (0,0);
- }
- public void scrollTo(int x, int y) {
- scrollMe.move(-x,-y);
- }
- public Dimension getScrollAreaSize() {
- return scrollMe.preferredSize();
- }
-}
diff --git a/java/gjt/DialogClient.java b/java/gjt/DialogClient.java
deleted file mode 100644
index 7e67cea758e..00000000000
--- a/java/gjt/DialogClient.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package gjt;
-
-import java.awt.Dialog;
-
-/**
- * DialogClients are notified when the Dialog with which they
- * are associated is dismissed. A reference to the dismissed
- * Dialog is passed as a parameter of dialogDismissed() in case
- * a DialogClient is a client of more than one Dialog.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see MessageDialog
- * @see QuestionDialog
- * @see YesNoDialog
- * @see gjt.test.DialogTest
- */
-public interface DialogClient {
- abstract public void dialogDismissed(Dialog d);
-}
diff --git a/java/gjt/DrawingPanel.java b/java/gjt/DrawingPanel.java
deleted file mode 100644
index cda3fd69431..00000000000
--- a/java/gjt/DrawingPanel.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package gjt;
-
-import java.awt.*;
-import gjt.rubberband.*;
-
-/**
- * An extension of gjt.rubberband.RubberbandPanel which serves
- * as a panel used for drawing simple shapes (lines, rectangles,
- * and ellipses). The shapes may be filled (except for lines,
- * of course), and the color of the shapes may be specified.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.rubberband.RubberbandPanel
- * @see gjt.rubberband.RubberbandEllipse
- * @see gjt.rubberband.RubberbandLine
- * @see gjt.rubberband.RubberbandRectangle
- * @see gjt.test.RubberbandTest
- * @see gjt.test.ToolbarTest
- */
-public class DrawingPanel extends RubberbandPanel {
- private Rubberband rbLine, rbRect, rbEllipse;
- private Color color;
- private boolean fill;
-
- public DrawingPanel() {
- rbLine = new RubberbandLine (this);
- rbRect = new RubberbandRectangle(this);
- rbEllipse = new RubberbandEllipse (this);
-
- setRubberband(rbLine);
- }
- public void drawLines () { setRubberband(rbLine); }
- public void drawRectangles() { setRubberband(rbRect); }
- public void drawEllipses () { setRubberband(rbEllipse); }
-
- public void setColor(Color color) { this.color = color; }
- public Color getColor() { return color; }
-
- public void setFill(boolean b) { fill = b; }
- public boolean getFill() { return fill; }
-
- public boolean mouseUp(Event event, int x, int y) {
- Rubberband rb = getRubberband();
- Graphics g = getGraphics();
-
- super.mouseUp(event, x, y);
- g.setColor(color);
-
- if(rb == rbLine) drawLine (rb, g);
- else if(rb == rbRect) drawRectangle(rb, g);
- else if(rb == rbEllipse) drawEllipse (rb, g);
-
- return true;
- }
- protected void drawLine(Rubberband rb, Graphics g) {
- Point anchor = rb.getAnchor(), end = rb.getEnd();
- g.drawLine(anchor.x, anchor.y, end.x, end.y);
- }
- protected void drawRectangle(Rubberband rb, Graphics g) {
- Rectangle r = rb.bounds();
-
- if(fill) g.fillRect(r.x, r.y, r.width, r.height);
- else g.drawRect(r.x, r.y, r.width, r.height);
- }
- protected void drawEllipse(Rubberband rb, Graphics g) {
- Rectangle r = rb.bounds();
-
- if(fill) g.fillArc(r.x, r.y, r.width, r.height, 0, 360);
- else g.drawArc(r.x, r.y, r.width, r.height, 0, 360);
- }
-}
diff --git a/java/gjt/DrawnRectangle.java b/java/gjt/DrawnRectangle.java
deleted file mode 100644
index e96fd8d3673..00000000000
--- a/java/gjt/DrawnRectangle.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A Rectangle which draws itself inside of a Component.<p>
- *
- * DrawnRectangles may have their thickness and line color set,
- * and are capable of reporting their inner bounds (the area
- * inside the lines).<p>
- *
- * Default thickness is 2.<p>
- *
- * If not set explicitly, the line color used is three shades
- * darker than the background color of the Component being
- * drawn into.<p>
- *
- * DrawnRectangles may be clear()ed, which clears both the
- * exterior (the lines) and the interior (the area inside of
- * the lines) of the DrawnRectangle.<p>
- *
- * DrawnRectangles may also be fill()ed with a specified color
- * by calling fill(Color), or by calling setFillColor(Color)
- * followed by fill().<p>
- *
- * By default, the fill Color is the background color of the
- * Component drawn into.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ThreeDRectangle
- * @see EtchedRectangle
- * @see Border
- * @see EtchedBorder
- * @see ThreeDBorder
- * @see gjt.test.DrawnRectangleTest
- */
-public class DrawnRectangle extends Rectangle {
- protected static int _defaultThickness = 2;
-
- protected Component drawInto;
- private int thick;
- private Color lineColor, fillColor;
-
- public DrawnRectangle(Component drawInto) {
- this(drawInto, _defaultThickness, 0, 0, 0, 0);
- }
- public DrawnRectangle(Component drawInto, int thick) {
- this(drawInto, thick, 0, 0, 0, 0);
- }
- public DrawnRectangle(Component drawInto, int x, int y,
- int w, int h) {
- this(drawInto, _defaultThickness, x, y, w, h);
- }
- public DrawnRectangle(Component drawInto, int thick,
- int x, int y, int w, int h) {
- Assert.notNull(drawInto);
- Assert.notFalse(thick > 0);
-
- this.drawInto = drawInto;
- this.thick = thick;
- reshape(x,y,w,h);
- }
- public Component component() {return drawInto; }
- public int getThickness () {return thick; }
- public void setThickness (int thick) {this.thick = thick; }
-
- public void setLineColor(Color lineColor) {
- this.lineColor = lineColor;
- }
- public void setFillColor(Color fillColor) {
- this.fillColor = fillColor;
- }
- public void fill() {
- fill(getFillColor());
- }
- public Color getLineColor() {
- if(lineColor == null)
- lineColor =
- drawInto.getBackground().darker().darker().darker();
- return lineColor;
- }
- public Color getFillColor() {
- if(fillColor == null)
- fillColor = drawInto.getBackground();
- return fillColor;
- }
- public Rectangle getInnerBounds() {
- return new Rectangle(x+thick, y+thick,
- width-(thick*2), height-(thick*2));
- }
- public void paint() {
- Graphics g = drawInto.getGraphics();
- paintFlat(g, getLineColor());
- }
- private void paintFlat(Graphics g, Color color) {
- if(g != null) {
- g.setColor(color);
- for(int i=0; i < thick; ++i)
- g.drawRect(x+i, y+i,
- width-(i*2)-1, height-(i*2)-1);
- }
- }
- public void clearInterior() {
- fill(drawInto.getBackground());
- }
- public void clearExterior() {
- paintFlat(drawInto.getGraphics(),
- drawInto.getBackground());
- }
- public void clear() {
- clearExterior();
- clearInterior();
- }
- public void fill(Color color) {
- Graphics g = drawInto.getGraphics();
-
- if(g != null) {
- Rectangle r = getInnerBounds();
- g.setColor(color);
- g.fillRect(r.x, r.y, r.width, r.height);
- setFillColor(color);
- }
- }
- public String toString() {
- return super.toString() + "[" + paramString() + "]";
- }
- public String paramString() {
- return "color=" + getLineColor() + ",thickness=" +
- thick + ",fillColor=" + getFillColor();
- }
- protected Color brighter() {
- return
- getLineColor().brighter().brighter().brighter().brighter();
- }
-}
diff --git a/java/gjt/EtchedBorder.java b/java/gjt/EtchedBorder.java
deleted file mode 100644
index 09ff845014b..00000000000
--- a/java/gjt/EtchedBorder.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * An extension of Border that draws an etched border.
- *
- * Drawn etchedIn by default, drawing style used by paint() is
- * controlled by etchedIn() and etchedOut(). Note that
- * etchedIn() and etchedOut() do not result in anything being
- * painted, but only set the state for the next call to paint().
- * To set the state and paint in one operation, use
- * paintEtchedIn() and paintEtchedOut().<p>
- *
- * The current state of the border may be obtained by calling
- * isEtchedIn().<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Border
- * @see ThreeDRectangle
- * @see gjt.test.BorderTest
- */
-public class EtchedBorder extends Border {
- public EtchedBorder(Component borderMe) {
- this(borderMe, _defaultThickness, _defaultGap);
- }
- public EtchedBorder(Component borderMe,
- int borderThickness) {
- this(borderMe, borderThickness, _defaultGap);
- }
- public EtchedBorder(Component borderMe,
- int borderThickness, int gap) {
- super(borderMe, borderThickness, gap);
- }
- public void etchedIn() {
- ((EtchedRectangle)border()).etchedIn();
- }
- public void etchedOut() {
- ((EtchedRectangle)border()).etchedOut();
- }
- public void paintEtchedIn() {
- ((EtchedRectangle)border()).paintEtchedIn ();
- }
- public void paintEtchedOut() {
- ((EtchedRectangle)border()).paintEtchedOut();
- }
- public boolean isEtchedIn() {
- return ((EtchedRectangle)border()).isEtchedIn();
- }
- protected String paramString() {
- return super.paramString() + (EtchedRectangle)border();
- }
- protected DrawnRectangle border() {
- if(border == null)
- border = new EtchedRectangle(this, thickness);
- return border;
- }
-}
diff --git a/java/gjt/EtchedRectangle.java b/java/gjt/EtchedRectangle.java
deleted file mode 100644
index b8026d42f8d..00000000000
--- a/java/gjt/EtchedRectangle.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A DrawnRectangle that draws an etched border.<p>
- *
- * Drawn etched in by default, drawing style used by paint() is
- * controlled by etchedIn() and etchedOut(). Note that
- * etchedIn() and etchedOut() do not result in anything being
- * painted, but only set the state for the next call to paint().
- * To set the state and paint in one operation, use
- * paintEtchedIn() and paintEtchedOut().<p>
- *
- * Although it is permissible to set the thickness of
- * EtchedRectangles, they tend to loose the etching effect
- * if thickness is greater than 4.<p>
- *
- * The current state of the rectangle may be obtained by
- * calling isEtchedIn().
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see DrawnRectangle
- * @see ThreeDRectangle
- * @see gjt.test.DrawnRectangleTest
- */
-public class EtchedRectangle extends DrawnRectangle {
- protected static Etching _defaultEtching = Etching.IN;
- private Etching etching;
-
- public EtchedRectangle(Component drawInto) {
- this(drawInto, _defaultEtching,
- _defaultThickness, 0, 0, 0, 0);
- }
- public EtchedRectangle(Component drawInto, int thickness) {
- this(drawInto, _defaultEtching, thickness, 0, 0, 0, 0);
- }
- public EtchedRectangle(Component drawInto, int x, int y,
- int w, int h) {
- this(drawInto, _defaultEtching,
- _defaultThickness, x, y, w, h);
- }
- public EtchedRectangle(Component drawInto, int thickness,
- int x, int y,
- int w, int h) {
- this(drawInto, _defaultEtching, thickness, x, y, w, h);
- }
- public EtchedRectangle(Component drawInto, Etching etching,
- int thickness, int x, int y,
- int w, int h) {
- super(drawInto, thickness, x, y, w, h);
- this.etching = etching;
- }
- public void etchedIn () { etching = Etching.IN; }
- public void etchedOut () { etching = Etching.OUT; }
- public boolean isEtchedIn() { return etching == Etching.IN;}
-
- public void paint() {
- if(etching == Etching.IN) paintEtchedIn();
- else paintEtchedOut();
- }
- public void paintEtchedIn() {
- Graphics g = drawInto.getGraphics();
- if(g != null)
- paintEtched(g, getLineColor(), brighter());
-
- etchedIn();
- }
- public void paintEtchedOut() {
- Graphics g = drawInto.getGraphics();
- if(g != null)
- paintEtched(g, brighter(), getLineColor());
-
- etchedOut();
- }
- public String paramString() {
- return super.paramString() + "," + etching;
- }
- private void paintEtched(Graphics g,
- Color topLeft,
- Color bottomRight) {
- int thickness = getThickness();
- int w = width - thickness;
- int h = height - thickness;
-
- g.setColor(topLeft);
- for(int i=0; i < thickness/2; ++i)
- g.drawRect(x+i, y+i, w, h);
-
- g.setColor(bottomRight);
-
- for(int i=0; i < thickness/2; ++i)
- g.drawRect(x+(thickness/2)+i,
- y+(thickness/2)+i, w, h);
- }
-}
diff --git a/java/gjt/Etching.java b/java/gjt/Etching.java
deleted file mode 100644
index ad40d9caaea..00000000000
--- a/java/gjt/Etching.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package gjt;
-
-/**
- * Constants for Etching.
- *
- * This class may not be instantiated.
- *
- * @version 1.0, Apr 11 1996
- * @author David Geary
- */
-public class Etching {
- public static final Etching OUT = new Etching();
- public static final Etching IN = new Etching();
-
- public String toString() {
- if(this == Etching.OUT)
- return getClass().getName() + "=OUT";
- else
- return getClass().getName() + "=IN";
- }
- private Etching() { }
-}
diff --git a/java/gjt/ExclusiveImageButtonPanel.java b/java/gjt/ExclusiveImageButtonPanel.java
deleted file mode 100644
index f1d0878a499..00000000000
--- a/java/gjt/ExclusiveImageButtonPanel.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package gjt;
-
-import java.awt.Image;
-
-/**
- * An ImageButtonPanel which fits all of its ImageButtons with
- * a StickyImageButtonController. ExclusiveImageButtonPanel
- * relies upon its superclass' controller: a
- * RadioImageButtonPanelController, which ensures that only one
- * of the ImageButtons is selected at a time.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonPanel
- * @see gjt.test.ToolbarTest
- */
-public class ExclusiveImageButtonPanel extends
- ImageButtonPanel {
- public ExclusiveImageButtonPanel(Orientation orient) {
- this(orient, 5);
- }
- public ExclusiveImageButtonPanel(Orientation orient,
- int gap) {
- super(orient, gap);
- }
- public ExclusiveImageButtonPanel(Orientation orient,
- Orientation horient,
- Orientation vorient,
- int gap) {
- super(orient, horient, vorient, gap);
- }
- public void add(ImageButton button) {
- super.add(button);
- new StickyImageButtonController(button);
- }
- public ImageButton add(Image image) {
- ImageButton button = super.add(image);
- new StickyImageButtonController(button);
- return button;
- }
- public ImageButton add(Image image, String name) {
- ImageButton button = super.add(image, name);
- new StickyImageButtonController(button);
- return button;
- }
-}
diff --git a/java/gjt/FontDialog.java b/java/gjt/FontDialog.java
deleted file mode 100644
index 182ca582884..00000000000
--- a/java/gjt/FontDialog.java
+++ /dev/null
@@ -1,362 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A dialog used for selecting a font. FontDialog is
- * constructed with a Frame, DialogClient, initial font to
- * display, and boolean that indicates modality.<p>
- *
- * FontDialog contains a preview panel which previews the
- * currently selected font. Updating of the preview panel is
- * triggered by a preview button at the bottom of the dialog.<p>
- *
- * FontDialog contains 3 methods which define the labels for
- * the buttons it contains:
- * <dl>
- * <dd> String getPreviewButtonLabel()
- * <dd> String getOkButtonLabel()
- * <dd> String getCancelButtonLabel()
- * </dl><p>
- *
- * By default the 3 methods return "Preview", "Ok" and "Cancel"
- * respectively. FontDialog may be extended and the 3 methods
- * overridden to customize the labels displayed in the
- * buttons.<p>
- *
- * FontDialog uses Toolkit to get a list of fonts by invoking
- * Toolkit.getFontList(). This is done in the getFontNames()
- * method, which may be overridden by extensions of FontDialog
- * in case the standard set of font names are inadequate.<p>
- *
- * Finally, font sizes are obtained by the getFontSizes()
- * method. FontDialog defines 8 sizes by default: 8, 12, 14,
- * 16, 18, 24, 48 and 64. Extensions of FontDialog may override
- * getFontSizes() to provide a different list of sizes.<p>
- *
- * See gjt.test.FontDialogTest for an example of an extension
- * of FontDialog which overrides the methods discussed above.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see java.awt.Dialog
- * @see java.awt.Toolkit
- * @see DialogClient
- * @see gjt.test.FontDialogTest
- */
-public class FontDialog extends Dialog {
- private static String _defaultSizes[] =
- { "8", "12", "14", "16", "18", "24", "48", "64" };
-
- private FontPanel fontPanel;
- private Font fontSelected;
- private DialogClient client;
-
- public FontDialog(Frame frame,
- DialogClient client,
- Font font, // initial font
- boolean modal) {
- super(frame, "Select A Font", modal);
- this.client = client;
-
- setLayout(new BorderLayout());
- add("Center", fontPanel = new FontPanel(this, font));
- }
- public boolean handleEvent(Event event) {
- if(event.id == Event.WINDOW_DESTROY)
- done(null);
-
- return super.handleEvent(event);
- }
- public String[] getFontNames() {
- return getToolkit().getFontList();
- }
- public String[] getFontSizes() {
- return _defaultSizes;
- }
-
- public String getPreviewButtonLabel() { return "Preview"; }
- public String getOkButtonLabel () { return "Ok"; }
- public String getCancelButtonLabel () { return "Cancel"; }
-
- public void show() {
- Point frameLoc = getParent().location();
- reshape(frameLoc.x + 50, frameLoc.x + 50, 550, 450);
- super.show();
- }
- public void done(Font font) {
- fontSelected = font;
- client.dialogDismissed(this);
- hide ();
- dispose();
- }
- public Font getFontSelected() {
- return fontSelected;
- }
- public void listSelectedInPicker() {
- fontPanel.getPreviewButton().requestFocus();
- }
-}
-
-class FontPanel extends Panel {
- private static Font defaultFont =
- new Font("TimesRoman", Font.PLAIN, 12);
-
- private FontPreviewPanel preview;
- private FontSelectionPanel fsp;
-
- public FontPanel(FontDialog dialog, Font f) {
- Font font = f == null ? defaultFont : f;
-
- setLayout(new BorderLayout());
- add("North", preview = new FontPreviewPanel ());
- add("Center", fsp =
- new FontSelectionPanel(dialog, preview, font));
- }
- public Button getPreviewButton() {
- return fsp.getPreviewButton();
- }
-}
-
-class FontPreviewPanel extends Panel {
- TextField textField = new TextField();
- Box box = new Box(textField, "Preview");
-
- public FontPreviewPanel() {
- textField.setEditable(false);
-
- setLayout(new BorderLayout());
- add("Center", box);
- }
- public void setPreviewFont(Font font) {
- String name = font.getName();
- String size = String.valueOf(font.getSize());
- String style = new String();
-
- if(font.isPlain () == true) style = "Plain";
- else {
- if(font.isBold () == true) style += "Bold";
- if(font.isItalic() == true) style += "Italic";
- }
- textField.setFont(font);
- textField.setText(name + " " + style + " " + size);
- retrofitPreviewPanel();
- }
- private void retrofitPreviewPanel() {
- Dimension tfps, tfs;
- FontPanel fontPanel = (FontPanel)getParent();
-
- tfps = textField.preferredSize();
- tfs = textField.size();
-
- if(tfps.width != tfs.width ||
- tfps.height != tfs.height) {
- fontPanel.invalidate();
- fontPanel.getParent().validate();
- box.repaint(); // Only necessary on Win95
- }
- }
-}
-
-class FontSelectionPanel extends Panel {
- private FontPickerPanel picker;
- private FontButtonsPanel buttons;
- private FontPreviewPanel preview;
- private Font initialFont;
-
- public FontSelectionPanel(FontDialog dialog,
- FontPreviewPanel preview,
- Font initialFont) {
- this.preview = preview;
- this.initialFont = initialFont;
-
- picker = new FontPickerPanel (dialog, initialFont);
- buttons = new FontButtonsPanel(dialog, picker, preview);
-
- setLayout(new BorderLayout());
- add("Center", picker);
- add("South", buttons);
- }
- public void addNotify() {
- super.addNotify();
- preview.setPreviewFont(initialFont);
- }
- public Button getPreviewButton() {
- return buttons.getPreviewButton();
- }
-}
-
-class FontPickerPanel extends Panel {
- private FontDialog dialog;
- private Button previewButton;
- private List fonts = new List();
- private List styles = new List();
- private List sizes = new List();
- private Font initialFont;
-
- public FontPickerPanel(FontDialog dialog,
- Font initialFont) {
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
- Label family = new Label("Family");
- Label style = new Label("Style");
- Label size = new Label("Size");
-
- this.initialFont = initialFont;
- this.dialog = dialog;
-
- populateFonts ();
- populateStyles();
- populateSizes ();
-
- setLayout(gbl);
-
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = 1;
- gbl.setConstraints(family, gbc); add(family);
- gbl.setConstraints(style, gbc); add(style);
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbl.setConstraints(size, gbc); add(size);
-
- gbc.gridwidth = 1;
- gbc.weighty = 1.0;
- gbc.weightx = 1.0;
- gbc.fill = GridBagConstraints.BOTH;
- gbl.setConstraints(fonts, gbc); add(fonts);
- gbl.setConstraints(styles, gbc); add(styles);
- gbl.setConstraints(sizes, gbc); add(sizes);
- }
- public boolean handleEvent(Event event) {
- if(event.id == Event.LIST_SELECT) {
- dialog.listSelectedInPicker();
- return true;
- }
- return false;
- }
- public void addNotify() {
- super.addNotify();
- String initialFamily = initialFont.getName();
- int initialSize = initialFont.getSize();
- int initialStyle = initialFont.getStyle();
-
- styles.select(initialStyle);
-
- for(int i=0; i < fonts.countItems(); ++i) {
- String nextFamily = fonts.getItem(i);
- if(nextFamily.equals(initialFamily))
- fonts.select(i);
- }
- for(int i=0; i < sizes.countItems(); ++i) {
- String nextSize = sizes.getItem(i);
- if(nextSize.equals(String.valueOf(initialSize)))
- sizes.select(i);
- }
- }
- public String fontSelected() {
- return fonts.getSelectedItem ();
- }
- public String styleSelected() {
- return styles.getSelectedItem();
- }
- public int sizeSelected() {
- String szstring = sizes.getSelectedItem();
-
- if(szstring != null) {
- Integer integer = new Integer(szstring);
- return integer.intValue();
- }
- else
- return 0;
- }
- private void populateFonts() {
- String names[] = dialog.getFontNames();
-
- for(int i=0; i < names.length; ++i) {
- fonts.addItem(names[i]);
- }
- }
- private void populateSizes() {
- String sizeArray[] = dialog.getFontSizes();
-
- for(int i=0; i < sizeArray.length; ++i) {
- sizes.addItem(sizeArray[i]);
- }
- }
- private void populateStyles() {
- styles.addItem("Plain");
- styles.addItem("Bold");
- styles.addItem("Italic");
- styles.addItem("BoldItalic");
- }
-}
-
-class FontButtonsPanel extends Panel {
- private FontDialog dialog;
- private FontPickerPanel picker;
- private FontPreviewPanel preview;
- private Button previewButton,
- okButton,
- cancelButton;
-
- public FontButtonsPanel(FontDialog dialog,
- FontPickerPanel picker,
- FontPreviewPanel preview) {
- this.picker = picker;
- this.preview = preview;
- this.dialog = dialog;
-
- add(previewButton =
- new Button(dialog.getPreviewButtonLabel()));
- add(cancelButton =
- new Button(dialog.getCancelButtonLabel()));
- add(okButton =
- new Button(dialog.getOkButtonLabel()));
- }
- public void addNotify() {
- super.addNotify();
- cancelButton.requestFocus();
- }
- public boolean action(Event event, Object object) {
- Button button = (Button)event.target;
- boolean handledEvent = true;
-
- if(event.target == previewButton) {
- Font selectedFont = fontSelected();
-
- if(selectedFont != null) {
- preview.setPreviewFont(selectedFont);
- okButton.requestFocus();
- }
- }
- else if(event.target == okButton)
- dialog.done(fontSelected());
- else if(event.target == cancelButton)
- dialog.done(null);
- else
- handledEvent = false;
-
- return handledEvent;
- }
- public Button getPreviewButton() {
- return previewButton;
- }
- private Font fontSelected() {
- String font = picker.fontSelected ();
- String style = picker.styleSelected();
- int size = picker.sizeSelected ();
- int istyle = Font.PLAIN;
-
- if(font != null && style != null && size > 0) {
- if(style.equals("Bold")) istyle = Font.BOLD;
- if(style.equals("Plain")) istyle = Font.PLAIN;
- if(style.equals("Italic")) istyle = Font.ITALIC;
-
- if(style.equals("BoldItalic"))
- istyle = Font.BOLD + Font.ITALIC;
-
- return new Font(font, istyle, size);
- }
- else
- return null;
- }
-}
diff --git a/java/gjt/GJTDialog.java b/java/gjt/GJTDialog.java
deleted file mode 100644
index 7fc0bd39f40..00000000000
--- a/java/gjt/GJTDialog.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A base class for gjt dialog classes, this concrete class
- * establishes the relationship between a dialog and its
- * client (DialogClient).<p>
- *
- * Note that show() is overridden to ensure that the dialog is
- * centered in the frame which is specified as its parent. This
- * is necessary due to a bug in the Win95 implementation of the
- * AWT (version 1.0.2) that causes dialogs to be displayed at
- * a screen coordinate of 0,0. While the overridden show() is
- * not necessary under non-Win95 Java implementations, it
- * alleviates the Win95 bug and results in no dire consequences
- * on other platforms.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see MessageDialog
- * @see QuestionDialog
- * @see YesNoDialog
- * @see ProgressDialog
- * @see gjt.test.DialogTest
- */
-public class GJTDialog extends Dialog {
- protected DialogClient client;
-
- public GJTDialog(Frame frame,
- String title,
- DialogClient client,
- boolean modal) {
- super(frame, title, modal);
- setClient(client);
- }
- public void setClient(DialogClient client) {
- this.client = client;
- }
- public void show() { // Fixes bug under Win95
- Dimension frameSize = getParent().size();
- Point frameLoc = getParent().location();
- Dimension mySize = size();
- int x,y;
-
- x = frameLoc.x + (frameSize.width/2) -(mySize.width/2);
- y = frameLoc.y + (frameSize.height/2)-(mySize.height/2);
- reshape(x,y,size().width,size().height);
- super.show();
- }
-}
diff --git a/java/gjt/IconCardPanel.java b/java/gjt/IconCardPanel.java
deleted file mode 100644
index 78940bf8f4f..00000000000
--- a/java/gjt/IconCardPanel.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A CardPanel whose Component viewSelector() returns
- * a panel with image buttons to control the selection of the
- * panel to be displayed beneath the view selector panel.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CardPanel
- * @see ChoiceCardpanel
- * @see gjt.test.IconCardPanelTest
- */
-public class IconCardPanel extends CardPanel {
- private ImageButtonPanel viewSelector;
-
- public IconCardPanel() {
- viewSelector = new IconViewSelector(this);
- }
- public Component viewSelector() {
- return viewSelector;
- }
- public void addImageButton(Image image,
- String name,
- Component component) {
- ImageButton newButton;
-
- viewSelector.add(
- newButton = new ImageButton(image), name);
- newButton.setController(
- new StickyImageButtonController(newButton));
- super.addView(name, component);
- }
-}
-
-class IconViewSelector extends ImageButtonPanel {
- private IconCardPanel mvp;
-
- public IconViewSelector(IconCardPanel panel) {
- super(Orientation.HORIZONTAL);
- setLayout(new FlowLayout());
- mvp = panel;
- }
- public boolean handleEvent(Event event) {
- if(event.id == Event.MOUSE_DOWN) {
- if(event.target instanceof ImageButton) {
- ImageButton ib = (ImageButton)event.target;
- mvp.showView(getButtonName(ib));
- }
- }
- return super.handleEvent(event);
- }
-}
diff --git a/java/gjt/ImageButton.java b/java/gjt/ImageButton.java
deleted file mode 100644
index 07bdeff0ef8..00000000000
--- a/java/gjt/ImageButton.java
+++ /dev/null
@@ -1,209 +0,0 @@
-package gjt;
-
-import java.awt.*;
-import java.awt.image.FilteredImageSource;
-
-import gjt.image.BleachImageFilter;
-
-/**
- * An Image painted in a Canvas, bordered by a ThreeDRectangle.
- * <p>
- *
- * ImageButtons have two constructors, both of which take an
- * Image. The Image passed to the constructor must not be null;
- * this is enforced by an assertion.<p>
- *
- * Default border thickness is 2 pixels - thickness may be set
- * at construction time only.<p>
- *
- * Event handling is delegated to an ImageButtonController. By
- * default, all ImageButtons are fitted with an instance of
- * SpringyImageButtonController, however,
- * setController(ImageButtonController) may be used to fit an
- * ImageButton with a different derivation of
- * ImageButtonController after construction.<p>
- *
- * ImageButtons ensure that their Images are completely loaded
- * before they are displayed.<p>
- *
- * Drawn either raised or inset, current state may be queried
- * via the isRaised() method.<p>
- *
- * disable() disables response to input and repaints the image
- * with a bleached version. enable() restores the original
- * image and enables response to input. The intensity of the
- * bleaching effect may be controlled (for all ImageButtons)
- * via the static setBleachPercent(int) method.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ThreeDRectangle
- * @see ImageButtonController
- * @see ImageButtonEvent
- * @see SpringyImageButtonController
- * @see StickyImageButtonController
- * @see BleachImageFilter
- * @see gjt.test.ImageButtonTest
- */
-public class ImageButton extends Canvas {
- private static BleachImageFilter _bleachFilter;
- private static int _bleachPercent = 50;
- private static int _offset = 1;
- private static int _defaultThickness = 2;
-
- private ThreeDRectangle border = new ThreeDRectangle(this);
- private boolean isDisabled = false;
- private Dimension preferredSize = new Dimension(0,0);
- private int thickness;
- private Image image, disabledImage;
- private ImageButtonController controller;
-
- public static int setBleachPercent() {
- return _bleachPercent;
- }
- public static void getBleachPercent(int p) {
- _bleachPercent = p;
- }
- public ImageButton(Image image) {
- this(image, _defaultThickness, null);
- }
- public ImageButton(Image image,
- ImageButtonController controller) {
- this(image, _defaultThickness, controller);
- }
- public ImageButton(Image image, int thickness,
- ImageButtonController controller) {
- Assert.notNull(image);
- Assert.notFalse(thickness > 0);
-
- if(controller == null)
- this.controller =
- new SpringyImageButtonController(this);
- else
- this.controller = controller;
-
- border.setThickness(this.thickness = thickness);
- setImage(image);
- }
- public void setImage(Image image) {
- Util.waitForImage(this, this.image = image);
-
- preferredSize.width = image.getWidth (this) +
- (2*thickness);
- preferredSize.height = image.getHeight(this) +
- (2*thickness);
- }
- public Dimension minimumSize() {
- return preferredSize;
- }
- public Dimension preferredSize() {
- return preferredSize;
- }
- public boolean isRaised () { return border.isRaised(); }
- public boolean isDisabled() { return isDisabled; }
-
- public void enable() {
- isDisabled = false;
- repaint();
- }
- public void disable() {
- isDisabled = true;
-
- if(disabledImage == null)
- createDisabledImage();
-
- repaint();
- }
- public void resize(int w, int h) {
- reshape(location().x, location().y, w, h);
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x,y,w,h);
- border.resize(w,h);
- }
- public void paint(Graphics g) {
- if(isRaised()) paintRaised();
- else paintInset ();
- }
- public void paintInset() {
- Point upperLeft = findUpperLeft();
- Graphics g = getGraphics();
- Image image = isDisabled() ?
- disabledImage : this.image;
- Dimension size = size();
-
- if(g != null) {
- border.clearInterior();
- g.drawImage(image,
- upperLeft.x + thickness + _offset,
- upperLeft.y + thickness + _offset,this);
-
- g.setColor(getBackground().darker());
- for(int i=0; i < _offset; ++i) {
- g.drawLine(thickness+i,thickness+i,
- size.width-thickness-i,thickness+i);
- g.drawLine(thickness+i,thickness+i,
- thickness+i,size.height-thickness-i);
- }
- border.paintInset();
- }
- }
- public void paintRaised() {
- Point upperLeft = findUpperLeft();
- Graphics g = getGraphics();
- Image image = isDisabled() ?
- disabledImage : this.image;
-
- if(g != null) {
- border.clearInterior();
- g.drawImage(image, upperLeft.x + thickness,
- upperLeft.y + thickness, this);
- border.paintRaised();
- }
- }
- public boolean isInside(int x, int y) {
- Dimension size = size();
- return x >= 0 && x < size.width && y >= 0 &&
- y < size.height;
- }
- public void setController(ImageButtonController controller){
- this.controller = controller;
- }
- public ImageButtonController getController() {
- return controller;
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(isDisabled()) return false;
- else return controller.mouseDown(event,x,y);
- }
- public boolean mouseUp(Event event, int x, int y) {
- if(isDisabled()) return false;
- else return controller.mouseUp(event,x,y);
- }
- public boolean mouseDrag(Event event, int x, int y) {
- if(isDisabled()) return false;
- else return controller.mouseDrag(event,x,y);
- }
-
- private void createDisabledImage() {
- if(_bleachFilter == null)
- _bleachFilter =
- new BleachImageFilter(_bleachPercent);
-
- if(_bleachPercent != _bleachFilter.percent())
- _bleachFilter.percent(_bleachPercent);
-
- FilteredImageSource fis =
- new FilteredImageSource(image.getSource(),
- _bleachFilter);
-
- Util.waitForImage(this, disabledImage=createImage(fis));
- }
- private Point findUpperLeft() {
- Dimension size = size();
- return new Point((size.width/2) -
- (preferredSize.width/2),
- (size.height/2) -
- (preferredSize.height/2));
- }
-}
diff --git a/java/gjt/ImageButtonController.java b/java/gjt/ImageButtonController.java
deleted file mode 100644
index 0f6aa6f4add..00000000000
--- a/java/gjt/ImageButtonController.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package gjt;
-import java.awt.Event;
-
-/**
- * A controller for an ImageButton, this abstract class
- * establishes the association between itself and an ImageButton
- * and delivers events to its ImageButton.<p>
- *
- * ImageButtonControllers must be constructed with an
- * ImageButton; the ImageButton's controller gets set by
- * ImageButtonController's constructor.<p>
- *
- * The ImageButton passed into the constructor must not be null;
- * this is enforced by an assertion.<p>
- *
- * Methods defined in the MouseController interface are left
- * for subclasses to implement. ImageButtonController defines
- * mouseMove(), mouseEnter() and mouseExit() as no-ops, so
- * that extensions of ImageButtonController only have to
- * implement mouseDown(), mouseUp() and mouseDrag(). Note
- * that extensions are still free to override mouseMove(),
- * mouseEnter() and mouseExit() if desired.<p>
- *
- * Subclasses should also call the protected XXXButton(Event)
- * methods below, where XXX is either arm, disarm, activate, or
- * deactivate as appropriate. SpringyImageButtonController is
- * a good example of this (so is StickyImageButtonController,
- * but it is more complicated than it's springy sibling).<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see MouseController
- * @see ImageButton
- * @see ImageButtonEvent
- * @see SpringyImageButtonController
- * @see StickyImageButtonController
- * @see gjt.test.ImageButtonTest
- */
-public abstract class ImageButtonController
- implements MouseController {
- private ImageButton button;
-
- ImageButtonController(ImageButton button) {
- Assert.notNull(button);
- this.button = button;
- button.setController(this);
- }
- public ImageButton getButton() {
- return button;
- }
- public boolean mouseEnter(Event event, int x, int y) {
- return false;
- }
- public boolean mouseExit (Event event, int x, int y) {
- return false;
- }
- public boolean mouseMove (Event event, int x, int y) {
- return false;
- }
-
- protected void armButton(Event event) {
- button.deliverEvent(
- new ImageButtonEvent(button,
- event,
- ImageButtonEvent.ARM));
- }
- protected void disarmButton(Event event) {
- button.deliverEvent(
- new ImageButtonEvent(button,
- event,
- ImageButtonEvent.DISARM));
- }
- protected void activateButton(Event event) {
- button.deliverEvent(
- new ImageButtonEvent(button,
- event,
- ImageButtonEvent.ACTIVATE));
- }
-}
diff --git a/java/gjt/ImageButtonEvent.java b/java/gjt/ImageButtonEvent.java
deleted file mode 100644
index bb7f196698f..00000000000
--- a/java/gjt/ImageButtonEvent.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * An extension of java.awt.Event, specifically designed for
- * ImageButton events.<p>
- *
- * ImageButtonEvents are constructed with 3 arguments:
- * <dl>
- * <dd> ImageButton in which the event occurred
- * <dd> The AWT event that triggered the image button event
- * <dd> The id of the event.
- * </dl>
- *
- * An ImageButtonEvent's id (the constructor's 3rd argument),
- * must be one of the following:
- *
- * <dl>
- * <dd> ImageButtonEvent.ARM
- * <dd> ImageButtonEvent.DISARM
- * <dd> ImageButtonEvent.ACTIVATE
- * </dl>
- *
- * ImageButtonEvent has only a constructor and a paramString()
- * method. Containers that contain ImageButtons should check
- * for ImageButtonEvents like so: <p>
- *
- * <pre>
- * // handleEvent(Event) method of a container that
- * // contains ImageButtons.
- *
- * public boolean handleEvent(Event event) {
- * if(event instanceof ImageButtonEvent) {
- * ImageButtonEvent ibevent =
- * (ImageButtonEvent)event;
- *
- * if(ibevent.isArmed()) {
- * // do something for arming
- * }
- * if(ibevent.isDisarmed()) {
- * // do something for disarming
- * }
- * if(ibevent.isActivated()) {
- * // do something for activation
- * }
- * }
- * }
- * </pre>
- *
- * ImageButtonController is the only GJT class that creates
- * ImageButtonEvents.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonController
- * @see SpringyImageButtonController
- * @see StickyImageButtonController
- * @see gjt.test.ImageButtonTest
- */
-public class ImageButtonEvent extends Event {
- public static final int ARM = 1;
- public static final int DISARM = 2;
- public static final int ACTIVATE = 3;
-
- private int eventType;
-
- public ImageButtonEvent(ImageButton button,
- Event event,
- int type) {
- super(button, event.when, event.id, event.x, event.y,
- event.key, event.modifiers, event.arg);
-
- Assert.notFalse(type == ARM ||
- type == DISARM ||
- type == ACTIVATE);
-
- eventType = type;
- id = -1;
- }
- public boolean isArmed() {
- return eventType == ARM;
- }
- public boolean isDisarmed() {
- return eventType == DISARM;
- }
- public boolean isActivated() {
- return eventType == ACTIVATE;
- }
- protected String paramString() {
- String str = new String();
-
- if(eventType == ImageButtonEvent.ARM)
- str = "ARM";
- else if(eventType == ImageButtonEvent.DISARM)
- str = "DISARM";
- else if(eventType == ImageButtonEvent.ACTIVATE)
- str = "ACTIVATE";
-
- return super.paramString() + str;
- }
-}
diff --git a/java/gjt/ImageButtonPanel.java b/java/gjt/ImageButtonPanel.java
deleted file mode 100644
index 0d033b7967b..00000000000
--- a/java/gjt/ImageButtonPanel.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package gjt;
-
-import java.awt.*;
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-/**
- * A panel which contains a collection of ImageButtons,
- * arranged either horizontally or vertically.<p>
- *
- * Handling of mouse events is delegated to an image button
- * panel controller. By default, an image button panel is
- * outfitted with an instance of RadioImageButtonPanelController
- * which implements mutually exclusive selection behavior.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see RadioImageButtonPanelController
- * @see gjt.test.ToolbarTest
- */
-public class ImageButtonPanel extends Panel {
- static private int _defaultGap = 5;
-
- private Hashtable nameAndButtonPairs = new Hashtable();
- private ImageButtonPanelController controller;
-
- public ImageButtonPanel(Orientation orient) {
- this(orient, Orientation.CENTER,
- Orientation.CENTER, _defaultGap);
- }
- public ImageButtonPanel(Orientation orient, int gap) {
- this(orient, Orientation.CENTER,
- Orientation.CENTER, gap);
- }
- public ImageButtonPanel(Orientation orient,
- Orientation horient,
- Orientation vorient, int gap) {
- Assert.notFalse(orient == Orientation.HORIZONTAL ||
- orient == Orientation.VERTICAL);
-
- if(orient == Orientation.VERTICAL)
- setLayout(new ColumnLayout(horient, vorient, gap));
- else
- setLayout(new RowLayout(horient, vorient, gap));
-
- setController(
- new RadioImageButtonPanelController(this));
- }
- public void setController(ImageButtonPanelController c) {
- this.controller = c;
- }
- public Insets insets() { return new Insets(10,10,10,10); }
-
- public ImageButton add(Image image, String name) {
- ImageButton button = new ImageButton(image);
- add(button);
- nameAndButtonPairs.put(name, button);
- return button;
- }
- public ImageButton add(Image image) {
- return add(image, "noname");
- }
- public void add(ImageButton button) {
- add(button, "noname");
- }
- public void add(ImageButton button, String name) {
- nameAndButtonPairs.put(name, button);
- super.add(button);
- }
- public ImageButton getButtonByName(String name) {
- return (ImageButton)nameAndButtonPairs.get(name);
- }
- public String getButtonName(ImageButton button) {
- Enumeration e = nameAndButtonPairs.keys();
- ImageButton nbutt;
- String nstr;
-
- while(e.hasMoreElements()) {
- nstr = (String)e.nextElement();
- nbutt = (ImageButton)nameAndButtonPairs.get(nstr);
-
- if(nbutt.equals(button))
- return nstr;
- }
- return null;
- }
- public void addSpacer(int sizeInPixels) {
- Assert.notFalse(sizeInPixels > 0);
- Canvas spacer = new Canvas();
- spacer.resize(sizeInPixels, sizeInPixels);
- add(spacer);
- }
- public boolean mouseDown(Event event, int x, int y) {
- return controller != null ?
- controller.mouseDown(event,x,y) : false;
- }
- public boolean mouseDrag(Event event, int x, int y) {
- return controller != null ?
- controller.mouseDrag(event,x,y) : false;
- }
- public boolean mouseUp(Event event, int x, int y) {
- return controller != null ?
- controller.mouseUp(event,x,y) : false;
- }
-}
diff --git a/java/gjt/ImageButtonPanelController.java b/java/gjt/ImageButtonPanelController.java
deleted file mode 100644
index 74f900001b6..00000000000
--- a/java/gjt/ImageButtonPanelController.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * A controller for an ImageButtonPanel, this abstract class
- * does nothing more than establish the association between an
- * ImageButton and its controller.<p>
- *
- * ImageButtonControllers must be constructed with an
- * ImageButtonPanel; the ImageButtonPanels' controller gets set
- * by the constructor.<p>
- *
- * The ImageButton passed into the constructor must not be null;
- * this is enforced by an assertion.<p>
- *
- * Methods defined in the MouseController interface are left
- * for subclasses to implement.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see MouseController
- * @see ImageButtonPanel
- * @see gjt.test.Toolbar
- */
-abstract class ImageButtonPanelController implements
- MouseController {
- private ImageButtonPanel panel;
-
- ImageButtonPanelController(ImageButtonPanel panel) {
- Assert.notNull(panel);
- this.panel = panel;
- panel.setController(this);
- }
- public ImageButtonPanel panel() {
- return panel;
- }
- public boolean mouseEnter(Event event, int x, int y) {
- return false;
- }
- public boolean mouseExit (Event event, int x, int y) {
- return false;
- }
- public boolean mouseMove (Event event, int x, int y) {
- return false;
- }
-}
diff --git a/java/gjt/ImageCanvas.java b/java/gjt/ImageCanvas.java
deleted file mode 100644
index 49e3bc72f3f..00000000000
--- a/java/gjt/ImageCanvas.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A Canvas that displays an image.<p>
- *
- * update() is overridden to call paint() directly, thus
- * bypassing the default implementation of update() which
- * erases the background of the canvas before calling paint().
- * This eliminates nasty flashing.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Util
- */
-class ImageCanvas extends Canvas {
- private Image image;
-
- public ImageCanvas(Image image) {
- this.image = image;
- Util.waitForImage(this, image);
- resize(image.getWidth(this), image.getHeight(this));
- }
- public void paint(Graphics g) {
- g.drawImage(image, 0, 0, this);
- }
- public void update(Graphics g) {
- paint(g);
- }
-}
diff --git a/java/gjt/ImageScroller.java b/java/gjt/ImageScroller.java
deleted file mode 100644
index 79fdc86ea3c..00000000000
--- a/java/gjt/ImageScroller.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * An extension of Scroller that smoothly scrolls an Image.<p>
- *
- * An Image must be supplied at construction time. The image
- * may be reset any time after construction.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Scroller
- * @see ImageCanvas
- * @see gjt.test.ScrollerTest
- */
-public class ImageScroller extends Scroller {
- private Image image;
- private ScrollerImageCanvas canvas;
-
- public ImageScroller(Image image) {
- viewport.setLayout(new BorderLayout());
- setImage(image);
- }
- public void resetImage(Image image) {
- viewport.remove(canvas);
- setImage(image);
- invalidate();
- validate();
- }
- public void scrollTo(int x, int y) {
- Graphics g = canvas.getGraphics();
- if(g != null) {
- g.translate(-x,-y);
- g.drawImage(image, 0, 0, this);
- }
- }
- public Dimension getScrollAreaSize() {
- return new Dimension(image.getWidth(this),
- image.getHeight(this));
- }
- private void setImage(Image image) {
- this.image = image;
- hbar.setValue(0);
- vbar.setValue(0);
- viewport.add("Center",
- canvas = new ScrollerImageCanvas(this, image));
- }
-}
-
-class ScrollerImageCanvas extends ImageCanvas {
- private ImageScroller scroller;
-
- public ScrollerImageCanvas(ImageScroller scroller,
- Image image) {
- super(image);
- this.scroller = scroller;
- }
- public void paint(Graphics g) {
- scroller.repaint();
- }
-}
diff --git a/java/gjt/LabelCanvas.java b/java/gjt/LabelCanvas.java
deleted file mode 100644
index ba733249b76..00000000000
--- a/java/gjt/LabelCanvas.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A selectable label. Clients can set the insets around the
- * label via setInsets(Insets).
- *
- * LabelCanvases generate SelectionEvents when they are
- * selected or deselected.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see SelectionEvent
- * @see gjt.test.LabelCanvasTest
- */
-public class LabelCanvas extends Canvas {
- private String label;
- private boolean selected = false;
- private Insets insets = new Insets(2,2,2,2);
- private Point labelLoc = new Point(0,0);
-
- public LabelCanvas(String label) {
- this.label = label;
- }
- public void paint(Graphics g) {
- if(selected == true) paintSelected(g);
- else
- g.drawString(label, labelLoc.x, labelLoc.y);
- }
- public void setInsets(Insets insets) {
- this.insets = insets;
- repaint();
- }
- public String getLabel () { return label; }
- public boolean isSelected() { return selected; }
- public void select () { selected = true; repaint(); }
- public void deselect () { selected = false; repaint(); }
-
- public void resize(int w, int h) {
- reshape(location().x, location().y, w, h);
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x, y, w, h);
- labelLoc = labelLocation(getGraphics());
- }
- public Dimension minimumSize() {
- return preferredSize();
- }
- public Dimension preferredSize() {
- FontMetrics fm = getFontMetrics(getFont());
- return new Dimension(
- insets.left + fm.stringWidth(label) +
- insets.right,
- insets.top + fm.getHeight() +
- insets.bottom);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(selected) deselect();
- else select ();
-
- int eventType = isSelected() ?
- SelectionEvent.SELECT :
- SelectionEvent.DESELECT;
-
- Event newEvent = new SelectionEvent(this,
- event,
- eventType);
- deliverEvent(newEvent);
-
- return true;
- }
- protected void paintSelected(Graphics g) {
- Point labelLoc = labelLocation(g);
-
- g.setColor(getForeground());
- g.fillRect(0,0,size().width,size().height);
- g.setColor(getBackground());
- g.drawString(label, labelLoc.x, labelLoc.y);
- }
- protected String paramString() {
- return super.paramString() + ",text=" + label;
- }
- private Point labelLocation(Graphics g) {
- Dimension size = size();
- FontMetrics fm = g.getFontMetrics();
-
- int x = (size.width/2) - (fm.stringWidth(label)/2);
- int y = (size.height/2) + (fm.getAscent()/2) -
- fm.getLeading();
- return new Point(x,y);
- }
-}
diff --git a/java/gjt/MessageDialog.java b/java/gjt/MessageDialog.java
deleted file mode 100644
index 4b00bc7033f..00000000000
--- a/java/gjt/MessageDialog.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A dialog that displays a message and comes equipped with an
- * Ok button with which the dialog is dismissed.<p>
- *
- * Note that there is only one MessageDialog, that gets
- * reused. Clients must call getMessageDialog() in order to
- * access the one and only MessageDialog.<p>
- *
- * <em>Note: The 1.0.2 version of the AWT seems to have
- * introduced a bug that causes pack() to work incorrectly
- * under Win95.</em>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see GJTDialog
- * @see gjt.test.MessageDialogTest
- * @see gjt.test.DialogTest
- */
-public class MessageDialog extends GJTDialog {
- static private MessageDialog _theMessageDialog;
-
- private Button okButton;
- private String message;
- private ButtonPanel buttonPanel = new ButtonPanel();
-
- static public MessageDialog getMessageDialog(Frame frame,
- DialogClient client,
- String title,
- String message) {
- if(_theMessageDialog == null)
- _theMessageDialog = new MessageDialog(frame,
- client,
- title,
- message);
- else {
- _theMessageDialog.setClient (client);
- _theMessageDialog.setTitle (title);
- _theMessageDialog.setMessage(message);
- }
- return _theMessageDialog;
- }
- private MessageDialog(Frame frame, DialogClient client,
- String title, String message) {
- super(frame, title, client, true);
- okButton = buttonPanel.add("Ok");
-
- setLayout(new BorderLayout());
- add("Center", new MessagePanel(message));
- add("South", buttonPanel);
- pack();
- }
- public void show() {
- okButton.requestFocus();
- super.show();
- }
- public boolean action(Event event, Object what) {
- hide();
- client.dialogDismissed(this);
- return true;
- }
- private void setMessage(String message) {
- this.message = message;
- }
-}
-
-class MessagePanel extends Panel {
- public MessagePanel(String message) {
- add("Center", new Label(message, Label.CENTER));
- }
- public Insets insets() {
- return new Insets(10,10,10,10);
- }
-}
diff --git a/java/gjt/MouseController.java b/java/gjt/MouseController.java
deleted file mode 100644
index f044adee5ba..00000000000
--- a/java/gjt/MouseController.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * An interface for handling mouse events.<p>
- *
- * Components delegate handling of mouse events to a
- * MouseController derivation.<p>
- *
- * For instance:<p>
- *<pre>
- * mouseDown(Event event, int x, int y) {
- * return controller.mouseDown(event,x,y);
- * }
- *</pre>
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonController
- * @see SpringyImageButtonController
- * @see StickyImageButtonController
- */
-public interface MouseController {
- public boolean mouseEnter(Event event, int x, int y);
- public boolean mouseExit (Event event, int x, int y);
-
- public boolean mouseMove (Event event, int x, int y);
- public boolean mouseDown (Event event, int x, int y);
- public boolean mouseUp (Event event, int x, int y);
- public boolean mouseDrag (Event event, int x, int y);
-}
diff --git a/java/gjt/Orientation.java b/java/gjt/Orientation.java
deleted file mode 100644
index f83b27451da..00000000000
--- a/java/gjt/Orientation.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package gjt;
-
-/**
- * Constants for orientations (and alignments).<p>
- *
- * This class may not be instantiated.
- *
- * @version 1.0, Apr 11 1996
- * @author David Geary
- */
-public class Orientation {
- public static final Orientation BAD = new Orientation();
- public static final Orientation NORTH = new Orientation();
- public static final Orientation SOUTH = new Orientation();
- public static final Orientation EAST = new Orientation();
- public static final Orientation WEST = new Orientation();
- public static final Orientation CENTER = new Orientation();
- public static final Orientation TOP = new Orientation();
- public static final Orientation LEFT = new Orientation();
- public static final Orientation RIGHT = new Orientation();
- public static final Orientation BOTTOM = new Orientation();
-
- public static final Orientation HORIZONTAL =
- new Orientation();
- public static final Orientation VERTICAL =
- new Orientation();
-
- static public Orientation fromString(String s) {
- Orientation o = BAD;
-
- if(s.equals("NORTH") || s.equals("north")) o = NORTH;
- else if(s.equals("SOUTH") || s.equals("south"))
- o = SOUTH;
- else if(s.equals("EAST") || s.equals("east"))
- o = EAST;
- else if(s.equals("WEST") || s.equals("west"))
- o = WEST;
- else if(s.equals("CENTER") || s.equals("center"))
- o = CENTER;
- else if(s.equals("TOP") || s.equals("top"))
- o = TOP;
- else if(s.equals("LEFT") || s.equals("left"))
- o = LEFT;
- else if(s.equals("RIGHT") || s.equals("right"))
- o = RIGHT;
- else if(s.equals("BOTTOM") || s.equals("bottom"))
- o = BOTTOM;
- else if(s.equals("VERTICAL") || s.equals("vertical"))
- o = VERTICAL;
- else if(s.equals("HORIZONTAL") ||
- s.equals("horizontal"))
- o = HORIZONTAL;
-
- return o;
- }
- public String toString() {
- String s = new String();
-
- if(this == Orientation.NORTH)
- s = getClass().getName() + "=NORTH";
- else if(this == Orientation.SOUTH)
- s = getClass().getName() + "=SOUTH";
- else if(this == Orientation.EAST)
- s = getClass().getName() + "=EAST";
- else if(this == Orientation.WEST)
- s = getClass().getName() + "=WEST";
- else if(this == Orientation.CENTER)
- s = getClass().getName() + "=CENTER";
- else if(this == Orientation.TOP)
- s = getClass().getName() + "=TOP";
- else if(this == Orientation.LEFT)
- s = getClass().getName() + "=LEFT";
- else if(this == Orientation.RIGHT)
- s = getClass().getName() + "=RIGHT";
- else if(this == Orientation.BOTTOM)
- s = getClass().getName() + "=BOTTOM";
- else if(this == Orientation.HORIZONTAL)
- s = getClass().getName() + "=HORIZONTAL";
- else if(this == Orientation.VERTICAL)
- s = getClass().getName() + "=VERTICAL";
- else if(this == Orientation.BAD)
- s = getClass().getName() + "=BAD";
-
- return s;
- }
- private Orientation() { } // Defeat instantiation
-}
diff --git a/java/gjt/ProgressDialog.java b/java/gjt/ProgressDialog.java
deleted file mode 100644
index de7d4be1674..00000000000
--- a/java/gjt/ProgressDialog.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A dialog that uses a bargauge to indicate progress made on a
- * task that presumably takes some time to complete.
- *
- * ProgressDialog implements the singleton pattern: clients
- * may only access the one and only ProgressDialog through the
- * static getProgressDialog() method.<p>
- *
- * <em>Note: The 1.0.2 version of the AWT has introduced a
- * bug that breaks the ProgressDialog under Motif - the
- * bargauge does not function. This worked fine in 1.0.1.<em>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see GJTDialog
- * @see Bargauge
- * @see gjt.test.DialogTest
- */
-public class ProgressDialog extends GJTDialog {
- static private ProgressDialog _theProgressDialog;
- static private int _preferredWidth = 400;
- static private int _preferredHeight = 75;
- static private Color _color;
- static private boolean _dialogUp;
-
- private Bargauge bargauge;
-
- static public ProgressDialog getProgressDialog(
- Frame frame,
- String title,
- Color color){
- if(_theProgressDialog == null)
- _theProgressDialog = new ProgressDialog(frame,
- title,
- color);
- else {
- _theProgressDialog.setTitle (title);
- _theProgressDialog.reset ();
- }
- return _theProgressDialog;
- }
- private ProgressDialog(Frame frame,
- String title,
- Color color) {
- super(frame, title, null, true);
- setLayout(new BorderLayout());
- add("Center", bargauge = new Bargauge(color));
- pack();
- }
- public void setPercentComplete(double percent) {
- bargauge.setFillPercent(percent);
- bargauge.fill();
-
- if(percent == 100)
- hide();
- }
- public void reset() {
- bargauge.setFillPercent(0);
- }
- public Dimension preferredSize() {
- return new Dimension(_preferredWidth, _preferredHeight);
- }
-}
diff --git a/java/gjt/QuestionDialog.java b/java/gjt/QuestionDialog.java
deleted file mode 100644
index 042b491e178..00000000000
--- a/java/gjt/QuestionDialog.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A dialog that presents a prompt and a TextField into which
- * a reply may be entered. Comes complete with an Ok button
- * and a Cancel button, whose uses will be left to the
- * imagination.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see GJTDialog
- * @see gjt.test.DialogTest
- */
-public class QuestionDialog extends GJTDialog {
- static private int _defaultTextFieldSize = 20;
- private Button okButton;
- private Button cancelButton;
- private String question;
- private TextField textField;
- private boolean wasCancelled;
- private ButtonPanel buttonPanel = new ButtonPanel();
-
- public QuestionDialog(Frame frame, DialogClient client,
- String title, String question,
- String initialResponse) {
- this(frame, client, title, question, initialResponse,
- _defaultTextFieldSize);
- }
- public QuestionDialog(Frame frame, DialogClient client,
- String title, String question) {
- this(frame, client, title,
- question, null, _defaultTextFieldSize);
- }
- public QuestionDialog(Frame frame, DialogClient client,
- String title, String question,
- int textFieldSize) {
- this(frame, client, title,
- question, null, textFieldSize);
- }
- public QuestionDialog(Frame frame, DialogClient client,
- String title, String question,
- String initialResponse,
- int textFieldSize) {
- super(frame, title, client, true);
-
- QuestionPanel questionPanel;
-
- okButton = buttonPanel.add("Ok");
- cancelButton = buttonPanel.add("Cancel");
-
- setLayout(new BorderLayout());
- add("North", questionPanel =
- new QuestionPanel(this, question,
- initialResponse, textFieldSize));
- add("South", buttonPanel);
- textField = questionPanel.getTextField();
- pack();
- }
- public boolean action(Event event, Object what) {
- if(event.target == cancelButton) wasCancelled = true;
- else wasCancelled = false;
-
- hide();
- dispose();
- client.dialogDismissed(this);
- return true;
- }
- public void show() {
- textField.requestFocus();
- super.show();
- }
- public void returnInTextField() {
- okButton.requestFocus();
- }
- public TextField getTextField() {
- return textField;
- }
- public String getAnswer() {
- return textField.getText();
- }
- public boolean wasCancelled() {
- return wasCancelled;
- }
- private void setQuestion(String question) {
- this.question = question;
- }
-}
-
-class QuestionPanel extends Panel {
- private TextField field;
- private QuestionDialog dialog;
-
- public QuestionPanel(QuestionDialog dialog,
- String question) {
- this(dialog, question, null, 0);
- }
- public QuestionPanel(QuestionDialog dialog, String question,
- int columns) {
- this(dialog, question, null, columns);
- }
- public QuestionPanel(QuestionDialog dialog, String question,
- String initialResponse, int cols) {
- this.dialog = dialog;
- setLayout(new RowLayout());
- add(new Label(question));
-
- if(initialResponse != null) {
- if(cols != 0)
- add(field=new TextField(initialResponse, cols));
- else
- add(field=new TextField(initialResponse));
- }
- else {
- if(cols != 0) add(field = new TextField(cols));
- else add(field = new TextField());
- }
- }
- public TextField getTextField() {
- return field;
- }
- public boolean action(Event event, Object what) {
- dialog.returnInTextField();
- return false;
- }
- public Insets insets() {
- return new Insets(10,10,10,10);
- }
-}
diff --git a/java/gjt/RadioImageButtonPanelController.java b/java/gjt/RadioImageButtonPanelController.java
deleted file mode 100644
index 8dc34d25bff..00000000000
--- a/java/gjt/RadioImageButtonPanelController.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * A controller for an ImageButtonPanel that ensures that only
- * one ImageButton in its associated ImageButtonPanel is
- * selected at a time.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButtonPanelController
- * @see ImageButton
- * @see ImageButtonPanel
- * @see gjt.test.ToolbarTest
- */
-class RadioImageButtonPanelController
- extends ImageButtonPanelController {
- ImageButton down;
-
- public RadioImageButtonPanelController(
- ImageButtonPanel panel) {
- super(panel);
- }
- public boolean mouseDown(Event event, int x, int y) {
- ImageButton button;
-
- if(event.target instanceof ImageButton) {
- button = (ImageButton)event.target;
- if(down == button) return false;
-
- if(down != null)
- down.paintRaised();
-
- down = button;
- }
- return false;
- }
- public boolean mouseUp(Event event, int x, int y) {
- return false;
- }
- public boolean mouseDrag(Event event, int x, int y) {
- return false;
- }
-}
diff --git a/java/gjt/RowLayout.java b/java/gjt/RowLayout.java
deleted file mode 100644
index eecd074c34f..00000000000
--- a/java/gjt/RowLayout.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * RowLayout lays out components in a row. At construction
- * time, both horizontal orientation and vertical orientation
- * may be specified, along with the gap to use between
- * components.<p>
- *
- * Horizontal orientation must be one of the following:
- * <dl>
- * <dd> LEFT
- * <dd> CENTER
- * <dd> RIGHT
- * </dl>
- *
- * Vertical orientation must be one of the following:
- * <dl>
- * <dd> TOP
- * <dd> CENTER
- * <dd> BOTTOM
- * </dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ColumnLayout
- * @see Orientation
- */
-public class RowLayout implements LayoutManager {
- static private int _defaultGap = 5;
-
- private int gap;
- private Orientation verticalOrientation;
- private Orientation horizontalOrientation;
-
- public RowLayout() {
- this(Orientation.CENTER,
- Orientation.CENTER, _defaultGap);
- }
- public RowLayout(int gap) {
- this(Orientation.CENTER, Orientation.CENTER, gap);
- }
- public RowLayout(Orientation horizontalOrient,
- Orientation verticalOrient) {
- this(horizontalOrient, verticalOrient, _defaultGap);
- }
- public RowLayout(Orientation horizontalOrient,
- Orientation verticalOrient, int gap) {
- Assert.notFalse(gap >= 0);
- Assert.notFalse(
- horizontalOrient == Orientation.LEFT ||
- horizontalOrient == Orientation.CENTER ||
- horizontalOrient == Orientation.RIGHT);
- Assert.notFalse(
- verticalOrient == Orientation.TOP ||
- verticalOrient == Orientation.CENTER ||
- verticalOrient == Orientation.BOTTOM);
-
- this.gap = gap;
- this.verticalOrientation = verticalOrient;
- this.horizontalOrientation = horizontalOrient;
- }
-
- public void addLayoutComponent(String name, Component comp) {
- }
- public void removeLayoutComponent(Component comp) {
- }
-
- public Dimension preferredLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.preferredSize();
-
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
-
- if(i > 0) dim.width += gap;
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
-
- return dim;
- }
- public Dimension minimumLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.minimumSize();
-
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
-
- if(i > 0) dim.width += gap;
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
-
- return dim;
- }
- public void layoutContainer(Container target) {
- Insets insets = target.insets();
- int ncomponents = target.countComponents();
- int top = 0;
- int left = insets.left;
- Dimension tps = target.preferredSize();
- Dimension targetSize = target.size();
- Component comp;
- Dimension ps;
-
- if(horizontalOrientation == Orientation.CENTER)
- left = left + (targetSize.width/2) - (tps.width/2);
- if(horizontalOrientation == Orientation.RIGHT)
- left = left + targetSize.width - tps.width;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- ps = comp.preferredSize();
-
- if(verticalOrientation == Orientation.CENTER)
- top = (targetSize.height/2) - (ps.height/2);
- else if(verticalOrientation == Orientation.TOP)
- top = insets.top;
- else if(
- verticalOrientation == Orientation.BOTTOM)
- top = targetSize.height -
- ps.height - insets.bottom;
-
- comp.reshape(left,top,ps.width,ps.height);
- left += ps.width + gap;
- }
- }
- }
-}
diff --git a/java/gjt/Scroller.java b/java/gjt/Scroller.java
deleted file mode 100644
index 61d6e5f55e5..00000000000
--- a/java/gjt/Scroller.java
+++ /dev/null
@@ -1,154 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Each Scroller contains a Panel (viewport) and two Scrollbars
- * (horizontal and vertical). Works in conjunction with a
- * ScrollerLayout, that lays out the viewport and two
- * scrollbars.<p>
- *
- * Subclasses must override:<p>
- * <dl>
- * <dd> abstract public void scrollTo(int x, int y)
- * <dd> abstract public Dimension getScrollAreaSize()
- * </dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ComponentScroller
- * @see ImageScroller
- * @see ScrollerLayout
- * @see gjt.test.ComponentScrollerTest
- * @see gjt.test.ImageScrollerTest
- */
-public abstract class Scroller extends Panel {
- protected Panel viewport;
- protected Scrollbar hbar, vbar;
-
- abstract public void scrollTo(int x, int y);
- abstract public Dimension getScrollAreaSize();
-
- public Scroller() {
- setLayout(new ScrollerLayout(this));
- add("Scroll", viewport = new Panel());
- add("East", vbar = new Scrollbar(Scrollbar.VERTICAL));
- add("South",hbar = new Scrollbar(Scrollbar.HORIZONTAL));
- }
- public Scrollbar getHorizontalScrollbar() {return hbar; }
- public Scrollbar getVerticalScrollbar () {return vbar; }
- public Panel getViewport () {return viewport;}
-
- public boolean handleEvent(Event event) {
- boolean handledEvent;
-
- switch(event.id) {
- case Event.SCROLL_LINE_UP: scrollLineUp(event);
- break;
- case Event.SCROLL_LINE_DOWN: scrollLineDown(event);
- break;
- case Event.SCROLL_PAGE_UP: scrollPageUp (event);
- break;
- case Event.SCROLL_PAGE_DOWN: scrollPageDown(event);
- break;
- case Event.SCROLL_ABSOLUTE: scrollAbsolute(event);
- break;
- }
- handledEvent = event.id == Event.SCROLL_LINE_UP ||
- event.id == Event.SCROLL_LINE_DOWN ||
- event.id == Event.SCROLL_PAGE_UP ||
- event.id == Event.SCROLL_PAGE_DOWN ||
- event.id == Event.SCROLL_ABSOLUTE;
-
- if(handledEvent) return true;
- else return super.handleEvent(event);
- }
- public void paint (Graphics g) { scroll(); }
- public void update(Graphics g) { paint(g); }
-
- public void manageScrollbars() {
- manageHorizontalScrollbar();
- manageVerticalScrollbar ();
- }
- protected void manageHorizontalScrollbar() {
- Dimension size = size();
- Dimension scrollAreaSize = getScrollAreaSize();
-
- if(vbar.isVisible())
- size.width -= vbar.size().width;
-
- if(scrollAreaSize.width > size.width) {
- if( ! hbar.isVisible())
- hbar.show();
- }
- else if(hbar.isVisible()) {
- hbar.hide();
- hbar.setValue(0);
- repaint();
- }
- }
- protected void manageVerticalScrollbar() {
- Dimension size = size();
- Dimension scrollAreaSize = getScrollAreaSize();
-
- if(hbar.isVisible())
- size.height -= hbar.size().height;
-
- if(scrollAreaSize.height > size.height) {
- if( ! vbar.isVisible())
- vbar.show();
- }
- else if(vbar.isVisible()) {
- vbar.hide();
- vbar.setValue(0);
- repaint();
- }
- }
- public void setScrollbarValues() {
- if(hbar.isVisible()) setHorizontalScrollbarValues();
- if(vbar.isVisible()) setVerticalScrollbarValues();
- }
- protected void setHorizontalScrollbarValues() {
- Dimension vsize = viewport.size();
- Dimension scrollAreaSize = getScrollAreaSize();
- int max = scrollAreaSize.width - vsize.width;
-
- hbar.setValues(hbar.getValue(), // value
- vsize.width, // amt visible/page
- 0, // minimum
- max); // maximum
-
- setHorizontalLineAndPageIncrements();
- }
- protected void setVerticalScrollbarValues() {
- Dimension vsize = viewport.size();
- Dimension scrollAreaSize = getScrollAreaSize();
- int max = scrollAreaSize.height - vsize.height;
-
- vbar.setValues(vbar.getValue(), // value
- vsize.height, // amt visible/page
- 0, // minimum
- max); // maximum
-
- setVerticalLineAndPageIncrements();
- }
- protected void scrollLineUp (Event event) { scroll(); }
- protected void scrollLineDown(Event event) { scroll(); }
- protected void scrollPageUp (Event event) { scroll(); }
- protected void scrollPageDown(Event event) { scroll(); }
- protected void scrollAbsolute(Event event) { scroll(); }
-
- protected void setHorizontalLineAndPageIncrements() {
- Dimension size = getScrollAreaSize();
- hbar.setLineIncrement(size.width/10);
- hbar.setPageIncrement(size.width/5);
- }
- protected void setVerticalLineAndPageIncrements() {
- Dimension size = getScrollAreaSize();
- vbar.setLineIncrement(size.height/10);
- vbar.setPageIncrement(size.height/5);
- }
- protected void scroll() {
- scrollTo(hbar.getValue(), vbar.getValue());
- }
-}
diff --git a/java/gjt/ScrollerLayout.java b/java/gjt/ScrollerLayout.java
deleted file mode 100644
index 21012fd5688..00000000000
--- a/java/gjt/ScrollerLayout.java
+++ /dev/null
@@ -1,160 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Layout manager for a Scroller.<p>
- *
- * Lays out 3 Components: a horizontal scrollbar, a vertical
- * scrollbar and a viewport (Panel).<p>
- *
- * Valid names/Component pairs that can be added via
- * addLayoutComponent(String, Component):<p>
- * <dl>
- * <dd> "East" Scrollbar (vertical)
- * <dd> "West" Scrollbar (vertical)
- * <dd> "North" Scrollbar (horizontal)
- * <dd> "South" Scrollbar (horizontal)
- * <dd> "Scroll" Panel (viewport)
- * </dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Scroller
- */
-public class ScrollerLayout implements LayoutManager {
- private Scroller scroller;
- private Scrollbar hbar, vbar;
- private String hbarPosition, vbarPosition;
- private Component viewport;
- private int top, bottom, right, left;
-
- public ScrollerLayout(Scroller scroller) {
- this.scroller = scroller;
- }
-
- public void addLayoutComponent(String name,
- Component comp) {
- Assert.notFalse(comp != null);
-
- if(comp instanceof Scrollbar) {
- Scrollbar sbar = (Scrollbar)comp;
-
- if(sbar.getOrientation() == Scrollbar.VERTICAL) {
- Assert.notFalse("East".equals(name) == true ||
- "West".equals(name) == true);
- vbar = sbar;
- vbarPosition = name;
- }
- else {
- Assert.notFalse("North".equals(name) == true ||
- "South".equals(name) == true);
- hbar = sbar;
- hbarPosition = name;
- }
- }
- else {
- Assert.notFalse("Scroll".equals(name) == true);
- viewport = comp;
- }
- }
- public void removeLayoutComponent(Component comp) {
- if(comp == vbar) vbar = null;
- if(comp == hbar) hbar = null;
- if(comp == viewport) viewport = null;
- }
- public Dimension preferredLayoutSize(Container parent) {
- Dimension dim = new Dimension(0,0);
-
- if(vbar != null && vbar.isVisible()) {
- Dimension d = vbar.preferredSize();
- dim.width += d.width;
- dim.height = d.height;
- }
- if(hbar != null && hbar.isVisible()) {
- Dimension d = hbar.preferredSize();
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
- }
- if(viewport != null && viewport.isVisible()) {
- Dimension d = viewport.preferredSize();
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
- }
- return dim;
- }
- public Dimension minimumLayoutSize(Container parent) {
- Dimension dim = new Dimension(0,0);
-
- if(vbar != null && vbar.isVisible()) {
- Dimension d = vbar.minimumSize();
- dim.width += d.width;
- dim.height = d.height;
- }
- if(hbar != null && hbar.isVisible()) {
- Dimension d = hbar.minimumSize();
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
- }
- if(viewport != null && viewport.isVisible()) {
- Dimension d = viewport.minimumSize();
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
- }
- return dim;
- }
- public void layoutContainer(Container target) {
- Insets insets = target.insets();
- Dimension targetSize = target.size();
-
- top = insets.top;
- bottom = targetSize.height - insets.bottom;
- left = insets.left;
- right = targetSize.width - insets.right;
-
- scroller.manageScrollbars();
-
- reshapeHorizontalScrollbar();
- reshapeVerticalScrollbar ();
- reshapeViewport ();
-
- scroller.setScrollbarValues();
- }
- private void reshapeHorizontalScrollbar() {
- if(hbar != null && hbar.isVisible()) {
- if("North".equals(hbarPosition)) {
- Dimension d = hbar.preferredSize();
- hbar.reshape(left, top, right - left, d.height);
- top += d.height;
- }
- else { // South
- Dimension d = hbar.preferredSize();
- hbar.reshape(left, bottom - d.height,
- right - left,d.height);
- bottom -= d.height;
- }
- }
- }
- private void reshapeVerticalScrollbar() {
- if(hbar != null && vbar.isVisible()) {
- if("East".equals(vbarPosition)) {
- Dimension d = vbar.preferredSize();
- vbar.reshape(right - d.width, top,
- d.width, bottom - top);
- right -= d.width;
- }
- else { // West
- Dimension d = vbar.preferredSize();
- vbar.reshape(left, top,
- d.width, bottom - top);
- left += d.width;
- }
- }
- }
- private void reshapeViewport() {
- if(viewport != null && viewport.isVisible()) {
- viewport.reshape(left, top,
- right - left, bottom - top);
- }
- }
-}
diff --git a/java/gjt/SelectionEvent.java b/java/gjt/SelectionEvent.java
deleted file mode 100644
index 4bcab59cd0a..00000000000
--- a/java/gjt/SelectionEvent.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * An extension of java.awt.Event, specifically designed for
- * selection events.<p>
- *
- * SelectionEvents are constructed with arguments:<p>
- * <dl>
- * <dd> The AWT event that triggered the image button event
- * <dd> The id of the event.
- * </dl>
- *
- * An SelectionEvent's id (the constructor's 3rd argument),
- * must be one of the following:<p>
- * <dl>
- * <dd> SelectionEvent.SELECT
- * <dd> SelectionEvent.DESELECT
- * </dl>
- *
- * SelectionEvent has only a constructor and a paramString()
- * method. Containers that contain objects which are capable
- * of generating SelectionEvents should check the events
- * like so:
- *
- * <pre>
- * // handleEvent(Event) method of a container that
- * // contain objects that generate SelectionEvents
- *
- * public boolean handleEvent(Event event) {
- * if(event instanceof SelectionEvent) {
- * SelectionEvent sevent =
- * (SelectionEvent)event;
- *
- * if(sevent.isSelected()) {
- * // do something for selection
- * }
- * else {
- * // do something for deselection
- * }
- * }
- * }
- * </pre>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see LabelCanvas
- * @see ImageButtonEvent
- * @see gjt.test.LabelCanvasTest
- */
-public class SelectionEvent extends Event {
- public static final int SELECT = 1;
- public static final int DESELECT = 2;
-
- private int eventType;
-
- public SelectionEvent(Object target,
- Event event,
- int type) {
- super(target, event.when, event.id, event.x, event.y,
- event.key, event.modifiers, event.arg);
-
- Assert.notFalse(type == SELECT || type == DESELECT);
-
- eventType = type;
- id = -1;
- }
- public boolean isSelected() {
- return eventType == SELECT;
- }
- protected String paramString() {
- String typeString = new String();
-
- if(eventType == SelectionEvent.SELECT)
- typeString = "SELECT";
- else if(eventType == SelectionEvent.DESELECT)
- typeString = "DESELECT";
-
- return super.paramString() + typeString;
- }
-}
diff --git a/java/gjt/Separator.java b/java/gjt/Separator.java
deleted file mode 100644
index 6bd610e1ad9..00000000000
--- a/java/gjt/Separator.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A separator that is drawn either vertically or horizontally
- * depending upon how it is laid out. Can be drawn either
- * etched-in or etched-out, with varying thicknesses. Both
- * thickness and etching are settable at construction time
- * only.<p>
- *
- * Default thickness is 2 pixels and default etching is
- * Etching.IN. Note that thicknesses greater than 4 loose the
- * etching effect.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Etching
- * @see gjt.test.SeparatorTest
- */
-public class Separator extends Canvas {
- static private Etching _defaultEtching = Etching.IN;
- static private int _defaultThickness = 2;
-
- private Etching etching;
- private int thickness;
-
- public Separator() {
- this(_defaultThickness, _defaultEtching);
- }
- public Separator(int thickness) {
- this(thickness, _defaultEtching);
- }
- public Separator(Etching etching) {
- this(_defaultThickness, etching);
- }
- public Separator(int thickness, Etching etching) {
- this.etching = etching;
- this.thickness = thickness;
- resize(thickness, thickness);
- }
- public Dimension minimumSize() {
- return preferredSize();
- }
- public Dimension preferredSize() {
- return new Dimension(thickness, thickness);
- }
- public void paint(Graphics g) {
- Dimension size = size();
- Color brighter = getBackground().brighter().brighter();
- Color darker = getBackground().darker().darker();
-
- if(etching == Etching.IN) {
- if(size.width > size.height)
- paintHorizontal(g, size, darker, brighter);
- else
- paintVertical(g, size, darker, brighter);
- }
- else {
- if(size.width > size.height)
- paintHorizontal(g, size, brighter, darker);
- else
- paintVertical(g, size, brighter, darker);
- }
- }
- public String paramString() {
- Dimension size = size();
- Orientation orient = size.width > size.height ?
- Orientation.HORIZONTAL :
- Orientation.VERTICAL;
- return super.paramString() + "thickness=" +
- thickness + "," + etching + "," + orient;
- }
- private void paintHorizontal(Graphics g, Dimension size,
- Color top, Color bottom) {
- g.setColor(top);
- g.fillRect(0, (size.height/2) - (thickness/2),
- size.width, thickness/2);
- g.setColor(bottom);
- g.fillRect(0, size.height/2, size.width, thickness/2);
- }
- private void paintVertical(Graphics g, Dimension size,
- Color left, Color right) {
- g.setColor(left);
- g.fillRect((size.width/2) - (thickness/2),
- 0, thickness/2, size.height);
- g.setColor(right);
- g.fillRect(size.width/2, 0, thickness/2, size.height);
- }
-}
diff --git a/java/gjt/SpringyImageButtonController.java b/java/gjt/SpringyImageButtonController.java
deleted file mode 100644
index 3559e040459..00000000000
--- a/java/gjt/SpringyImageButtonController.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-import java.awt.Graphics;
-
-/**
- * An ImageButtonController that reacts to mouseDown/mouseUp
- * events exactly as a java.awt.Button does.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonController
- * @see StickyImageButtonController
- */
-public class SpringyImageButtonController
- extends ImageButtonController {
- public SpringyImageButtonController(ImageButton ib) {
- super(ib);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(event.modifiers == 0) {
- getButton().paintInset();
- armButton(event);
- }
- return false;
- }
- public boolean mouseUp(Event event, int x, int y) {
- if(event.modifiers == 0) {
- if(getButton().isRaised() == false) {
- getButton().paintRaised();
- activateButton(event);
- }
- }
- return false;
- }
- public boolean mouseDrag(Event event, int x, int y) {
- if(event.modifiers == 0) {
- if(getButton().isInside(x,y)) {
- if(getButton().isRaised()) {
- getButton().paintInset();
- armButton(event);
- }
- }
- else {
- if(getButton().isRaised() == false) {
- getButton().paintRaised();
- disarmButton(event);
- }
- }
- }
- return false;
- }
-}
diff --git a/java/gjt/StateButton.java b/java/gjt/StateButton.java
deleted file mode 100644
index 6de20a76f98..00000000000
--- a/java/gjt/StateButton.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package gjt;
-
-import java.awt.Image;
-
-/**
- * An ImageButton that cycles through a series of images. The
- * image advances to the next image in the series every time
- * the button is activated.<p>
- *
- * Note that the cycling is actually performed by the buttons'
- * controller - a StateButtonController.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see StateButtonController
- * @see gjt.test.StateButtonTest
- */
-public class StateButton extends ImageButton {
- private Image[] images;
- private int state = 0;
- private int numStates;
-
- public StateButton(Image[] images) {
- super(images[0]);
-
- this.images = images;
- numStates = images.length;
- setController(new StateButtonController(this));
- waitForImages();
- }
- public Image nextImage() {
- if(state + 1 < numStates) state++;
- else state = 0;
-
- return images[state];
- }
- public int state() {
- return state;
- }
- private void waitForImages() {
- for(int i=0; i < images.length; ++i)
- Util.waitForImage(this, images[i]);
- }
-}
diff --git a/java/gjt/StateButtonController.java b/java/gjt/StateButtonController.java
deleted file mode 100644
index d6fc83830a6..00000000000
--- a/java/gjt/StateButtonController.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * A controller for a StateButton, that cycles through a
- * series of images which reside in the StateButton class.
- * Each time a mouse up is detected in the StateButton, the
- * buttons image is set to the next image in the array.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see StateButton
- * @see SpringyImageButtonController
- * @see gjt.test.StateButtonTest
- */
-class StateButtonController extends SpringyImageButtonController {
- public StateButtonController(StateButton button) {
- super(button);
- }
- public boolean mouseUp(Event event, int x, int y) {
- StateButton button = (StateButton)getButton();
- button.setImage(button.nextImage());
- activateButton(event);
- return super.mouseUp(event, x, y);
- }
-}
diff --git a/java/gjt/StickyImageButtonController.java b/java/gjt/StickyImageButtonController.java
deleted file mode 100644
index c459e5cdae1..00000000000
--- a/java/gjt/StickyImageButtonController.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-import java.awt.Graphics;
-
-/**
- * An ImageButtonController that causes its associated
- * ImageButton to "stick" when activated. If the ImageButton
- * is raised it depresses<b>[1]</b> upon a mouse down and stays
- * down upon a subsequent mouse up event. The same "sticky"
- * behaviour occurs when a depressed ImageButton encounters a
- * mouse down followed by a subsequent mouse up.<p>
- *
- * Note that false is returned from mouse event handlers;
- * therefore mouse events will be propagated to the
- * ImageButton's container. While this is not always
- * desirable, it was deemed a better default than swallowing
- * the event here. Subclasses may, of course, modify this
- * behavior.<p>
- *
- * <b>[1]</b> No psychiatric consultation is necessary.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonController
- * @see SpringyImageButtonController
- */
-public class StickyImageButtonController
- extends ImageButtonController {
- private boolean buttonUpOnLastMouseDown = true;
-
- public StickyImageButtonController(ImageButton ib) {
- super(ib);
- }
- public boolean mouseDown(Event event, int x, int y) {
- ImageButton button = getButton();
-
- if(event.modifiers == 0) {
- if(button.isRaised()) button.paintInset();
- else button.paintRaised();
-
- buttonUpOnLastMouseDown = getButton().isRaised();
- armButton(event);
- }
- return false;
- }
- public boolean mouseUp(Event event, int x, int y) {
- activateButton(event);
- return false;
- }
- public boolean mouseDrag(Event event, int x, int y) {
- ImageButton button = getButton();
-
- if(event.modifiers == 0) {
- if(button.isInside(x,y)) {
- if(buttonUpOnLastMouseDown) {
- if(button.isRaised() == false) {
- button.paintRaised();
- armButton(event);
- }
- }
- else {
- if(button.isRaised()) {
- button.paintInset();
- armButton(event);
- }
- }
- }
- else {
- if(buttonUpOnLastMouseDown) {
- if(button.isRaised()) {
- button.paintInset();
- disarmButton(event);
- }
- }
- else {
- if(button.isRaised() == false) {
- button.paintRaised();
- disarmButton(event);
- }
- }
- }
- }
- return false;
- }
-}
diff --git a/java/gjt/Stopwatch.java b/java/gjt/Stopwatch.java
deleted file mode 100644
index fc8963e88a1..00000000000
--- a/java/gjt/Stopwatch.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A Thread that acts as a stopwatch.<p>
- *
- * Stopwatch starts running when it is constructed, and may be
- * reset by the reset() method. getHour(), getMinute(),
- * getSecond(), and getMillisecond() are used to get the
- * elapsed time since construction, or since the last reset.<p>
- *
- * toString() returns the elapsed time in the form of
- * HH:MM:SS:mm, where HH == hours, MM == minutes, SS == seconds
- * and mm == milliseconds.<p>
- *
- * Each Stopwatch may have a StopwatchClient associated with it.
- * If the StopwatchClient is non-null, the StopwatchClients'
- * tick() method is invoked every 50 milliseconds.<p>
- *
- * @version 1.0, Apr 21 1996
- * @author David Geary
- * @see StopwatchClient
- * @see gjt.animation.Sequence
- * @see gjt.animation.Sprite
- */
-public class Stopwatch extends Thread {
- private StopwatchClient client;
- private long start, now, elapsed;
- private long hour, minute, second, millisecond;
-
- public Stopwatch() {
- this(null);
- }
- public Stopwatch(StopwatchClient client) {
- start = System.currentTimeMillis();
- this.client = client;
- }
- public void update() {
- now = System.currentTimeMillis();
- elapsed = now - start;
- hour = minute = second = millisecond = 0;
-
- second = elapsed / 1000;
- millisecond = elapsed % 1000;
- millisecond = (millisecond == 0) ? 0 : millisecond/10;
-
- if(second > 59) {
- minute = second / 60;
- second = second - (minute*60);
- }
- if(minute > 59) {
- hour = minute / 60;
- minute = minute - (hour*60);
- }
- }
- public String toString() {
- update();
- return new String(stringValueOf(hour) + ":" +
- stringValueOf(minute) + ":" +
- stringValueOf(second) + ":" +
- stringValueOf(millisecond));
- }
- public long getHour () { return hour; }
- public long getMinute () { return minute; }
- public long getSecond () { return second; }
- public long getMillisecond () { return millisecond; }
-
- public long elapsedTime() {
- update();
- return elapsed;
- }
- public void reset() {
- start = System.currentTimeMillis();
- }
- public void run() {
- while(true) {
- try {
- Thread.currentThread().sleep(50, 0);
- update();
- if(client != null)
- client.tick();
- }
- catch(InterruptedException e) {
- Assert.notFalse(false);
- }
- }
- }
- private String stringValueOf(long l) {
- if(l < 10) return "0" + String.valueOf(l);
- else return String.valueOf(l);
-
- }
-}
diff --git a/java/gjt/StopwatchClient.java b/java/gjt/StopwatchClient.java
deleted file mode 100644
index c2eb5fb0460..00000000000
--- a/java/gjt/StopwatchClient.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package gjt;
-
-/**
- * Client of a Stopwatch. Stopwatches that have non-null
- * clients, call their clients' tick() method every 50
- * milliseconds.<p>
- *
- * @version 1.0, Apr 21 1996
- * @author David Geary
- * @see Stopwatch
- */
-public interface StopwatchClient {
- public void tick();
-}
diff --git a/java/gjt/ThreeDBorder.java b/java/gjt/ThreeDBorder.java
deleted file mode 100644
index 0441fdf3052..00000000000
--- a/java/gjt/ThreeDBorder.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Extension of Border that draws a 3D border.
- *
- * Drawn raised by default, drawing style used by paint() is
- * controlled by raise() and inset(). Note that raise() and
- * inset() do not result in anything being painted, but only set
- * the state for the next call to paint(). To set the state and
- * paint in one operation, use paintRaised() and paintInset().
- * <p>
- *
- * The current state of the border may be obtained by calling
- * isRaised().<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Border
- * @see EtchedRectangle
- * @see gjt.test.BorderTest
- */
-public class ThreeDBorder extends Border {
- public ThreeDBorder(Component borderMe) {
- this(borderMe, _defaultThickness, _defaultGap);
- }
- public ThreeDBorder(Component borderMe,
- int borderThickness) {
- this(borderMe, borderThickness, _defaultGap);
- }
- public ThreeDBorder(Component borderMe,
- int borderThickness, int gap) {
- super(borderMe, borderThickness, gap);
- }
- public void inset() { ((ThreeDRectangle)border()).inset(); }
- public void raise() { ((ThreeDRectangle)border()).raise(); }
-
- public void paintRaised() {
- ((ThreeDRectangle)border()).paintRaised();
- }
- public void paintInset() {
- ((ThreeDRectangle)border()).paintInset ();
- }
- public boolean isRaised() {
- return ((ThreeDRectangle)border()).isRaised();
- }
- protected DrawnRectangle border() {
- if(border == null)
- border = new ThreeDRectangle(this, thickness);
- return border;
- }
-}
diff --git a/java/gjt/ThreeDBorderStyle.java b/java/gjt/ThreeDBorderStyle.java
deleted file mode 100644
index b0e1b7d8ab8..00000000000
--- a/java/gjt/ThreeDBorderStyle.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package gjt;
-
-/**
- * Constants for 3D border styles.
- *
- * This class may not be instantiated.
- *
- * @version 1.0, Apr 11 1996
- * @author David Geary
- */
-public class ThreeDBorderStyle {
- public static final ThreeDBorderStyle RAISED =
- new ThreeDBorderStyle();
- public static final ThreeDBorderStyle INSET =
- new ThreeDBorderStyle();
-
- public String toString() {
- if(this == ThreeDBorderStyle.RAISED)
- return getClass().getName() + "=RAISED";
- else
- return getClass().getName() + "=INSET";
- }
- private ThreeDBorderStyle() { } // defeat instantiation
-}
diff --git a/java/gjt/ThreeDRectangle.java b/java/gjt/ThreeDRectangle.java
deleted file mode 100644
index 647129190c5..00000000000
--- a/java/gjt/ThreeDRectangle.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A DrawnRectangle which draws in 3D.<p>
- *
- * Drawn raised by default, drawing style used by paint() is
- * controlled by raise() and inset(). Note that raise() and
- * inset() do not result in anything being painted, but only set
- * the state for the next call to paint(). To set the state and
- * paint in one operation, use paintRaised() and paintInset().
- * <p>
- *
- * The current state of the rectangle may be obtained by
- * calling isRaised().<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see DrawnRectangle
- * @see EtchedRectangle
- * @see gjt.test.DrawnRectangleTest
- */
-public class ThreeDRectangle extends DrawnRectangle {
- protected static ThreeDBorderStyle
- _defaultState = ThreeDBorderStyle.RAISED;
-
- private ThreeDBorderStyle state;
-
- public ThreeDRectangle(Component drawInto) {
- this(drawInto, _defaultState,
- _defaultThickness, 0, 0, 0, 0);
- }
- public ThreeDRectangle(Component drawInto, int thickness) {
- this(drawInto, _defaultState, thickness, 0, 0, 0, 0);
- }
- public ThreeDRectangle(Component drawInto,
- int x, int y, int w, int h) {
- this(drawInto,
- _defaultState, _defaultThickness, x, y, w, h);
- }
- public ThreeDRectangle(Component drawInto, int thickness,
- int x, int y,
- int w, int h) {
- this(drawInto, _defaultState, thickness, x, y, w, h);
- }
- public ThreeDRectangle(Component drawInto,
- ThreeDBorderStyle state,
- int thickness, int x, int y,
- int w, int h) {
- super(drawInto, thickness, x, y, w, h);
- this.state = state;
- }
- public void paint() {
- if(state == ThreeDBorderStyle.RAISED) paintRaised();
- else paintInset ();
- }
- public void raise() { state = ThreeDBorderStyle.RAISED; }
- public void inset() { state = ThreeDBorderStyle.INSET; }
-
- public boolean isRaised() {
- return state == ThreeDBorderStyle.RAISED;
- }
- public String paramString() {
- return super.paramString() + "," + state;
- }
- public void paintRaised() {
- Graphics g = drawInto.getGraphics();
-
- if(g != null) {
- raise ();
- drawTopLeftLines (g, brighter());
- drawBottomRightLines(g, getLineColor());
- }
- }
- public void paintInset() {
- Graphics g = drawInto.getGraphics();
-
- if(g != null) {
- inset ();
- drawTopLeftLines (g, getLineColor());
- drawBottomRightLines(g, brighter());
- }
- }
- private void drawTopLeftLines(Graphics g, Color color) {
- int thick = getThickness();
- g.setColor(color);
-
- for(int i=0; i < thick; ++i) {
- g.drawLine(x+i, y+i, x + width-(i+1), y+i);
- g.drawLine(x+i, y+i+1, x+i, y + height-(i+1));
- }
- }
- private void drawBottomRightLines(Graphics g, Color color) {
- int thick = getThickness();
- g.setColor(color);
-
- for(int i=1; i <= thick; ++i) {
- g.drawLine(x+i-1, y + height-i,
- x + width-i, y + height-i);
- g.drawLine(x + width-i, y+i-1,
- x + width-i, y + height-i);
- }
- }
-}
diff --git a/java/gjt/Toolbar.java b/java/gjt/Toolbar.java
deleted file mode 100644
index 4d6ebddc217..00000000000
--- a/java/gjt/Toolbar.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A toolbar containing image buttons which are laid out to the
- * north of (horizontal) separator.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonPanel
- * @see gjt.test.ToolbarTest
- */
-public class Toolbar extends Panel {
- static private int _defaultGap = 0;
- static private int _defaultLeftInset = 0;
-
- private ToolbarButtonPanel buttonPanel;
-
- public Toolbar() {
- this(_defaultLeftInset, _defaultGap);
- }
- public Toolbar(int leftInset, int gap) {
- buttonPanel = new ToolbarButtonPanel(leftInset, gap);
-
- setLayout(new BorderLayout());
- add ("North", buttonPanel);
- add ("South", new Separator());
- }
- public ImageButton add(Image image) {
- return buttonPanel.add(image);
- }
- public void add(ImageButton button) {
- buttonPanel.add(button);
- }
- public void addSpacer(int sizeInPixels) {
- Assert.notFalse(sizeInPixels > 0);
- buttonPanel.addSpacer(sizeInPixels);
- }
-}
-
-class ToolbarButtonPanel extends ImageButtonPanel {
- private int leftInset;
-
- public ToolbarButtonPanel(int leftInset, int gap) {
- super(Orientation.HORIZONTAL,
- Orientation.LEFT,
- Orientation.CENTER,
- gap);
-
- this.leftInset = leftInset;
- setController(null);
- }
- public Insets insets() {
- return new Insets(5,leftInset,5,5);
- }
-}
diff --git a/java/gjt/Util.java b/java/gjt/Util.java
deleted file mode 100644
index 0970a6fd488..00000000000
--- a/java/gjt/Util.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package gjt;
-
-import java.applet.Applet;
-import java.awt.*;
-
-/**
- * A handy collection of methods for getting a component's
- * frame, getting a component's applet, waiting for a
- * component's image, and wallpapering a components background.
- * <p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- */
-public class Util {
- public static Frame getFrame(Component component) {
- Component c = component;
-
- if(c instanceof Frame)
- return (Frame)c;
-
- while((c = c.getParent()) != null) {
- if(c instanceof Frame)
- return (Frame)c;
- }
- return null;
- }
- public static Applet getApplet(Component component) {
- Component c = component;
-
- if(c instanceof Applet)
- return (Applet)c;
-
- while((c = c.getParent()) != null) {
- if(c instanceof Applet)
- return (Applet)c;
- }
- return null;
- }
- public static void waitForImage(Component component,
- Image image) {
- MediaTracker tracker = new MediaTracker(component);
- try {
- tracker.addImage(image, 0);
- tracker.waitForID(0);
- }
- catch(InterruptedException e) { Assert.notNull(null); }
- }
- public static void wallPaper(Component component,
- Graphics g,
- Image image) {
- Dimension compsize = component.size();
- Util.waitForImage(component, image);
-
- int patchW = image.getWidth(component);
- int patchH = image.getHeight(component);
-
- Assert.notFalse(patchW != -1 && patchH != -1);
-
- for(int r=0; r < compsize.width; r += patchW) {
- for(int c=0; c < compsize.height; c += patchH)
- g.drawImage(image, r, c, component);
- }
- }
- public static void setCursor(int cursor,
- Component component) {
- getFrame(component).setCursor(cursor);
- }
-}
diff --git a/java/gjt/YesNoDialog.java b/java/gjt/YesNoDialog.java
deleted file mode 100644
index 2db64ea6e4b..00000000000
--- a/java/gjt/YesNoDialog.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Similar in fuction to the MessageDialog, YesNoDialog poses
- * a question, that is answered by selection of either a Yes
- * button or a No button.<p>
- *
- * Note that the YesNoDialog is a singleton - meaning there is
- * only one YesNoDialog in existence per applet. Clients
- * may obtain the YesNoDialog by invoking getYesNoDialog().<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see GJTDialog
- * @see MessageDialog
- * @see gjt.test.DialogTest
- */
-public class YesNoDialog extends GJTDialog {
- static private YesNoDialog _theYesNoDialog;
- private Button yesButton;
- private Button noButton;
- private String message;
- private boolean answer = false;
- private ButtonPanel buttonPanel = new ButtonPanel();
-
- static public YesNoDialog getYesNoDialog( Frame frame,
- DialogClient client,
- String title,
- String message) {
- if(_theYesNoDialog == null)
- _theYesNoDialog = new YesNoDialog(frame,client,
- title,message);
- else {
- _theYesNoDialog.setClient (client);
- _theYesNoDialog.setTitle (title);
- _theYesNoDialog.setMessage(message);
- }
- return _theYesNoDialog;
- }
- private YesNoDialog(Frame frame, DialogClient client,
- String title, String message) {
- super(frame, title, client, true);
- yesButton = buttonPanel.add("Yes");
- noButton = buttonPanel.add("No");
-
- setLayout(new BorderLayout());
- add("Center", new YesNoPanel(message));
- add("South", buttonPanel);
- pack();
- }
- public void show() {
- yesButton.requestFocus();
- super.show();
- }
- public boolean answeredYes() {
- return answer;
- }
- public boolean action(Event event, Object what) {
- if(event.target == yesButton) answer = true;
- else answer = false;
-
- hide();
- client.dialogDismissed(this);
- return true;
- }
- private void setMessage(String message) {
- this.message = message;
- }
-}
-
-class YesNoPanel extends Panel {
- public YesNoPanel(String question) {
- add("Center", new Label(question, Label.CENTER));
- }
- public Insets insets() {
- return new Insets(10,10,10,10);
- }
-}
diff --git a/java/gjt/animation/CollisionArena.java b/java/gjt/animation/CollisionArena.java
deleted file mode 100644
index defb1a6d86b..00000000000
--- a/java/gjt/animation/CollisionArena.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package gjt.animation;
-
-import java.awt.Dimension;
-import java.awt.Insets;
-import java.util.Vector;
-import gjt.Orientation;
-
-/**
- * A CollisionArena is defined as an arena in which collisions
- * may take place.<p>
- *
- * CollisionArenas must be able to report their size and
- * insets, and return a Vector of the Sprites contained in the
- * arena.<p>
- *
- * CollisionArenas must also implement two methods for handling
- * sprite and edge collisions, respectively.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Playfield
- * @see CollisionDetector
- * @see EdgeCollisionDetector
- * @see SpriteCollisionDetector
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public interface CollisionArena {
- abstract public Vector getSprites();
- abstract public Dimension getSize ();
- abstract public Insets getInsets ();
-
- abstract public void spriteCollision(Sprite sprite,
- Sprite other);
-
- abstract public void edgeCollision(Sprite sprite,
- Orientation orient);
-}
diff --git a/java/gjt/animation/CollisionDetector.java b/java/gjt/animation/CollisionDetector.java
deleted file mode 100644
index ff05f16c6d3..00000000000
--- a/java/gjt/animation/CollisionDetector.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package gjt.animation;
-
-/**
- * Collision detectors detect collisions that take place within
- * a CollisionArena.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CollisionArena
- * @see EdgeCollisionDetector
- * @see SpriteCollisionDetector
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-abstract public class CollisionDetector {
- protected CollisionArena arena;
-
- abstract public void detectCollisions();
-
- public CollisionDetector(CollisionArena arena) {
- this.arena = arena;
- }
-}
diff --git a/java/gjt/animation/EdgeCollisionDetector.java b/java/gjt/animation/EdgeCollisionDetector.java
deleted file mode 100644
index 8624b7c2f28..00000000000
--- a/java/gjt/animation/EdgeCollisionDetector.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package gjt.animation;
-
-import java.awt.*;
-import java.util.Enumeration;
-import java.util.Vector;
-import gjt.Orientation;
-
-/**
- * A CollisionDetector that detects collisions between Sprites
- * and the edges of the CollisionArena in which they reside.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CollisionDetector
- * @see Sprite
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public class EdgeCollisionDetector extends CollisionDetector {
- public EdgeCollisionDetector(CollisionArena arena) {
- super(arena);
- }
- public void detectCollisions() {
- Enumeration sprites = arena.getSprites().elements();
- Dimension arenaSize = arena.getSize();
- Insets arenaInsets = arena.getInsets();
- Sprite sprite;
-
- while(sprites.hasMoreElements()) {
- sprite = (Sprite)sprites.nextElement();
-
- Point nl = sprite.nextLocation ();
- Point mv = sprite.getMoveVector();
- int nextRightEdge = nl.x + sprite.width();
- int nextBottomEdge = nl.y + sprite.height();
- int arenaBottomEdge = arenaSize.height -
- arenaInsets.bottom;
- int arenaRightEdge = arenaSize.width -
- arenaInsets.right;
-
- if(nextRightEdge > arenaRightEdge)
- arena.edgeCollision(sprite, Orientation.LEFT);
- else if(nl.x < arenaInsets.left)
- arena.edgeCollision(sprite, Orientation.RIGHT);
-
- if(nextBottomEdge > arenaBottomEdge)
- arena.edgeCollision(sprite, Orientation.BOTTOM);
- else if(nl.y < arenaInsets.top)
- arena.edgeCollision(sprite, Orientation.TOP);
- }
- }
-}
diff --git a/java/gjt/animation/Playfield.java b/java/gjt/animation/Playfield.java
deleted file mode 100644
index 386c0fb24c4..00000000000
--- a/java/gjt/animation/Playfield.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package gjt.animation;
-
-import java.awt.*;
-import java.util.Enumeration;
-import java.util.Vector;
-import gjt.Util;
-
-/**
- * A surface upon which Sprites are animated. Playfields are
- * responsible for animating the sprites.<p>
- *
- * Each Playfield comes complete with two collision detectors:
- * an edge collision detector and a sprite collision detector.
- *
- * Playfield is an abstract class: extensions must implement
- * the following methods:
- * <dl>
- * <dd> void paintBackground(Graphics)
- * <dd> void void spriteCollision(Sprite sprite, Sprite other)
- * <dd> void void edgeCollision (Sprite sprite, Sprite other)
- * </dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CollisionArena
- * @see Sprite
- * @see SpriteCollisionDetector
- * @see EdgeCollisionDetector
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public abstract class Playfield extends Canvas
- implements Runnable,
- CollisionArena {
- protected Vector sprites = new Vector();
- private boolean running = false;
- private Insets insets = new Insets(0,0,0,0);
-
- private Thread animationThread;
- private Image bgoffscreen,
- workplaceBuffer;
- private Dimension offscreenSize;
- private EdgeCollisionDetector edgeCollisionDetector;
- private SpriteCollisionDetector spriteCollisionDetector;
-
- abstract public void paintBackground(Graphics g);
-
- public Playfield() {
- edgeCollisionDetector =
- new EdgeCollisionDetector(this);
- spriteCollisionDetector =
- new SpriteCollisionDetector(this);
- }
- public void stop () { running = false; }
- public boolean running () { return running; }
- public Dimension getSize () { return size(); }
- public Insets getInsets () { return insets; }
- public Vector getSprites() { return sprites; }
-
- public void addSprite(Sprite sprite) {
- sprites.addElement(sprite);
- }
- public void setInsets(Insets insets) {
- this.insets = insets;
- }
- public void start() {
- animationThread = new Thread(this);
- running = true;
- animationThread.start();
- }
- public void paint(Graphics g) {
- if(needNewOffscreenBuffer()) {
- workplaceBuffer = createOffscreenImage(size());
- bgoffscreen = createOffscreenImage(size());
- paintBackground(bgoffscreen.getGraphics());
- }
- g.drawImage(bgoffscreen, 0, 0, this);
- paintSprites();
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x,y,w,h);
- repaint();
- }
- public void run() {
- while(running == true) {
- edgeCollisionDetector.detectCollisions ();
- spriteCollisionDetector.detectCollisions();
-
- animateSprites();
- Thread.currentThread().yield();
- }
- animationThread = null;
- }
- private boolean needNewOffscreenBuffer() {
- return (workplaceBuffer == null ||
- bgoffscreen == null ||
- size().width != offscreenSize.width ||
- size().height != offscreenSize.height);
- }
- private Image createOffscreenImage(Dimension size) {
- Image image = createImage(size.width, size.height);
- Util.waitForImage(this, image);
- offscreenSize = size;
- return image;
- }
- protected void animateSprites() {
- Sprite nextSprite;
- Enumeration e = sprites.elements();
-
- while(e.hasMoreElements()) {
- nextSprite = (Sprite)e.nextElement();
- nextSprite.animate();
- }
- }
- protected void paintSprites() {
- Sprite nextSprite;
- Enumeration e = sprites.elements();
-
- while(e.hasMoreElements()) {
- nextSprite = (Sprite)e.nextElement();
- paintSprite(nextSprite);
- }
- }
- protected void paintSprite(Sprite sprite) {
- Graphics g = getGraphics();
- Graphics wpg = workplaceBuffer.getGraphics();
- Rectangle clip = sprite.clipRect();
-
- wpg.clipRect(clip.x, clip.y, clip.width, clip.height);
- wpg.drawImage(bgoffscreen, 0, 0, this);
- sprite.paint(wpg);
-
- g.clipRect (clip.x, clip.y, clip.width, clip.height);
- g.drawImage(workplaceBuffer, 0, 0, this);
-
- g.dispose();
- wpg.dispose();
- }
-}
diff --git a/java/gjt/animation/Sequence.java b/java/gjt/animation/Sequence.java
deleted file mode 100644
index 7b777ecd0d8..00000000000
--- a/java/gjt/animation/Sequence.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package gjt.animation;
-
-import java.util.Vector;
-import java.awt.*;
-import java.awt.image.ImageObserver;
-import gjt.Util;
-import gjt.Stopwatch;
-
-/**
- * A sequence of images used in an animation. Each sequence
- * keeps track of the number of cycles the sequence is to run,
- * and reports whether or not the cycles have been completed
- * via the boolean animationOver() method.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Sprite
- * @see Playfield
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public class Sequence {
- private static long infiniteCycle = -1;
-
- private Vector cells = new Vector();
- private Point lastPaintLocation = new Point(0,0);
- private Stopwatch cellAdvanceTimer = new Stopwatch();
- private Image currentImage, lastImagePainted;
- private long cellAdvanceInterval = 0,
- currentCycle = 0,
- cyclesPerAnimation = 0;
-
- public Sequence() { }
-
- public Sequence(Component component, Image[] images) {
- for(int i=0; i < images.length; ++i) {
- addImage(component, images[i]);
- }
- cyclesPerAnimation = infiniteCycle;
- }
- public void start () { cellAdvanceTimer.start(); }
- public Image getLastImage () { return lastImagePainted; }
- public Point getLastLocation() { return lastPaintLocation; }
- public int getNumImages () { return cells.size(); }
-
- public long getCurrentCycle() { return currentCycle; }
- public void setCurrentCycle(long c) { currentCycle = c; }
-
- public long getCyclesPerAnimation() {
- return currentCycle;
- }
- public void setCyclesPerAnimation(long cyclesPerAnimation) {
- this.cyclesPerAnimation = cyclesPerAnimation;
- }
- public Image getFirstImage() {
- return (Image)cells.firstElement();
- }
- public Image getCurrentImage() {
- return currentImage;
- }
- public int getCurrentImagePosition() {
- return cells.indexOf(currentImage);
- }
- public Image getNextImage() {
- int index = cells.indexOf(currentImage);
- Image image;
-
- if(index == cells.size() - 1)
- image = (Image)cells.elementAt(0);
- else
- image = (Image)cells.elementAt(index + 1);
-
- return image;
- }
- public void setAdvanceInterval(long interval) {
- cellAdvanceInterval = interval;
- }
- public void addImage(Component component, Image image) {
- if(currentImage == null)
- currentImage = image;
-
- Util.waitForImage(component, image);
- cells.addElement(image);
- }
- public void removeImage(Image image) {
- cells.removeElement(image);
- }
- public boolean needsRepainting(Point point) {
- return (lastPaintLocation.x != point.x ||
- lastPaintLocation.y != point.y ||
- lastImagePainted != currentImage);
- }
- public void paint(Graphics g, int x, int y,
- ImageObserver observer) {
- g.drawImage(currentImage, x, y, observer);
- lastPaintLocation.x = x;
- lastPaintLocation.y = y;
- lastImagePainted = currentImage;
- }
- public boolean isAtLastImage() {
- return getCurrentImagePosition() == (cells.size() - 1);
- }
- public boolean timeToAdvanceCell() {
- return
- cellAdvanceTimer.elapsedTime() > cellAdvanceInterval;
- }
- public boolean animationOver() {
- return (cyclesPerAnimation != infiniteCycle) &&
- (currentCycle >= cyclesPerAnimation);
- }
- public void advance() {
- if(isAtLastImage())
- ++currentCycle;
-
- currentImage = getNextImage();
- cellAdvanceTimer.reset();
- }
-}
diff --git a/java/gjt/animation/Sprite.java b/java/gjt/animation/Sprite.java
deleted file mode 100644
index e7840b7615b..00000000000
--- a/java/gjt/animation/Sprite.java
+++ /dev/null
@@ -1,191 +0,0 @@
-package gjt.animation;
-
-import java.awt.*;
-import java.util.Vector;
-import gjt.Assert;
-import gjt.Stopwatch;
-import gjt.Util;
-
-/**
- * A sequence of images which are animated and moved about on
- * a Playfield.<p>
- *
- * Each Sprite is constructed with a reference to it's
- * Playfield, a Sequence, and a beginning position for it's
- * upper left hand corner.<p>
- *
- * A Sprite's animation is controlled by invoking the following
- * methods:
- *<dl>
- *<dd> setMoveVector(Point)
- *<dd> setMoveInterval(long)
- *<dd> setImageChangeInterval(long)
- *<dd> setMainSequence(Sequence)
- *<dd> setSequence(Sequence)
- *</dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Sequence
- * @see Playfield
- * @see SpriteCollisionDetector
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public class Sprite {
- private Playfield field;
- private Sequence currentSequence, mainSequence;
- private Stopwatch moveTimer = new Stopwatch();
-
- private Point ulhc = new Point(0,0);
- private Point start = new Point(0,0);
- private Point moveVector = new Point(1,1);
-
- private Rectangle clip = new Rectangle(0,0);
- private Rectangle curBounds, lastBounds;
-
- private int width, height;
- private long moveInterval = 0;
-
- public Sprite(Playfield field,
- Sequence sequence,
- Point ulhc) {
- Assert.notNull(field);
- Assert.notNull(sequence);
- Assert.notNull(ulhc);
-
- this.field = field;
- this.ulhc = ulhc;
- start.x = ulhc.x;
- start.y = ulhc.y;
-
- setSequence(sequence);
- setMainSequence(sequence);
-
- initializeBounds();
- moveTimer.start();
- currentSequence.start();
- }
- public Playfield getPlayfield() { return field; }
- public Rectangle clipRect () { return clip; }
- public Rectangle curBounds () { return curBounds; }
-
- public int width () { return width; }
- public int height () { return height; }
- public void reverseX () { moveVector.x = 0-moveVector.x; }
- public void reverseY () { moveVector.y = 0-moveVector.y; }
- public void reverse () { reverseX(); reverseY(); }
- public Point start () { return start; }
-
- public void setMoveVector (Point p) { moveVector = p; }
- public Point getMoveVector() { return moveVector; }
-
- public void play(Sequence sequence, long cycles) {
- setSequence(sequence);
- sequence.setCyclesPerAnimation(cycles);
- sequence.setCurrentCycle(0);
- }
- public void animate() {
- if(currentSequence.animationOver())
- currentSequence = mainSequence;
-
- if(timeToChangeImage()) currentSequence.advance();
- if(timeToMove()) move();
- if(needsRepainting()) field.paintSprite(this);
- }
- public void setMainSequence(Sequence sequence) {
- mainSequence = sequence;
- }
- public Sequence getMainSequence() {
- return mainSequence;
- }
- public void setSequence(Sequence sequence) {
- currentSequence = sequence;
-
- if(curBounds != null)
- updateBounds();
- }
- public Sequence getSequence() {
- return currentSequence;
- }
- public boolean intersects(Sprite otherSprite) {
- return curBounds().intersects(otherSprite.curBounds());
- }
- public boolean willIntersect(Sprite otherSprite) {
- return
- nextBounds().intersects(otherSprite.nextBounds());
- }
- public boolean timeToMove() {
- return moveTimer.elapsedTime() > moveInterval;
- }
- public boolean timeToChangeImage() {
- return currentSequence.timeToAdvanceCell();
- }
- public void moveTo(Point p) {
- ulhc = p;
- moveTimer.reset();
- }
- public boolean needsRepainting() {
- return currentSequence.needsRepainting(ulhc);
- }
- public void setMoveInterval(long interval) {
- moveInterval = interval;
- }
- public void setImageChangeInterval(long interval) {
- currentSequence.setAdvanceInterval(interval);
- }
- public void move() {
- ulhc.x += moveVector.x;
- ulhc.y += moveVector.y;
- updateBounds();
- moveTimer.reset();
- }
- public Point location() {
- return ulhc;
- }
- public Point nextLocation() {
- return new Point(ulhc.x + moveVector.x,
- ulhc.y + moveVector.y);
- }
- public Rectangle nextBounds() {
- Image nextImage = currentSequence.getNextImage();
- Point nextLoc = nextLocation();
-
- return new Rectangle(
- nextLoc.x, nextLoc.y, width, height);
- }
- public void paint(Graphics g) {
- currentSequence.paint(g, ulhc.x, ulhc.y, field);
- }
- private void initializeBounds() {
- Image curImage = currentSequence.getCurrentImage();
-
- width = curImage.getWidth (field);
- height = curImage.getHeight(field);
-
- curBounds =
- new Rectangle(ulhc.x, ulhc.y, width, height);
-
- lastBounds = new Rectangle(curBounds.x,
- curBounds.y,
- curBounds.width,
- curBounds.height);
-
- clip = lastBounds.union(curBounds);
- }
- private void updateBounds() {
- Image curImage = currentSequence.getCurrentImage();
-
- lastBounds.width = curBounds.width;
- lastBounds.height = curBounds.height;
-
- curBounds.width = width = curImage.getWidth(field);
- curBounds.height = height = curImage.getHeight(field);
-
- lastBounds.move(curBounds.x, curBounds.y);
- curBounds.move (ulhc.x, ulhc.y);
-
- clip = lastBounds.union(curBounds);
- }
-}
diff --git a/java/gjt/animation/SpriteCollisionDetector.java b/java/gjt/animation/SpriteCollisionDetector.java
deleted file mode 100644
index 2ef37d79208..00000000000
--- a/java/gjt/animation/SpriteCollisionDetector.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package gjt.animation;
-
-import java.awt.*;
-import java.util.Enumeration;
-import java.util.Vector;
-import gjt.Orientation;
-
-/**
- * A CollisionDetector that detects collisions between Sprites
- * residing in a CollisionArena.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CollisionArena
- * @see CollisionDetector
- * @see Sprite
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public class SpriteCollisionDetector extends CollisionDetector {
- public SpriteCollisionDetector(CollisionArena arena) {
- super(arena);
- }
- public void detectCollisions() {
- Enumeration sprites = arena.getSprites().elements();
- Sprite sprite;
-
- while(sprites.hasMoreElements()) {
- sprite = (Sprite)sprites.nextElement();
-
- Enumeration otherSprites =
- arena.getSprites().elements();
- Sprite otherSprite;
-
- while(otherSprites.hasMoreElements()) {
- otherSprite=(Sprite)otherSprites.nextElement();
-
- if(otherSprite != sprite)
- if(sprite.willIntersect(otherSprite))
- arena.spriteCollision(sprite,otherSprite);
- }
- }
- }
-}
diff --git a/java/gjt/image/BleachImageFilter.java b/java/gjt/image/BleachImageFilter.java
deleted file mode 100644
index f698a218284..00000000000
--- a/java/gjt/image/BleachImageFilter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package gjt.image;
-
-import java.awt.image.*;
-import gjt.Assert;
-
-/**
- * A derivation of RGBImageFilter that bleaches an image.<p>
- *
- * Extent of the bleaching effect is controlled by the only
- * constructor argument: an integer representing the percentage
- * of bleaching. The percentage of bleaching may also be
- * controlled after instantiation by invoking the
- * void percent(int) method.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see RGBImageFilter
- */
-public class BleachImageFilter extends RGBImageFilter {
- private int percent;
-
- public BleachImageFilter(int percent) {
- Assert.notFalse(percent >= 0 && percent <= 100);
- this.percent = percent;
- canFilterIndexColorModel = true;
- }
- public int percent() { return percent; }
- public void percent(int percent) { percent = percent; }
-
- public int filterRGB(int x, int y, int rgb) {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
-
- int alpha = cm.getAlpha(rgb);
- int red = cm.getRed (rgb);
- int green = cm.getGreen(rgb);
- int blue = cm.getBlue (rgb);
- double percentMultiplier = (double)percent/100;
-
- red = Math.min((int)
- (red + (red * percentMultiplier)), 255);
- green = Math.min((int)
- (green + (green * percentMultiplier)), 255);
- blue = Math.min((int)
- (blue + (blue * percentMultiplier)), 255);
-
- alpha = alpha << 24;
- red = red << 16;
- green = green << 8;
-
- return alpha | red | green | blue;
- }
-}
diff --git a/java/gjt/image/DissolveFilter.java b/java/gjt/image/DissolveFilter.java
deleted file mode 100644
index 027455b39b6..00000000000
--- a/java/gjt/image/DissolveFilter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package gjt.image;
-
-import java.awt.image.*;
-import gjt.Assert;
-
-/**
- * A derivation of RGBImageFilter that partially or wholly
- * dissolves an image.<p>
- *
- * Extent of dissolving is set by the setOpacity(int) method,
- * which is passed an integer between 0 and 255 (inclusive).
- * The integer represents the alpha value to be applied to
- * every color in the image.<p>
- *
- * An alpha value of 255 signifies an opaque color, while an
- * alpha value of 0 signifies a translucent color.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see RGBImageFilter
- */
-public class DissolveFilter extends RGBImageFilter {
- private int opacity;
-
- public DissolveFilter() {
- this(0);
- }
- public DissolveFilter(int opacity) {
- canFilterIndexColorModel = true;
- setOpacity(opacity);
- }
- public void setOpacity(int opacity) {
- Assert.notFalse(opacity >= 0 && opacity <= 255);
- this.opacity = opacity;
- }
- public int filterRGB(int x, int y, int rgb) {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
- int alpha = cm.getAlpha(rgb);
- int red = cm.getRed (rgb);
- int green = cm.getGreen(rgb);
- int blue = cm.getBlue (rgb);
-
- alpha = opacity;
-
- return alpha << 24 | red << 16 | green << 8 | blue;
- }
-}
diff --git a/java/gjt/image/ImageDissolver.java b/java/gjt/image/ImageDissolver.java
deleted file mode 100644
index 5d0e6a2daf6..00000000000
--- a/java/gjt/image/ImageDissolver.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package gjt.image;
-
-import java.awt.*;
-import java.awt.image.*;
-import gjt.Util;
-
-/**
- * Given an image, an ImageDissolver produces an array of
- * images of varying opacity that are used in the fadeIn()
- * and fadeOut() methods for fading the image in and out
- * respectively.<p>
- *
- * As a convenience, ImageDissolver has a static method:
- * Image[] createImages() that creates the array of images
- * mentioned above, in case clients would like to create their
- * own array of images instead of using an ImageDissolver
- * directly.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ThreeDBorder
- * @see ImageButtonController
- * @see SpringyImageButtonController
- * @see StickyImageButtonController
- * @see BleachImageFilter
- * @see gjt.test.ImageButtonTest
- */
-public class ImageDissolver {
- private static int _defaultNumImages = 10,
- _defaultPause = 50;
- Component comp;
- int numImages, pauseInterval;
- Image image, offscreen;
- Image[] dissolvedImages;
-
- static public Image[] createImages(Image image,
- int numImages,
- Component component) {
- Image images[] = new Image[numImages];
- MediaTracker tracker = new MediaTracker(component);
-
- DissolveFilter filter;
- FilteredImageSource fis;
-
- for(int i=0; i < numImages; ++i) {
- filter = new DissolveFilter((255/(numImages-1))*i);
- fis = new FilteredImageSource(image.getSource(),
- filter);
-
- images[i] = component.createImage(fis);
- tracker.addImage(images[i], i);
- }
- try { tracker.waitForAll(); }
- catch(InterruptedException e) { }
-
- return images;
- }
-
- public ImageDissolver(Component comp, Image image) {
- this(comp, image, _defaultNumImages, _defaultPause);
- }
- public ImageDissolver(Component comp, Image im,
- int numImages, int pause) {
- this.image = im;
- this.comp = comp;
- this.numImages = numImages;
- dissolvedImages = new Image[numImages];
- pauseInterval = pause;
-
- Util.waitForImage(comp, im);
- dissolvedImages = createImages(image, numImages, comp);
- }
- public void fadeIn(int x, int y) {
- if(offscreen == null)
- offscreen = comp.createImage(image.getWidth(comp),
- image.getHeight(comp));
-
- Graphics offg = offscreen.getGraphics();
- Graphics compg = comp.getGraphics();
-
- if(offg != null && compg != null) {
- clearComponent(compg, x, y);
- for(int i=0; i < numImages; ++i) {
- blitImage(compg, offg, x, y, i);
- pause ();
- }
- blitOpaqueImage(compg, offg, x, y);
- }
- }
- public void fadeOut(int x, int y) {
- if(offscreen == null)
- offscreen = comp.createImage(image.getWidth(comp),
- image.getHeight(comp));
-
- Graphics offg = offscreen.getGraphics();
- Graphics compg = comp.getGraphics();
-
- if(offg != null && compg != null) {
- blitOpaqueImage(compg, offg, x, y);
- for(int i=numImages-1; i >= 0; --i) {
- clearOffscreen();
- blitImage (compg, offg, x, y, i);
- pause ();
- }
- }
- }
- private void blitImage(Graphics compg, Graphics offg,
- int x, int y, int index) {
- offg.drawImage (dissolvedImages[index], 0, 0, comp);
- compg.drawImage(offscreen, x, y, comp);
- }
- private void blitOpaqueImage(Graphics compg, Graphics offg,
- int x, int y) {
- offg.drawImage(image, 0, 0, comp);
- compg.drawImage(offscreen, x, y, comp);
- }
- private void clearComponent(Graphics compg, int x, int y) {
- clearOffscreen();
- compg.drawImage(offscreen, x, y, comp);
- }
- private void clearOffscreen() {
- Graphics offg = offscreen.getGraphics();
-
- offg.setColor(comp.getBackground());
- offg.fillRect(0, 0,
- image.getWidth(comp), image.getHeight(comp));
- }
- private void pause() {
- try { Thread.currentThread().sleep(pauseInterval); }
- catch(InterruptedException e) { }
- }
-}
diff --git a/java/gjt/rubberband/Rubberband.java b/java/gjt/rubberband/Rubberband.java
deleted file mode 100644
index be4b1b6ac05..00000000000
--- a/java/gjt/rubberband/Rubberband.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package gjt.rubberband;
-
-import java.awt.*;
-
-/**
- * A abstract base class for rubberbands.<p>
- *
- * Rubberbands do their rubberbanding inside of a Component,
- * which must be specified at construction time.<p>
- *
- * Subclasses are responsible for implementing
- * <em>void drawLast(Graphics g)</em> and
- * <em>void drawNext(Graphics g)</em>.
- *
- * drawLast() draws the appropriate geometric shape at the last
- * rubberband location, while drawNext() draws the appropriate
- * geometric shape at the next rubberband location. All of the
- * underlying support for rubberbanding is taken care of here,
- * including handling XOR mode setting; extensions of Rubberband
- * need not concern themselves with anything but drawing the
- * last and next geometric shapes.<p>
- *
- * @version 1.00, 12/27/95
- * @author David Geary
- * @see RubberbandLine
- * @see RubberbandRectangle
- * @see RubberbandEllipse
- * @see gjt.test.RubberbandTest
- */
-abstract public class Rubberband {
- protected Point anchor = new Point(0,0);
- protected Point stretched = new Point(0,0);
- protected Point last = new Point(0,0);
- protected Point end = new Point(0,0);
-
- private Component component;
- private boolean firstStretch = true;
-
- abstract public void drawLast(Graphics g);
- abstract public void drawNext(Graphics g);
-
- public Rubberband(Component component) {
- this.component = component;
- }
- public Point getAnchor () { return anchor; }
- public Point getStretched() { return stretched; }
- public Point getLast () { return last; }
- public Point getEnd () { return end; }
-
- public void anchor(Point p) {
- firstStretch = true;
- anchor.x = p.x;
- anchor.y = p.y;
-
- stretched.x = last.x = anchor.x;
- stretched.y = last.y = anchor.y;
- }
- public void stretch(Point p) {
- last.x = stretched.x;
- last.y = stretched.y;
- stretched.x = p.x;
- stretched.y = p.y;
-
- Graphics g = component.getGraphics();
- if(g != null) {
- g.setXORMode(component.getBackground());
-
- if(firstStretch == true) firstStretch = false;
- else drawLast(g);
-
- drawNext(g);
- }
- }
- public void end(Point p) {
- last.x = end.x = p.x;
- last.y = end.y = p.y;
-
- Graphics g = component.getGraphics();
- if(g != null) {
- g.setXORMode(component.getBackground());
- drawLast(g);
- }
- }
- public Rectangle bounds() {
- return new Rectangle(stretched.x < anchor.x ?
- stretched.x : anchor.x,
- stretched.y < anchor.y ?
- stretched.y : anchor.y,
- Math.abs(stretched.x - anchor.x),
- Math.abs(stretched.y - anchor.y));
- }
-
- public Rectangle lastBounds() {
- return new Rectangle(
- last.x < anchor.x ? last.x : anchor.x,
- last.y < anchor.y ? last.y : anchor.y,
- Math.abs(last.x - anchor.x),
- Math.abs(last.y - anchor.y));
- }
-}
diff --git a/java/gjt/rubberband/RubberbandEllipse.java b/java/gjt/rubberband/RubberbandEllipse.java
deleted file mode 100644
index 50ddb0cdd6b..00000000000
--- a/java/gjt/rubberband/RubberbandEllipse.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package gjt.rubberband;
-
-import java.awt.Component;
-import java.awt.Graphics;
-import java.awt.Rectangle;
-
-/**
- * A Rubberband that does ellipses.
- *
- * @version 1.00, 12/27/95
- * @author David Geary
- * @see Rubberband
- * @see gjt.test.RubberbandTest
- */
-public class RubberbandEllipse extends Rubberband {
- private final int startAngle = 0;
- private final int endAngle = 360;
-
- public RubberbandEllipse(Component component) {
- super(component);
- }
- public void drawLast(Graphics graphics) {
- Rectangle r = lastBounds();
- graphics.drawArc(r.x, r.y,
- r.width, r.height, startAngle, endAngle);
- }
- public void drawNext(Graphics graphics) {
- Rectangle r = bounds();
- graphics.drawArc(r.x, r.y,
- r.width, r.height, startAngle, endAngle);
- }
-}
diff --git a/java/gjt/rubberband/RubberbandLine.java b/java/gjt/rubberband/RubberbandLine.java
deleted file mode 100644
index 95daafa32a6..00000000000
--- a/java/gjt/rubberband/RubberbandLine.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package gjt.rubberband;
-
-import java.awt.Component;
-import java.awt.Graphics;
-
-/**
- * A Rubberband that does lines.
- *
- * @version 1.0, 12/27/95
- * @author David Geary
- * @see Rubberband
- * @see gjt.test.RubberbandTest
- */
-public class RubberbandLine extends Rubberband {
- public RubberbandLine(Component component) {
- super(component);
- }
- public void drawLast(Graphics graphics) {
- graphics.drawLine(anchor.x, anchor.y, last.x, last.y);
- }
- public void drawNext(Graphics graphics) {
- graphics.drawLine(anchor.x, anchor.y,
- stretched.x, stretched.y);
- }
-}
diff --git a/java/gjt/rubberband/RubberbandPanel.java b/java/gjt/rubberband/RubberbandPanel.java
deleted file mode 100644
index e4c25f4efb5..00000000000
--- a/java/gjt/rubberband/RubberbandPanel.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package gjt.rubberband;
-
-import java.awt.*;
-
-/**
- * An extension of Panel which is fitted with a Rubberband.
- * Handling of mouse events is automatically handled for
- * rubberbanding.<p>
- *
- * Clients may set or get the Rubberband at any time.<p>
- *
- * @version 1.0, Dec 27 1995
- * @author David Geary
- * @see Rubberband
- * @see gjt.test.RubberbandTest
- */
-public class RubberbandPanel extends Panel {
- private Rubberband rubberband;
-
- public void setRubberband(Rubberband rubberband) {
- this.rubberband = rubberband;
- }
- public Rubberband getRubberband() {
- return rubberband;
- }
- public boolean mouseDown(Event event, int x, int y) {
- rubberband.anchor(new Point(x,y));
- return false;
- }
- public boolean mouseDrag(Event event, int x, int y) {
- rubberband.stretch(new Point(x,y));
- return false;
- }
- public boolean mouseUp(Event event, int x, int y) {
- rubberband.end(new Point(x,y));
- return false;
- }
-}
diff --git a/java/gjt/rubberband/RubberbandRectangle.java b/java/gjt/rubberband/RubberbandRectangle.java
deleted file mode 100644
index bfcb1bfc32c..00000000000
--- a/java/gjt/rubberband/RubberbandRectangle.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package gjt.rubberband;
-
-import java.awt.Component;
-import java.awt.Graphics;
-import java.awt.Rectangle;
-
-/**
- * A Rubberband that does rectangles.
- *
- * @version 1.00, 12/27/95
- * @author David Geary
- * @see Rubberband
- * @see gjt.test.RubberbandTest
- */
-public class RubberbandRectangle extends Rubberband {
- public RubberbandRectangle(Component component) {
- super(component);
- }
- public void drawLast(Graphics graphics) {
- Rectangle rect = lastBounds();
- graphics.drawRect(rect.x, rect.y,
- rect.width, rect.height);
- }
- public void drawNext(Graphics graphics) {
- Rectangle rect = bounds();
- graphics.drawRect(rect.x, rect.y,
- rect.width, rect.height);
- }
-}
diff --git a/java/gjt/test/AttributesPanel.java b/java/gjt/test/AttributesPanel.java
deleted file mode 100644
index 535a12edaeb..00000000000
--- a/java/gjt/test/AttributesPanel.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import gjt.*;
-
-class AttributesPanel extends Panel {
- private Applet applet;
- private Box iconbox, labelbox, checkboxbox;
- private Panel panelInLabelbox = new Panel();
- private Panel panelInCheckboxbox = new Panel();
- private ExclusiveImageButtonPanel panelInIconbox;
-
- public AttributesPanel(Applet applet) {
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
-
- this.applet = applet;
- panelInIconbox = new ExclusiveImageButtonPanel(
- Orientation.HORIZONTAL);
-
- populateIconPanel ();
- populateLabelPanel ();
- populateCheckboxPanel();
-
- iconbox = new Box(panelInIconbox,
- "Meaningless Images");
- labelbox = new Box(panelInLabelbox, "Labels");
- checkboxbox = new Box(panelInCheckboxbox, "Fruits");
- iconbox.etchedOut();
-
- setLayout(gbl);
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.weighty = 0.50;
- gbl.setConstraints(iconbox, gbc);
- add(iconbox);
- gbl.setConstraints(labelbox, gbc);
- add(labelbox);
-
- gbc.anchor = GridBagConstraints.SOUTH;
- gbc.weighty = 0;
- gbl.setConstraints(panelInCheckboxbox, gbc);
- add(checkboxbox);
- }
- private void populateIconPanel() {
- Image ballot, film, ticket;
-
- ballot = applet.getImage(applet.getCodeBase(),
- "gifs/ballot_box.gif");
- ticket = applet.getImage(applet.getCodeBase(),
- "gifs/movie_ticket.gif");
- film = applet.getImage(applet.getCodeBase(),
- "gifs/filmstrip.gif");
-
- panelInIconbox.add(ballot);
- panelInIconbox.add(ticket);
- panelInIconbox.add(film);
- }
- private void populateLabelPanel() {
- panelInLabelbox.add(new Label("Label One"));
- panelInLabelbox.add(new Label("Label Two"));
- panelInLabelbox.add(new Label("Label Three"));
- panelInLabelbox.add(new Label("Label Four"));
- panelInLabelbox.add(new Label("Label Five"));
- }
- private void populateCheckboxPanel() {
- CheckboxGroup group = new CheckboxGroup();
-
- panelInCheckboxbox.setLayout(new GridLayout(3,0));
- panelInCheckboxbox.add(new Checkbox("apples",
- group, false));
- panelInCheckboxbox.add(new Checkbox("oranges",
- group, false));
- panelInCheckboxbox.add(new Checkbox("pears",
- group, true));
- }
-}
diff --git a/java/gjt/test/BargaugeTest.java b/java/gjt/test/BargaugeTest.java
deleted file mode 100644
index 47733d6b0bf..00000000000
--- a/java/gjt/test/BargaugeTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import java.applet.*;
-import gjt.Bargauge;
-
-/**
- * An array of either horizontal or vertical animated bargauges.
- * The orientation of the bargauges is controlled by a parameter
- * passed into the applet.<p>
- *
- * <em>
- * Warning: An AWT bug causes this test to be a gluttenous
- * consumer of resources (especially under Win95). A mouse down
- * will halt the animation thread along with its consumption of
- * resources.<p>
- * </em>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.Bargauge
- */
-public class BargaugeTest extends UnitTest {
- private Bargauge[] gauges = new Bargauge[10];
- private Thread animatorThread;
- private boolean running;
-
- public String title() {
- return "Bargauge Test";
- }
- public Panel centerPanel() {
- return new BargaugeTestPanel(
- gauges, getParameter("orientation"));
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(running == true) {
- animatorThread.suspend();
- running = false;
- }
- else {
- animatorThread.resume ();
- running = true;
- }
- return true;
- }
- public void start() {
- super.start();
- animatorThread = new BargaugeAnimator(gauges);
- animatorThread.start();
- running = true;
- }
- public void stop() {
- super.stop();
- animatorThread.suspend();
- running = false;
- }
-}
-
-class BargaugeTestPanel extends Panel {
- public BargaugeTestPanel(Bargauge[] gauges, String orient) {
- Panel bargaugePanel = new Panel();
-
- setLayout(new BorderLayout());
- add("North",
- new Label("Mouse Down Starts/Stops",Label.CENTER));
- add("Center", bargaugePanel);
-
- bargaugePanel.add(new BargaugeGridPanel(gauges,orient));
- }
-}
-
-class BargaugeGridPanel extends Panel {
- private Dimension preferredSize = new Dimension(200, 250);
-
- public BargaugeGridPanel(Bargauge[] gauges, String orient) {
- Bargauge nextGauge;
- Color color = Color.gray;
-
- if("horizontal".equals(orient))
- setLayout(new GridLayout(gauges.length,0,5,5));
- else
- setLayout(new GridLayout(0,gauges.length,5,5));
-
- for(int i=0; i < gauges.length; ++i) {
- switch(i) {
- case 1: color = Color.darkGray; break;
- case 2: color = Color.blue; break;
- case 3: color = Color.magenta; break;
- case 4: color = Color.yellow; break;
- case 5: color = Color.green; break;
- case 6: color = Color.cyan; break;
- case 7: color = Color.orange; break;
- case 8: color = Color.pink; break;
- case 9: color = Color.red; break;
- case 10: color = Color.yellow; break;
- }
- nextGauge = new Bargauge(color);
- gauges[i] = nextGauge;
- add(nextGauge);
- }
- }
- public Dimension preferredSize() { return preferredSize; }
- public Dimension minimumSize () { return preferredSize; }
-}
-
-class BargaugeAnimator extends Thread {
- private Bargauge[] gauges;
- private boolean firstAnimation = true;
-
- public BargaugeAnimator(Bargauge[] gauges) {
- this.gauges = gauges;
- }
- public void run() {
- int count = gauges.length;
-
- while(true) {
- try { Thread.currentThread().sleep(500,0); }
- catch(InterruptedException e) { }
- for(int i=0; i < count; ++i) {
- gauges[i].setFillPercent(Math.random() * 100);
- gauges[i].fill();
-
- if(firstAnimation)
- System.out.println(gauges[i].toString());
- }
- firstAnimation = false;
- }
- }
-}
diff --git a/java/gjt/test/BleachImageFilterTest.java b/java/gjt/test/BleachImageFilterTest.java
deleted file mode 100644
index 08fda725a08..00000000000
--- a/java/gjt/test/BleachImageFilterTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import java.awt.image.FilteredImageSource;
-
-import gjt.Util;
-import gjt.image.BleachImageFilter;
-
-/**
- * Initially displays an unbleached image. Subsequent mouse
- * clicks in the canvas containing the image toggle between
- * a bleached version of the image and an unbleached version.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.image.BleachImageFilter
- */
-public class BleachImageFilterTest extends UnitTest {
- public String title() {
- return "BleachImageFilter Test " +
- "(Click below to Bleach/Unbleach Picture)";
- }
- public Panel centerPanel() {
- return new BleachImageFilterTestPanel(this);
- }
-}
-
-class BleachImageFilterTestPanel extends Panel {
- BleachImageFilterTestCanvas canvas;
-
- public BleachImageFilterTestPanel(Applet applet) {
- add(canvas = new BleachImageFilterTestCanvas(applet));
- }
- public boolean mouseDown(Event event, int x, int y) {
- canvas.toggleBleaching();
- canvas.repaint();
- return true;
- }
-}
-
-class BleachImageFilterTestCanvas extends Canvas {
- private Image im;
- private Image bleached;
- private boolean showingBleached = false;
-
- public BleachImageFilterTestCanvas(Applet applet) {
- int bp;
- String bleachPercent =
- applet.getParameter("bleachPercent");
-
- if(bleachPercent != null)
- bp = new Integer(bleachPercent).intValue();
- else
- bp = 50;
-
- im = applet.getImage(applet.getCodeBase(),
- "gifs/saint.gif");
- Util.waitForImage(this, im);
-
- FilteredImageSource source =
- new FilteredImageSource(im.getSource(),
- new BleachImageFilter(bp));
-
- bleached = createImage(source);
- Util.waitForImage(this, bleached);
-
- showImageSize();
- }
- public Dimension preferredSize() {
- return new Dimension(im.getWidth(this),
- im.getHeight(this));
- }
- public void paint(Graphics g) {
- if(showingBleached) g.drawImage(bleached,0,0,this);
- else g.drawImage(im, 0,0,this);
- }
- public void toggleBleaching() {
- showingBleached = showingBleached ? false : true;
- }
- private void showImageSize() {
- System.out.print ("Image width=" + im.getWidth(this));
- System.out.println(" height=" + im.getHeight(this));
- }
-}
diff --git a/java/gjt/test/BorderTest.java b/java/gjt/test/BorderTest.java
deleted file mode 100644
index 450b5ffc7ea..00000000000
--- a/java/gjt/test/BorderTest.java
+++ /dev/null
@@ -1,202 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import gjt.Border;
-import gjt.Box;
-import gjt.EtchedBorder;
-import gjt.ImageButton;
-import gjt.ThreeDBorder;
-
-/**
- * Creates 10 bordered Components:
- * <dl>
- * <dd> A Canvas (click in canvas to depress/raise the border).
- * <dd> A Label with an etched out border.
- * <dd> A TextField with an inset 3D border.
- * <dd> A CheckBox with a default border.
- * <dd> A List with a raised 3D border.
- * <dd> A Choice with an etched in border.
- * <dd> A Box with a raised 3D border.
- * <dd> An ImageButton with a thick, red border.
- * <dd> An AWT Button with a cyan border.
- * <dd> A TextArea with a blue default-width border.
- * </dl>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.Border
- * @see gjt.ThreeDBorder
- * @see gjt.EtchedBorder
- */
-public class BorderTest extends UnitTest {
- public String title() {
- return "Border Test";
- }
- public Panel centerPanel() {
- return new BorderTestPanel(this);
- }
-}
-
-class BorderTestPanel extends Panel {
- TextField tf = new TextField(
- "Inset TextField: border 5 pixels, gap 5 pixels ");
- ThreeDBorder threeDBorder;
- EtchedBorder etchedLabel;
- Border border;
-
- public BorderTestPanel(Applet applet) {
- setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
-
- add(new BorderedCanvas());
- add(etchedLabel =
- new EtchedBorder(new Label("Etched Label")));
- add(threeDBorder = new ThreeDBorder(tf, 5, 5));
- add(new Border(new Checkbox("Check Me Out")));
- add(makeThreeDBorderedList ());
- add(makeEtchedBorderedChoice ());
- add(makeThreeDBorderedCheckboxes());
- add(makeBorderedImageButton (applet));
- add(makeBorderedAWTButton ());
- add(makeBorderedTextArea ());
-
- threeDBorder.inset();
- etchedLabel.etchedOut();
- }
- private Border makeThreeDBorderedList() {
- List list = new List(10, true);
-
- list.addItem("One");
- list.addItem("Two");
- list.addItem("Three");
- list.addItem("Four");
- list.addItem("Five");
- list.addItem("Six");
- list.addItem("Seven");
- list.addItem("Eight");
- list.addItem("Nine");
- list.addItem("Ten");
- list.addItem("Eleven");
- list.addItem("Twelve");
- list.addItem("Thirteen");
- list.addItem("Fourteen");
- list.addItem("Fiveteen");
- list.addItem("Sixteen");
- list.addItem("Seventeen");
- list.addItem("Eightteen");
- list.addItem("Nineteen");
- list.addItem("Twenty");
-
- return new ThreeDBorder(list);
- }
- private Border makeEtchedBorderedChoice() {
- Choice choice = new Choice();
-
- choice.addItem("Toadies");
- choice.addItem("SilverChair");
- choice.addItem("Rug Burns");
- choice.addItem("Cracker");
- choice.addItem("Seven Mary Three");
- choice.addItem("Dishwalla");
- choice.addItem("Blues Traveler");
- choice.addItem("BottleRockets");
- choice.addItem("SpaceHog");
-
- return new EtchedBorder(choice);
- }
- private Border makeBorderedImageButton(Applet applet) {
- Image snail;
- Border border;
-
- snail = applet.getImage(applet.getCodeBase(),
- "gifs/snail.gif");
- border = new Border(new ImageButton(snail), 10);
- border.setLineColor(Color.red);
-
- return border;
- }
- private Border makeBorderedAWTButton() {
- Button button;
- Border cyanBorder, blackBorder;
-
- button = new Button("Button Inside Two Borders");
- cyanBorder = new Border(button, 7);
- cyanBorder.setLineColor(Color.cyan);
-
- blackBorder = new Border(cyanBorder);
-
- return blackBorder;
- }
- private Border makeThreeDBorderedCheckboxes() {
- Panel panel = new Panel();
- Box box = new Box(panel, "Options");
- CheckboxGroup group = new CheckboxGroup();
-
- panel.setLayout(new GridLayout(3,0));
- panel.add(new Checkbox("bordered", group, false));
- panel.add(new Checkbox("transparent", group, false));
- panel.add(new Checkbox("continuous", group, true));
-
- return new ThreeDBorder(box, 4);
- }
- private Border makeBorderedTextArea() {
- Border border;
-
- border = new Border(
- new TextArea("Blue Bordered TextArea", 5, 30));
- border.setLineColor(Color.blue);
-
- return border;
- }
-}
-
-class BorderedCanvas extends ThreeDBorder {
- public BorderedCanvas() {
- super(new TestCanvas());
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(isRaised()) paintInset ();
- else paintRaised();
- return true;
- }
-}
-
-class TestCanvas extends Canvas {
- private boolean centeredShowing = false;
- private String centered = new String ("Red Centered Text");
-
- public void paint(Graphics g) {
- String canvas = "Canvas";
- String click = "Click Me";
- Dimension size = size();
- FontMetrics fm = g.getFontMetrics();
-
- g.drawString(canvas, (size.width/2) -
- (fm.stringWidth(canvas)/2),
- fm.getHeight() - fm.getDescent());
-
- g.drawString(click, (size.width/2) -
- (fm.stringWidth(click)/2),
- size.height - fm.getHeight() +
- fm.getAscent());
-
- if(centeredShowing == true) {
- g.setColor(Color.red);
- g.drawString(centered,
- size.width/2-(fm.stringWidth(centered)/2),
- size.height/2 - (fm.getHeight()/2) +
- fm.getAscent());
- }
- }
- public Dimension preferredSize() {
- FontMetrics fm = getGraphics().getFontMetrics();
- return new Dimension(fm.stringWidth(centered)+10, 100);
- }
- public boolean mouseUp(Event event, int x, int y) {
- if(centeredShowing == false) centeredShowing = true;
- else centeredShowing = false;
- repaint();
- return true;
- }
-}
diff --git a/java/gjt/test/BoxTest.java b/java/gjt/test/BoxTest.java
deleted file mode 100644
index 24e3de9213e..00000000000
--- a/java/gjt/test/BoxTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import gjt.Box;
-import gjt.ExclusiveImageButtonPanel;
-import gjt.Orientation;
-
-/**
- * Three Boxes, each of which surrounds either: ImageButtons,
- * Labels or Checkboxes. The Box surrounding the ImageButtons
- * is etched out, while the other two Boxes are etched in.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ImageButton
- * @see gjt.Box
- */
-public class BoxTest extends UnitTest {
- public String title() {
- return "Box Test";
- }
- public Panel centerPanel() {
- return new BoxTestPanel(this);
- }
-}
-
-class BoxTestPanel extends Panel {
- private Applet applet;
- private Box iconbox, labelbox, checkboxbox;
- private Panel panelInLabelbox = new Panel();
- private Panel panelInCheckboxbox = new Panel();
- private ExclusiveImageButtonPanel panelInIconbox;
-
- public BoxTestPanel(Applet applet) {
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
-
- this.applet = applet;
- panelInIconbox = new ExclusiveImageButtonPanel(
- Orientation.HORIZONTAL);
-
- populateIconPanel ();
- populateLabelPanel ();
- populateCheckboxPanel();
-
- iconbox = new Box(panelInIconbox,
- "Meaningless Images");
- labelbox = new Box(panelInLabelbox, "Labels");
- checkboxbox = new Box(panelInCheckboxbox, "Fruits");
- iconbox.etchedOut();
-
- setLayout(gbl);
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.weighty = 0.50;
- gbl.setConstraints(iconbox, gbc);
- add(iconbox);
- gbl.setConstraints(labelbox, gbc);
- add(labelbox);
-
- gbc.anchor = GridBagConstraints.SOUTH;
- gbc.weighty = 0;
- gbl.setConstraints(checkboxbox, gbc);
- add(checkboxbox);
- }
- private void populateIconPanel() {
- Image ballot, film, ticket;
-
- ballot = applet.getImage(applet.getCodeBase(),
- "gifs/ballot_box.gif");
- ticket = applet.getImage(applet.getCodeBase(),
- "gifs/movie_ticket.gif");
- film = applet.getImage(applet.getCodeBase(),
- "gifs/filmstrip.gif");
-
- panelInIconbox.add(ballot);
- panelInIconbox.add(ticket);
- panelInIconbox.add(film);
- }
- private void populateLabelPanel() {
- panelInLabelbox.add(new Label("Label One"));
- panelInLabelbox.add(new Label("Label Two"));
- panelInLabelbox.add(new Label("Label Three"));
- panelInLabelbox.add(new Label("Label Four"));
- panelInLabelbox.add(new Label("Label Five"));
- }
- private void populateCheckboxPanel() {
- CheckboxGroup group = new CheckboxGroup();
-
- panelInCheckboxbox.setLayout(new GridLayout(3,0));
- panelInCheckboxbox.add(new Checkbox("apples",
- group, false));
- panelInCheckboxbox.add(new Checkbox("oranges",
- group, false));
- panelInCheckboxbox.add(new Checkbox("pears",
- group, true));
- }
-}
diff --git a/java/gjt/test/BumpAnimationTest.java b/java/gjt/test/BumpAnimationTest.java
deleted file mode 100644
index 81b6fb5ce8e..00000000000
--- a/java/gjt/test/BumpAnimationTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package gjt.test;
-
-import java.net.URL;
-import java.applet.Applet;
-import java.awt.*;
-
-import gjt.Util;
-import gjt.Orientation;
-import gjt.animation.*;
-
-/**
- * A simple animation playfield with one sprite that bounces
- * off the boundaries of the playfield.<p>
- *
- * When the sprite bounces off the left wall, it plays a
- * bump sequence once; when it bounces off the right wall
- * it plays the bump sequence twice.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.animation.Playfield
- * @see gjt.animation.Sprite
- */
-public class BumpAnimationTest extends UnitTest {
- public String title() {
- return "Bump Animation - Mouse Down Starts/Stops";
- }
- public Panel centerPanel() {
- return new BumpAnimationTestPanel(this);
- }
-}
-
-class BumpAnimationTestPanel extends Panel {
- public BumpAnimationTestPanel(Applet applet) {
- setLayout(new BorderLayout());
- add("Center", new BumpPlayfield(applet));
- }
-}
-
-class BumpPlayfield extends Playfield {
- private Applet applet;
- private URL cb;
- private Sprite javaDrinker;
- private Sequence spinSequence, bumpSequence;
-
- public BumpPlayfield(Applet applet) {
- this.applet = applet;
- cb = applet.getCodeBase();
- makeSequencesAndSprites();
- }
- public void paintBackground(Graphics g) {
- Image bg = applet.getImage(cb, "gifs/background.gif");
- Util.wallPaper(this, g, bg);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(running() == true) stop ();
- else start();
- return true;
- }
- public void spriteCollision(Sprite sprite, Sprite sprite2) {
- // Nothing to do: only 1 sprite!
- }
- public void edgeCollision(Sprite sprite,
- Orientation orientation) {
- if(orientation == Orientation.RIGHT ||
- orientation == Orientation.LEFT) {
- if(sprite.getSequence() != bumpSequence) {
- sprite.reverseX();
-
- if(orientation == Orientation.RIGHT)
- sprite.play(bumpSequence, 1);
- else
- sprite.play(bumpSequence, 2);
- }
- }
- else
- sprite.reverseY();
- }
- private void makeSequencesAndSprites() {
- String file;
- Point startLoc = new Point(10, 10);
- Image[] spinImages = new Image[19];
- Image[] bumpImages = new Image[6];
-
- for(int i=0; i < spinImages.length; ++i) {
- file = "gifs/spin";
-
- if(i < 10) file += "0" + i + ".gif";
- else file += i + ".gif";
-
- spinImages[i] = applet.getImage(cb, file);
- }
- for(int i=0; i < bumpImages.length; ++i) {
- file = "gifs/bump0" + i + ".gif";
- bumpImages[i] = applet.getImage(cb, file);
- }
- spinSequence = new Sequence(this, spinImages);
- bumpSequence = new Sequence(this, bumpImages);
- javaDrinker = new Sprite(this, spinSequence, startLoc);
-
- spinSequence.setAdvanceInterval(100);
- bumpSequence.setAdvanceInterval(200);
-
- javaDrinker.setMoveVector(new Point(2,2));
- addSprite(javaDrinker);
- }
-}
diff --git a/java/gjt/test/ChoiceCardPanelTest.java b/java/gjt/test/ChoiceCardPanelTest.java
deleted file mode 100644
index 4ec27ac8945..00000000000
--- a/java/gjt/test/ChoiceCardPanelTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import gjt.ChoiceCardPanel;
-
-/**
- * A ChoiceCardPanel that controls three Panels.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ChoiceCardPanel
- */
-public class ChoiceCardPanelTest extends UnitTest {
- public String title() { return "Choice CardPanel Test"; }
- public Panel centerPanel() {
- return new ChoiceCardPanelTestPanel(this);
- }
-}
-
-class ChoiceCardPanelTestPanel extends Panel {
- private ChoiceCardPanel mvp = new ChoiceCardPanel();
-
- public ChoiceCardPanelTestPanel(Applet applet) {
- setLayout(new BorderLayout());
-
- mvp.addChoice("Attributes",
- new AttributesPanel(applet));
- mvp.addChoice("Connections", new ConnectionsPanel());
- mvp.addChoice("Oracle", new OccupationOracle());
- add("Center", mvp);
- }
-}
diff --git a/java/gjt/test/ColumnLayoutTest.java b/java/gjt/test/ColumnLayoutTest.java
deleted file mode 100644
index fcef2151a25..00000000000
--- a/java/gjt/test/ColumnLayoutTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.net.URL;
-import java.awt.*;
-import gjt.*;
-
-/**
- * Lays out 3 image buttons, and provides controls for setting
- * orientations and gaps on the fly.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ImageButton
- * @see gjt.Box
- */
-public class ColumnLayoutTest extends UnitTest {
- public String title() {
- return "ColumnLayout Test";
- }
- public Panel centerPanel() {
- ColumnButtonPanel buttonPanel;
- Panel panel = new Panel();
-
- buttonPanel = new ColumnButtonPanel(this);
-
- panel.setLayout(new BorderLayout());
- panel.add("Center", buttonPanel);
- panel.add("North", new Box(new ColumnPicker(buttonPanel),
- "Column Layout Settings"));
- return panel;
- }
-}
-
-class ColumnButtonPanel extends Panel implements DialogClient {
- private ImageButton one, two, three;
- private Panel panel = new Panel();
- private TenPixelBorder border = new TenPixelBorder(panel);
-
- public ColumnButtonPanel(Applet applet) {
- URL cb = applet.getCodeBase();
-
- one = new ImageButton(applet.getImage(cb,
- "gifs/one.gif"));
- two = new ImageButton(applet.getImage(cb,
- "gifs/two.gif"));
- three = new ImageButton(applet.getImage(cb,
- "gifs/three.gif"));
-
- panel.setLayout(new ColumnLayout(0));
- panel.add(one);
- panel.add(two);
- panel.add(three);
-
- setLayout(new BorderLayout());
- add ("Center", border);
- }
- public void updateOrientations(Orientation horient,
- Orientation vorient,
- int gap) {
- panel.setLayout(new ColumnLayout(horient, vorient, gap));
- border.validate();
- }
- public void dialogDismissed(Dialog d) { }
-}
-
-class ColumnPicker extends Panel {
- private Label horientLabel = new Label("Horizontal:");
- private Label vorientLabel = new Label("Vertical:");
- private Label gapLabel = new Label("Gap:");
-
- private Choice hchoice = new Choice();
- private Choice vchoice = new Choice();
- private Choice gapChoice = new Choice();
-
- private ColumnButtonPanel buttonPanel;
-
- public ColumnPicker(ColumnButtonPanel buttonPanel) {
- Panel orientations = new Panel();
- Panel gap = new Panel();
-
- this.buttonPanel = buttonPanel;
- hchoice.addItem("left");
- hchoice.addItem("center");
- hchoice.addItem("right");
- hchoice.select(1);
-
- vchoice.addItem("top");
- vchoice.addItem("center");
- vchoice.addItem("bottom");
- vchoice.select(1);
-
- gapChoice.addItem("0");
- gapChoice.addItem("5");
- gapChoice.addItem("10");
- gapChoice.addItem("15");
- gapChoice.addItem("20");
-
- orientations.add(horientLabel);
- orientations.add(hchoice);
- orientations.add(vorientLabel);
- orientations.add(vchoice);
-
- gap.add(gapLabel);
- gap.add(gapChoice);
-
- add(new Box(orientations, "Orientations"));
- add(new Box(gap, "Gap"));
- }
- public boolean action(Event event, Object what) {
- String horient, vorient;
- int gap;
-
- horient = hchoice.getSelectedItem();
- vorient = vchoice.getSelectedItem();
- gap =
- (new Integer(gapChoice.getSelectedItem())).intValue();
-
- buttonPanel.updateOrientations(
- Orientation.fromString(horient),
- Orientation.fromString(vorient), gap);
-
- return true;
- }
-}
diff --git a/java/gjt/test/ComponentScrollerTest.java b/java/gjt/test/ComponentScrollerTest.java
deleted file mode 100644
index 4f0e4a2ec70..00000000000
--- a/java/gjt/test/ComponentScrollerTest.java
+++ /dev/null
@@ -1,205 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import java.util.Vector;
-import java.applet.Applet;
-import java.net.URL;
-
-import gjt.Border;
-import gjt.ButtonPanel;
-import gjt.ColumnLayout;
-import gjt.ComponentScroller;
-import gjt.EtchedBorder;
-import gjt.ImageButton;
-import gjt.RowLayout;
-import gjt.Separator;
-import gjt.StickyImageButtonController;
-
-/**
- * A phony image store, where you can purchase images.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see Border
- * @see ButtonPanel
- * @see ImageButton
- * @see Separator
- * @see StickyImageButtonController
- * @see ComponentScroller
- */
-public class ComponentScrollerTest extends UnitTest {
- public String title() {
- return "ComponentScroller Test";
- }
- public Panel centerPanel() {
- return new ComponentScrollerTestPanel(this);
- }
-}
-
-class ComponentScrollerTestPanel extends Panel {
- private ComponentScroller scroller;
- private Panel purchasePanel;
- private ImageButtonRow nextRow;
- private String[][] imageNames = {
- { "gifs/ballot_box.gif", "gifs/filmstrip.gif",
- "gifs/fly.gif", "gifs/eagle.gif",
- "gifs/bullet_hole.gif" },
- { "gifs/mad_hacker.gif", "gifs/tricycle.gif",
- "gifs/light_bulb1.gif", "gifs/scissors.gif",
- "gifs/palette.gif" },
- { "gifs/frog.gif", "gifs/gear.gif",
- "gifs/wrench.gif", "gifs/www.gif",
- "gifs/Dining.gif" },
- { "gifs/ant.gif", "gifs/abomb.gif",
- "gifs/basketball.gif", "gifs/soccer.gif",
- "gifs/skelly.gif" },
- };
- public ComponentScrollerTestPanel(Applet applet) {
- URL base = applet.getCodeBase();
- Image nextImage;
- Border border, blackBorder;
-
- purchasePanel = new Panel();
- purchasePanel.setLayout(new ColumnLayout());
-
- for(int r=0; r < imageNames.length; ++r) {
- nextRow = new ImageButtonRow();
- nextRow.setLayout(new RowLayout());
-
- for(int c=0; c < imageNames[r].length; ++c) {
- nextImage = applet.getImage(base,
- imageNames[r][c]);
- nextRow.add(nextImage);
- }
- purchasePanel.add(nextRow);
- }
- purchasePanel.add(new ButtonPurchaseForm());
-
- scroller = new ComponentScroller();
- border = new Border(purchasePanel, 3, 2);
- blackBorder = new Border(border, 1, 0);
-
- border.setLineColor(Color.gray);
- blackBorder.setLineColor(Color.black);
- scroller.setComponent(blackBorder);
-
- setLayout(new BorderLayout());
- add("Center", scroller);
- }
-}
-
-class ButtonPurchaseForm extends Panel {
- TextField nameField = new TextField(25);
- TextField addressField = new TextField(25);
- TextField cityField = new TextField(15);
- TextField stateField = new TextField(2);
-
- Choice paymentChoice = new Choice();
-
- Button paymentButton = new Button("Purchase");
- Button cancelButton = new Button("Cancel");
-
- public ButtonPurchaseForm() {
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
-
- Separator sep = new Separator();
- Label title =
- new Label("Purchase A Fine Image Today");
- Label name = new Label("Name:");
- Label address = new Label("Address:");
- Label payment = new Label("Purchase Method:");
- Label phone = new Label("Phone:");
- Label city = new Label("City:");
- Label state = new Label("State:");
-
- setLayout(gbl);
-
- paymentChoice.addItem("Visa");
- paymentChoice.addItem("MasterCard");
- paymentChoice.addItem("COD");
-
- title.setFont(new Font("Times-Roman",
- Font.BOLD + Font.ITALIC,
- 16));
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbl.setConstraints(title, gbc);
- add(title);
-
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(0,0,10,0);
- gbl.setConstraints(sep, gbc);
- add(sep);
-
- gbc.anchor = GridBagConstraints.WEST;
- gbc.gridwidth = 1;
- gbc.insets = new Insets(0,0,0,10);
- gbl.setConstraints(name, gbc);
- add(name);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbl.setConstraints(nameField, gbc);
- add(nameField);
-
- gbc.gridwidth = 1;
- gbl.setConstraints(address, gbc);
- add(address);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(addressField, gbc);
- add(addressField);
-
- gbc.gridwidth = 1;
- gbl.setConstraints(city, gbc);
- add(city);
-
- gbl.setConstraints(cityField, gbc);
- add(cityField);
-
- gbl.setConstraints(state, gbc);
- add(state);
-
- gbl.setConstraints(stateField, gbc);
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbl.setConstraints(stateField, gbc);
- add(stateField);
-
- gbc.gridwidth = 1;
- gbl.setConstraints(payment, gbc);
- gbc.insets = new Insets(5,0,5,0);
- add(payment);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.fill = GridBagConstraints.NONE;
- gbl.setConstraints(paymentChoice, gbc);
- add(paymentChoice);
-
- ButtonPanel buttonPanel = new ButtonPanel();
-
- buttonPanel.add(paymentButton);
- buttonPanel.add(cancelButton);
-
- gbc.anchor = GridBagConstraints.SOUTH;
- gbc.insets = new Insets(5,0,0,0);
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.gridwidth = 4;
- gbl.setConstraints(buttonPanel, gbc);
- add(buttonPanel);
- }
-}
-class ImageButtonRow extends Panel {
- public ImageButtonRow() {
- setLayout(new RowLayout());
- }
- public void add(Image image) {
- ImageButton button = new ImageButton(image);
- add(button);
- button.setController(
- new StickyImageButtonController(button));
- }
-}
diff --git a/java/gjt/test/ConnectionsPanel.java b/java/gjt/test/ConnectionsPanel.java
deleted file mode 100644
index 7790d0709b1..00000000000
--- a/java/gjt/test/ConnectionsPanel.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-
-class ConnectionsPanel extends Panel {
- public ConnectionsPanel() {
- add(new Label("Connections"));
- }
-}
diff --git a/java/gjt/test/DialogTest.java b/java/gjt/test/DialogTest.java
deleted file mode 100644
index f92069b7c49..00000000000
--- a/java/gjt/test/DialogTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import java.applet.Applet;
-
-import gjt.Util;
-import gjt.DialogClient;
-import gjt.MessageDialog;
-import gjt.ProgressDialog;
-import gjt.QuestionDialog;
-import gjt.YesNoDialog;
-
-/**
- * Tests 4 gjt custom dialogs:
- * <dl>
- * <dd> MessageDialog (a dialog which displays a message)
- * <dd> QuestionDialog (a dialog which asks a question)
- * <dd> YesNoDialog (a dialog with yes/no buttons)
- * <dd> ProgressDialog (a dialog which records progress of task)
- * </dl>
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.DialogClient
- * @see gjt.MessageDialog
- * @see gjt.ProgressDialog;
- * @see gjt.QuestionDialog;
- * @see gjt.YesNoDialog;
- */
-public class DialogTest extends UnitTest {
- public String title() {
- return "Graphic Java Toolkit Dialog Test";
- }
- public Panel centerPanel() {
- return new DialogLauncher();
- }
-}
-
-class DialogLauncher extends Panel implements DialogClient {
- private MessageDialog messageDialog;
- private QuestionDialog questionDialog;
- private YesNoDialog yesNoDialog;
- private ProgressDialog progressDialog;
-
- private Button messageDialogButton, questionDialogButton,
- yesNoDialogButton, progressDialogButton;
-
- public DialogLauncher() {
- setLayout(new GridLayout(0,1));
-
- add(messageDialogButton =
- new Button("Message Dialog"));
-
- add(questionDialogButton =
- new Button("Question Dialog"));
-
- add(yesNoDialogButton =
- new Button("YesNo Dialog"));
-
- add(progressDialogButton =
- new Button("Progress Dialog"));
- }
- public boolean action(Event event, Object what) {
- if(event.target == messageDialogButton) {
- messageDialog = MessageDialog.getMessageDialog(
- Util.getFrame(this), this,
- "Example Message Dialog",
- "This is an example of a message dialog.");
-
- messageDialog.show();
- }
- else if(event.target == questionDialogButton) {
- questionDialog =
- new QuestionDialog(Util.getFrame(this), this,
- "Example Question Dialog",
- "Name: ", "Gumby", 45);
- questionDialog.show();
- }
- else if(event.target == yesNoDialogButton) {
- yesNoDialog =
- YesNoDialog.getYesNoDialog(Util.getFrame(this),
- this,
- "Example YesNo Dialog",
- "Another cup of Java?");
- yesNoDialog.show();
- }
- else if(event.target == progressDialogButton) {
- progressDialog =
- ProgressDialog.getProgressDialog(
- Util.getFrame(this),
- "Example Progress Dialog",
- Color.blue);
-
- progressDialog.show();
-
- ProgressThread thread =
- new ProgressThread(progressDialog);
- thread.start();
- }
-
- return true;
- }
- public void dialogDismissed(Dialog d) {
- if(d == messageDialog) {
- System.out.println("MessageDialog Down");
- }
- if(d == questionDialog) {
- if(questionDialog.wasCancelled())
- System.out.println("CANCELLED");
- else
- System.out.println(
- "Name: " +
- questionDialog.getTextField().getText());
- }
- if(d == yesNoDialog) {
- if(yesNoDialog.answeredYes())
- System.out.println("YES");
- else
- System.out.println("NO");
- }
- }
-}
-
-class ProgressThread extends Thread {
- private ProgressDialog dialog;
- private double percentComplete = 0;
-
- public ProgressThread(ProgressDialog dialog) {
- this.dialog = dialog;
- }
- public void run() {
- while(percentComplete <= 100) {
- try { Thread.currentThread().sleep(500); }
- catch(InterruptedException e) { }
-
- dialog.setPercentComplete(percentComplete);
- percentComplete += 10;
- }
- }
-}
diff --git a/java/gjt/test/DrawnRectangleTest.java b/java/gjt/test/DrawnRectangleTest.java
deleted file mode 100644
index 19e3c195f7c..00000000000
--- a/java/gjt/test/DrawnRectangleTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import gjt.DrawnRectangle;
-import gjt.EtchedRectangle;
-import gjt.ThreeDRectangle;
-
-/**
- * 9 DrawnRectangles (some of which are EtchedRectangles
- * and ThreeDRectangles) with varying characteristics such
- * as line widths and colors.<p>
- *
- * A mouse down (any mouse button) in any of the rectangles
- * causes information about the rectangle to be printed to
- * System.out. (Output will go to Java Console in Netscape).<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.DrawnRectangle
- * @see gjt.EtchedRectangle
- * @see gjt.ThreeDRectangle
- */
-public class DrawnRectangleTest extends UnitTest {
- public String title() {
- return "Drawn Rectangle Test";
- }
- public Panel centerPanel() {
- return new DrawnRectangleTestPanel();
- }
-}
-
-class DrawnRectangleTestPanel extends Panel {
- private DrawnRectangle drawnFilledOrange,
- drawnFilledBlue, drawnBlue;
- private EtchedRectangle etchedOut,
- etchedIn, etchedFilledCyan;
- private ThreeDRectangle thinRaised,
- thinInset, thickRaised, thickInset;
-
- public DrawnRectangleTestPanel() {
- drawnFilledOrange =
- new DrawnRectangle (this, 10, 10, 100, 100);
- drawnFilledBlue =
- new DrawnRectangle (this, 135, 135, 100, 100);
- drawnBlue =
- new DrawnRectangle (this, 505, 135, 100, 100);
- etchedFilledCyan =
- new EtchedRectangle(this, 10, 135, 100, 100);
-
- etchedIn = new EtchedRectangle(this, 385, 10, 100, 100);
- etchedOut= new EtchedRectangle(this, 505, 10, 100, 100);
-
- thinRaised =
- new ThreeDRectangle(this, 135, 10, 100, 100);
- thinInset =
- new ThreeDRectangle(this, 260, 10, 100, 100);
- thickRaised =
- new ThreeDRectangle(this, 385, 135, 100, 100);
- thickInset =
- new ThreeDRectangle(this, 260, 135, 100, 100);
-
- drawnFilledOrange.setLineColor(Color.black);
-
- drawnFilledBlue.setLineColor(Color.yellow);
- drawnFilledBlue.setThickness(3);
-
- drawnBlue.setLineColor(Color.blue);
- drawnBlue.setThickness(5);
-
- thickRaised.setThickness(5);
- thickInset.setThickness (5);
- }
- public Dimension preferredSize() {
- return new Dimension(610, 270);
- }
- public void paint(Graphics g) {
- drawnFilledOrange.paint();
- drawnFilledOrange.fill (Color.orange);
-
- drawnFilledBlue.paint ();
- drawnFilledBlue.fill (Color.blue);
-
- drawnBlue.paint ();
-
- etchedIn.paintEtchedIn ();
- etchedOut.paintEtchedOut();
-
- etchedFilledCyan.paintEtchedIn();
- etchedFilledCyan.fill(Color.cyan);
-
- thinRaised.paintRaised ();
- thinInset.paintInset ();
-
- thickRaised.paintRaised ();
-
- thickInset.paintInset ();
- thickInset.fill (Color.red);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(drawnFilledOrange.inside(x,y))
- show(drawnFilledOrange);
-
- if(drawnFilledBlue.inside(x,y)) show(drawnFilledBlue);
- if(drawnBlue.inside(x,y)) show(drawnBlue);
- if(etchedIn.inside(x,y)) show(etchedIn);
- if(etchedOut.inside(x,y)) show(etchedOut);
- if(etchedFilledCyan.inside(x,y)) show(etchedFilledCyan);
- if(thinRaised.inside(x,y)) show(thinRaised);
- if(thickRaised.inside(x,y)) show(thickRaised);
- if(thinInset.inside(x,y)) show(thinInset);
- if(thickInset.inside(x,y)) show(thickInset);
-
- return true;
- }
- private void show(DrawnRectangle drawnRectangle) {
- System.out.println(drawnRectangle);
- }
-}
diff --git a/java/gjt/test/FontDialogTest.java b/java/gjt/test/FontDialogTest.java
deleted file mode 100644
index d0b535c27f9..00000000000
--- a/java/gjt/test/FontDialogTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-
-import gjt.FontDialog;
-import gjt.DialogClient;
-import gjt.Util;
-
-/**
- * Activating the button causes the FontDialog to be displayed.
- * Selecting a font from the FontDialog causes the button to
- * use the selected font.<p>
- *
- * This unit test overrides FontDialog to reset the labels
- * displayed in the buttons, and to reset the list of font
- * sizes displayed. See FontDialog for a discussion of the
- * overridden methods.<p>
- *
- *<em>Note: The FontDialog takes forever to come up in
- * Netscape.</em>
- *
- * @version 1.0, Apr 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.Util
- * @see gjt.FontDialog
- * @see gjt.DialogClient
- */
-class LotsOfSizesFontDialog extends FontDialog {
- private static String _defaultSizes[] =
- { "8", "10", "12", "14", "16",
- "18", "20", "22", "24",
- "26", "28", "30", "32", "34",
- "36", "38", "40", "42", "44",
- "46", "48", "50", "52", "54",
- "56", "58", "60", "62", "64",
- "66", "68", "70", "72", "74",
- "76", "78", "80", "82", "84",
- "86", "88", "90", "92", "94",
- "96", "98", "100" };
-
- public LotsOfSizesFontDialog(Frame frame,
- DialogClient client,
- Font font) {
- super(frame, client, font, true);
- }
- public String getPreviewButtonLabel() {
- return "Preview Selected Font";
- }
- public String getOkButtonLabel () {
- return "I'll Take It";
- }
- public String getCancelButtonLabel () {
- return "Nevermind";
- }
- public String[] getFontSizes () {
- return _defaultSizes;
- }
-}
-
-public class FontDialogTest extends UnitTest {
- public String title() { return "Font Dialog Test"; }
- public Panel centerPanel() {
- return new FontDialogTestPanel();
- }
-}
-
-class FontDialogTestPanel extends Panel
- implements DialogClient {
- private Button fontButton;
-
- public FontDialogTestPanel() {
- setLayout(new BorderLayout());
- add("Center", fontButton = new Button("Fonts ..."));
- }
- public boolean handleEvent(Event event) {
- if(event.id == Event.ACTION_EVENT) {
- LotsOfSizesFontDialog d;
- d = new LotsOfSizesFontDialog(Util.getFrame(this),
- this,
- fontButton.getFont());
- d.show();
- }
- return true;
- }
- public void dialogDismissed(Dialog d) {
- FontDialog fontDialog = (FontDialog)d;
- Font fontSelected = fontDialog.getFontSelected();
-
- if(fontSelected != null)
- fontButton.setFont(fontSelected);
-
- fontButton.requestFocus();
- }
-}
diff --git a/java/gjt/test/IconCardPanelTest.java b/java/gjt/test/IconCardPanelTest.java
deleted file mode 100644
index 33a65e1939c..00000000000
--- a/java/gjt/test/IconCardPanelTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import java.net.URL;
-import gjt.IconCardPanel;
-
-/**
- * A gjt.IconCardPanel that controls 3 Panels.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.IconCardPanel
- */
-public class IconCardPanelTest extends UnitTest {
- public String title() { return "IconCardPanel Test"; }
- public Panel centerPanel() {
- return new CardPanelTestPanel(this);
- }
-}
-class CardPanelTestPanel extends Panel {
- IconCardPanel mvp = new IconCardPanel();
-
- public CardPanelTestPanel(Applet applet) {
- URL cb = applet.getCodeBase();
-
- setLayout(new BorderLayout());
-
- Image folks = applet.getImage(cb,"gifs/cell_phone.gif");
- Image pencil = applet.getImage(cb,"gifs/clipboard.gif");
- Image library =
- applet.getImage(cb, "gifs/mad_hacker.gif");
-
- mvp.addImageButton(folks,
- "Attributes",
- new AttributesPanel(applet));
- mvp.addImageButton(pencil,
- "Connections",
- new ConnectionsPanel());
- mvp.addImageButton(library,
- "Oracle",
- new OccupationOracle());
-
- add("Center", mvp);
- }
-}
diff --git a/java/gjt/test/ImageButtonTest.java b/java/gjt/test/ImageButtonTest.java
deleted file mode 100644
index 52df6efeba0..00000000000
--- a/java/gjt/test/ImageButtonTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import gjt.Box;
-import gjt.ImageButton;
-import gjt.ImageButtonEvent;
-import gjt.SpringyImageButtonController;
-import gjt.StickyImageButtonController;
-
-/**
- * 2 ImageButtons, one springy and the other sticky, both
- * crabby.<p>
- *
- * Both ImageButtons come with an awt.Button that is used to
- * enable/disable the ImageButton it's associated with.<p>
- *
- * ImageButtonEvents, along with mouse enter and mouse exit
- * events for the two image buttons are printed out.<p>
- *
- * @version 1.0, Apr 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ImageButton
- * @see gjt.ImageButtonEvent
- * @see gjt.SpringyImageButtonController
- * @see gjt.StickyImageButtonController
- */
-public class ImageButtonTest extends UnitTest {
- public String title() {
- return "ImageButton Test";
- }
- public Panel centerPanel() {
- return new ImageButtonTestPanel(this);
- }
-}
-
-class ImageButtonTestPanel extends Panel {
- private ImageButton springyButton;
- private Button springyButtonEnabler;
- private ImageButton stickyButton;
- private Button stickyButtonEnabler;
-
- public ImageButtonTestPanel(Applet applet) {
- Image image;
- Box springyBox, stickyBox;
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
-
- image =
- applet.getImage(applet.getCodeBase(), "gifs/crab.gif");
-
- springyButton = new ImageButton(image);
- springyButtonEnabler = new Button ("Disable");
- stickyButton = new ImageButton(image);
- stickyButtonEnabler = new Button ("Disable");
-
- stickyButton.setController(
- new StickyImageButtonController(stickyButton));
-
- setLayout(gbl);
-
- gbc.anchor = GridBagConstraints.NORTH;
- springyBox = new Box(springyButton, "Springy");
- gbc.insets = new Insets(10,0,0,0);
- gbl.setConstraints(springyBox, gbc); add(springyBox);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.insets = new Insets(45,10,0,0);
- gbl.setConstraints(springyButtonEnabler, gbc);
- add(springyButtonEnabler);
-
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = 1;
- stickyBox = new Box(stickyButton, "Sticky");
- gbc.insets = new Insets(10,0,0,0);
- gbc.weighty = 1.0;
- gbl.setConstraints(stickyBox, gbc); add(stickyBox);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.insets = new Insets(45,10,0,0);
- gbl.setConstraints(stickyButtonEnabler, gbc);
- add(stickyButtonEnabler);
- }
- public boolean action(Event event, Object what) {
- Button button = (Button)event.target;
- String label = (String)what;
-
- if(button == stickyButtonEnabler) {
- if(label.equals("Disable")) stickyButton.disable();
- else stickyButton.enable();
- }
- else {
- if(label.equals("Disable")) springyButton.disable();
- else springyButton.enable();
- }
- if(label.equals("Disable")) button.setLabel("Enable");
- else button.setLabel("Disable");
-
- return true;
- }
- public boolean handleEvent(Event event) {
- boolean eventHandled = false;
-
- if(event instanceof ImageButtonEvent) {
- System.out.println("ImageButton " + event);
- eventHandled = true;
- }
- if(event.id == Event.MOUSE_ENTER) {
- if(event.target == stickyButton)
- System.out.println("Sticky Button Entered");
-
- else if(event.target == springyButton)
- System.out.println("Springy Button Entered");
-
- eventHandled = true;
- }
- if(event.id == Event.MOUSE_EXIT) {
- if(event.target == stickyButton)
- System.out.println("Sticky Button Exited");
-
- else if(event.target == springyButton)
- System.out.println("Springy Button Exited");
-
- eventHandled = true;
- }
- if(eventHandled) return true;
- else return super.handleEvent(event);
- }
-}
diff --git a/java/gjt/test/ImageDissolverTest.java b/java/gjt/test/ImageDissolverTest.java
deleted file mode 100644
index c157408d2af..00000000000
--- a/java/gjt/test/ImageDissolverTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import java.awt.image.FilteredImageSource;
-
-import gjt.Util;
-import gjt.image.ImageDissolver;
-
-/**
- * Initially displays an image. Subsequent mouse clicks in the
- * canvas containing the image cause the image to fade in or
- * fade out, depending upon it's current state.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.image.DissolveFilter
- * @see gjt.image.ImageDissolver
- */
-public class ImageDissolverTest extends UnitTest {
- public String title() {
- return "ImageDissolver Test " +
- "(Click Below to Fade Picture In/Out)";
- }
- public Panel centerPanel() {
- return new ImageDissolverTestPanel(this);
- }
-}
-
-class ImageDissolverTestPanel extends Panel {
- ImageDissolverTestCanvas canvas;
-
- public ImageDissolverTestPanel(Applet applet) {
- add(canvas = new ImageDissolverTestCanvas(applet));
- }
- public boolean mouseDown(Event event, int x, int y) {
- canvas.doFade();
- return true;
- }
-}
-
-class ImageDissolverTestCanvas extends Canvas {
- private boolean isFaded = false;
- private Image image;
- private ImageDissolver dissolver;
-
- public ImageDissolverTestCanvas(Applet applet) {
- image =
- applet.getImage(applet.getCodeBase(),"gifs/saint.gif");
-
- Util.waitForImage(this, image);
- dissolver = new ImageDissolver(this, image);
- }
- public void paint(Graphics g) {
- if( ! isFaded)
- g.drawImage(image, 0, 0, this);
- }
- public Dimension preferredSize() {
- return new Dimension(image.getWidth(this),
- image.getHeight(this));
- }
- public void doFade() {
- if(isFaded) dissolver.fadeIn (0,0);
- else dissolver.fadeOut(0,0);
-
- isFaded = isFaded ? false : true;
- }
-}
diff --git a/java/gjt/test/ImageScrollerTest.java b/java/gjt/test/ImageScrollerTest.java
deleted file mode 100644
index 0476682eb6d..00000000000
--- a/java/gjt/test/ImageScrollerTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import java.applet.Applet;
-import java.net.URL;
-
-import gjt.ImageScroller;
-import gjt.Util;
-
-/**
- * Four images are loaded; subsequent mouse clicks cycle
- * through the images, that are displayed in an ImageScroller.
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.Scroller
- * @see gjt.ImageScroller
- */
-public class ImageScrollerTest extends UnitTest {
- public String title() {
- return "ImageScroller Test";
- }
- public Panel centerPanel() {
- return new ImageScrollerTestPanel(this);
- }
-}
-
-class ImageScrollerTestPanel extends Panel {
- private Image[] images = new Image[4];
- private int imageIndex = 0;
- private ImageScroller scroller;
-
- public ImageScrollerTestPanel(Applet applet) {
- URL cb = applet.getCodeBase();
-
- images[0]=applet.getImage(cb,"gifs/ashleyAndRoy.gif");
- images[1]=applet.getImage(cb,"gifs/ashleyAndSabre.gif");
- images[2]=applet.getImage(cb,"gifs/anjinAndMariko.gif");
- images[3]=applet.getImage(cb,"gifs/ashleyAndAnjin.gif");
-
- setLayout(new BorderLayout());
- add("Center", scroller = new ImageScroller(images[0]));
- }
- public boolean mouseUp(Event event, int x, int y) {
- if(imageIndex == images.length-1) imageIndex = 0;
- else imageIndex++;
-
- Util.setCursor(Frame.WAIT_CURSOR, this);
- scroller.resetImage(images[imageIndex]);
- Util.setCursor(Frame.DEFAULT_CURSOR, this);
-
- return true;
- }
-}
diff --git a/java/gjt/test/LabelCanvasTest.java b/java/gjt/test/LabelCanvasTest.java
deleted file mode 100644
index cb4c0a857ae..00000000000
--- a/java/gjt/test/LabelCanvasTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package gjt.test;
-import java.applet.Applet;
-import java.awt.Event;
-import java.awt.Panel;
-import java.awt.Insets;
-import java.awt.Graphics;
-import gjt.LabelCanvas;
-import gjt.SelectionEvent;
-import gjt.Util;
-
-/**
- * Four LabelCanvases, each with different insets. The leftmost
- * LabelCanvas has standard insets (2 all around), while the
- * other three were constructed as follows:
- * <pre>
- * insetFive.setInsets (new Insets(5,5,5,5));
- * insetTen.setInsets (new Insets(10,10,10,10));
- * insetFifteen.setInsets(new Insets(15,15,15,15));
- * </pre><p>
- *
- * LabelCanvases generate SelectionEvents, that we watch
- * for in our handleEvent() method, and print out.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.LabelCanvas
- */
-public class LabelCanvasTest extends UnitTest {
- public String title() { return "LabelCanvas Test"; }
- public Panel centerPanel() {
- return new LabelCanvasTestPanel(this);
- }
-}
-
-class LabelCanvasTestPanel extends Panel {
- Applet applet;
- public LabelCanvasTestPanel(Applet applet) {
- this.applet = applet;
- LabelCanvas standard =
- new LabelCanvas("Standard Insets");
- LabelCanvas insetFive =
- new LabelCanvas("Insets = Five");
- LabelCanvas insetTen =
- new LabelCanvas("Insets = Ten");
- LabelCanvas insetFifteen =
- new LabelCanvas("Insets = Fifteen");
-
- insetFive.setInsets (new Insets(5,5,5,5));
- insetTen.setInsets (new Insets(10,10,10,10));
- insetFifteen.setInsets(new Insets(15,15,15,15));
-
- add(standard);
- add(insetFive);
- add(insetTen);
- add(insetFifteen);
- }
- public boolean handleEvent(Event event) {
- if(event instanceof SelectionEvent) {
- SelectionEvent sevent = (SelectionEvent)event;
- LabelCanvas canvas = (LabelCanvas)event.target;
-
- if(sevent.isSelected())
- System.out.println("LabelCanvas " +
- canvas.getLabel() +
- " selected");
- else
- System.out.println("LabelCanvas " +
- canvas.getLabel() +
- " deselected");
- return true;
- }
- return super.handleEvent(event);
- }
-}
diff --git a/java/gjt/test/MessageDialogTest.java b/java/gjt/test/MessageDialogTest.java
deleted file mode 100644
index 6efddd08cb4..00000000000
--- a/java/gjt/test/MessageDialogTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-
-package gjt.test;
-
-import java.awt.*;
-import java.applet.Applet;
-
-import gjt.MessageDialog;
-import gjt.DialogClient;
-import gjt.Util;
-
-/**
- * Simple unit test that exercises gjt.MessageDialog. This
- * unit test serves to illustrate the use of gjt.DialogClient.
- * For a unit test which covers all of the gjt dialogs,
- * see gjt.test.DialogTest.
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.DialogClient
- * @see gjt.MessageDialog
- */
-public class MessageDialogTest extends UnitTest {
- public String title() {
- return "Message Dialog Test";
- }
- public Panel centerPanel() {
- return new MessageDialogLauncher();
- }
-}
-
-class MessageDialogLauncher extends Panel
- implements DialogClient {
- private MessageDialog messageDialog;
-
- public MessageDialogLauncher() {
- add(new Button("Show Message Dialog"));
- }
- public boolean action(Event event, Object what) {
- messageDialog = MessageDialog.getMessageDialog(
- Util.getFrame(this), this,
- "Example Message Dialog",
- "This is an example of a message dialog.");
- messageDialog.show();
- return true;
- }
- public void dialogDismissed(Dialog d) {
- System.out.println("MessageDialog Down");
- }
-}
diff --git a/java/gjt/test/OccupationOracle.java b/java/gjt/test/OccupationOracle.java
deleted file mode 100644
index a34c2ad2064..00000000000
--- a/java/gjt/test/OccupationOracle.java
+++ /dev/null
@@ -1,334 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-
-// The OccupationOracle class makes a guess at a person's occupation
-// within an engineering organization based on a few "key" traits.
-// Invalid entries in numeric fields result in an "Unknown" occupation.
-// This applet uses the awt.GridBagLayout class to structure the
-// occupation form. The awt.GridBagLayout class allows fields to
-// be placed in rows and columns within a form. Each component
-// is given a "display area" based on the constraints in effect
-// when it is added to the layout.
-
-// Author: Jerry Jackson (thanks, sifu)
-
-public class OccupationOracle extends Panel {
-
- // Construct the form. Create each component of the form and
- // add it to the layout. Initialize the occupation to "Unknown".
-
- public OccupationOracle() {
-
- // Use the GridBagLayout layout to construct rows and
- // columns.
-
- GridBagLayout gridbag = new GridBagLayout();
-
- // Create a new set of constraints to use when adding
- // a component to the layout. The constraint values
- // in effect when a component is added to the layout
- // are cloned and stored in conjunction with the component
- // by the layout.
-
- GridBagConstraints constraints = new GridBagConstraints();
-
- // Set the font for the form.
-
- //setFont(new Font("TimesRoman", Font.BOLD, 12));
-
- // Associate the GridBagLayout object with the applet.
-
- setLayout(gridbag);
-
- // The "anchor" constraint determines how a component
- // is justified within its display area.
-
- constraints.anchor = GridBagConstraints.WEST;
-
- // Determines how much space should be given to this component.
- // if left at 0.0, all components clump up in the middle as the
- // padding is applied to the outside.
-
- constraints.weightx = 1.0;
-
- // Create a name label and text field.
-
- makeNameField();
-
- // Setting the "gridwidth" constraint to 1 will
- // cause the component to take up the minimum
- // horizontal space in its row.
-
- constraints.gridwidth = 1;
-
- // "addFormComponent" will associate the current constraints
- // with a component and add the component to the form.
-
- addFormComponent(gridbag, nameLabel, constraints);
-
- // Setting the "gridwidth" constraint to REMAINDER will
- // cause the component to fill up the remainder of its row.
- // i.e. it will be the last entry in the row.
-
- constraints.gridwidth = GridBagConstraints.REMAINDER;
-
- // The "fill" constraint tells what to do if the item is in
- // a area larger than it is. In this case we want to fill
- // any extra horizontal space.
-
- constraints.fill = GridBagConstraints.HORIZONTAL;
-
- addFormComponent(gridbag, nameField, constraints);
-
- // Create and add an age label and text field.
-
- makeAgeField();
-
- constraints.gridwidth = 1;
- constraints.fill = GridBagConstraints.NONE;
- constraints.weightx = 0.0;
- addFormComponent(gridbag, ageLabel, constraints);
- constraints.gridwidth = GridBagConstraints.REMAINDER;
- constraints.weightx = 1.0;
- addFormComponent(gridbag, ageField, constraints);
-
- // Create and add a world view label and a single checkbox
- // for a true/false value.
-
- makeWorldViewField();
-
- constraints.gridwidth = 1;
- constraints.weightx = 0.0;
- addFormComponent(gridbag, worldViewLabel, constraints);
- constraints.gridwidth = GridBagConstraints.REMAINDER;
- constraints.weightx = 1.0;
- addFormComponent(gridbag, worldViewField, constraints);
-
-
- // Create and add a coffee consumption label and text field.
-
- makeCoffeeField();
-
- constraints.gridwidth = 1;
- constraints.weightx = 0.0;
- addFormComponent(gridbag, coffeeLabel, constraints);
- constraints.gridwidth = GridBagConstraints.REMAINDER;
- constraints.weightx = 1.0;
- addFormComponent(gridbag, coffeeField, constraints);
-
-
- // Create and add a fashion sense label and a checkbox
- // group that has three mutually exclusive values.
-
- makeFashionField();
-
- constraints.gridwidth = GridBagConstraints.REMAINDER;
- constraints.weightx = 0.0;
- constraints.weighty = 0.0;
- addFormComponent(gridbag, fashionLabel, constraints);
-
- // The three checkboxes that represent fashion sense.
-
- addFormComponent(gridbag, low, constraints);
- addFormComponent(gridbag, medium, constraints);
- addFormComponent(gridbag, high, constraints);
-
- // The Occupation field is output only.
-
- makeOccupationField();
-
- constraints.gridwidth = 1;
- constraints.weightx = 0.0;
- constraints.weighty = 1.0;
- constraints.fill = GridBagConstraints.NONE;
- addFormComponent(gridbag, occupationLabel, constraints);
- constraints.fill = GridBagConstraints.HORIZONTAL;
- constraints.gridwidth = GridBagConstraints.REMAINDER;
- constraints.weightx = 1.0;
- addFormComponent(gridbag, occupationField, constraints);
-
- // Display the initial "Unknown" occupation.
-
- recalculateOccupation();
-
- resize(400, 250);
- }
-
- // The paint() method for this applet just calls the paintComponents()
- // method which is defined by the Container class. It causes all
- // the components visible within the Container to get painted.
-
- public void paint(Graphics g) {
- paintComponents(g);
- }
-
- // When any action occurs within the form we do the same thing:
- // recalculate the person's occupation.
-
- public boolean action(Event event, Object arg) {
- recalculateOccupation();
- return true;
- }
-
- // A helper function that associates constraints with a component
- // and adds it to the form.
-
- private void addFormComponent(GridBagLayout grid, Component comp,
- GridBagConstraints c) {
- grid.setConstraints(comp, c);
- add(comp);
- }
-
-
- // recalculateOccupation() fetches the values of each component
- // and computes an occupation based on some truly stupid heuristics.
-
- private void recalculateOccupation() {
-
- // If we don't have a name yet we might incorrectly categorize
- // the CEO!
-
- if (nameField.getText() == "") {
- occupationField.setText("Unknown");
- }
-
- // Fetch other important values that we'll use in our
- // calculations.
-
- int age;
- int coffeeConsumption;
- boolean binaryView = worldViewField.getState();
-
-
- // Try to fetch integer values for age and coffeeConsumption.
- // If the values in the fields can't be parsed as integers,
- // set the occupation to "Unknown".
-
- try {
- age = Integer.parseInt(ageField.getText());
- coffeeConsumption = Integer.parseInt(coffeeField.getText());
- } catch (Exception e) {
- occupationField.setText("Unknown");
- return;
- }
-
- // Check for the CEO.
-
- String name = nameField.getText();
-
- if (name.endsWith("II") ||
- name.endsWith("III") ||
- name.endsWith("IV")) {
-
- if (age < 35 || coffeeConsumption < 4) {
- occupationField.setText("Junior Executive");
- } else {
- occupationField.setText("CEO");
- }
-
- return;
- }
-
- // Fashion sense is a critical piece of information.
- // The getCurrent() method of CheckboxGroup returns whichever
- // Checkbox in the group is currently selected. Only one
- // can be selected at a time.
-
- Checkbox fashionValue = fashionGroup.getCurrent();
-
- if (fashionValue == low || fashionValue == medium) {
-
- // There are two kinds of people in the world: those who
- // divide people into two kinds and those who don't.
-
- if (binaryView && coffeeConsumption >= 4) {
- occupationField.setText("Engineer");
-
- } else if ((age > 40 && binaryView) ||
- (age < 40 && coffeeConsumption >= 4)) {
- occupationField.setText("Engineering Manager");
-
- } else {
- occupationField.setText("Product Manager");
- }
-
- } else {
-
- // High fashion sense. Not an engineer!
-
- if (binaryView || coffeeConsumption >= 4) {
- occupationField.setText("Vice President");
-
- } else {
- occupationField.setText("Product Marketing");
- }
- }
- }
-
- // Helper functions to create form components.
-
- private void makeNameField() {
- nameLabel = new Label("Name: ");
- nameField = new TextField(40);
- }
-
- private void makeAgeField() {
- ageLabel = new Label("Age: ");
- ageField = new TextField(3);
- }
-
- private void makeOccupationField() {
- occupationLabel = new Label("Occupation: ");
- occupationField = new TextField(40);
- }
-
- private void makeWorldViewField() {
- worldViewLabel = new Label("Binary World View: ");
- worldViewField = new Checkbox();
- }
-
- private void makeCoffeeField() {
- coffeeLabel = new Label("Coffee consumption: ");
- coffeeField = new TextField(3);
- }
-
- private void makeFashionField() {
- fashionLabel = new Label("Fashion sense:");
-
- fashionGroup = new CheckboxGroup();
- low = new Checkbox("Low ", fashionGroup, false);
- medium = new Checkbox("Medium", fashionGroup, true);
- high = new Checkbox("High ", fashionGroup, false);
- }
-
- // Text fields.
-
- private TextField nameField;
- private TextField ageField;
- private TextField coffeeField;
- private TextField occupationField;
-
- // Labels.
-
- private Label nameLabel;
- private Label ageLabel;
- private Label coffeeLabel;
- private Label fashionLabel;
- private Label worldViewLabel;
- private Label occupationLabel;
-
- // Checkboxes.
-
- private Checkbox worldViewField;
- private Checkbox low;
- private Checkbox medium;
- private Checkbox high;
-
- // The fashion sense checkbox group.
-
- private CheckboxGroup fashionGroup;
-}
-
-
diff --git a/java/gjt/test/RowLayoutTest.java b/java/gjt/test/RowLayoutTest.java
deleted file mode 100644
index eb7b419ca17..00000000000
--- a/java/gjt/test/RowLayoutTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.net.URL;
-import java.awt.*;
-import gjt.*;
-
-/**
- * Lays out 3 image buttons, and provides controls for setting
- * orientations and gaps on the fly.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ImageButton
- * @see gjt.Box
- */
-public class RowLayoutTest extends UnitTest {
- public String title() {
- return "RowLayout Test";
- }
- public Panel centerPanel() {
- RowButtonPanel buttonPanel = new RowButtonPanel(this);
- Panel panel = new Panel();
-
- panel.setLayout(new BorderLayout());
- panel.add("Center", buttonPanel);
- panel.add("North", new Box(new RowPicker(buttonPanel),
- "Row Layout Settings"));
- return panel;
- }
-}
-
-class RowButtonPanel extends Panel implements DialogClient {
- private ImageButton one, two, three;
- private Panel panel = new Panel();
- private TenPixelBorder border = new TenPixelBorder(panel);
-
- public RowButtonPanel(Applet applet) {
- URL cb = applet.getCodeBase();
-
- one = new ImageButton(applet.getImage(cb,
- "gifs/one.gif"));
- two = new ImageButton(applet.getImage(cb,
- "gifs/two.gif"));
- three = new ImageButton(applet.getImage(cb,
- "gifs/three.gif"));
-
- panel.setLayout(new RowLayout(0));
- panel.add(one);
- panel.add(two);
- panel.add(three);
-
- setLayout(new BorderLayout());
- add ("Center", border);
- }
- public void updateOrientations(Orientation horient,
- Orientation vorient,
- int gap) {
- panel.setLayout(new RowLayout(horient, vorient, gap));
- border.validate();
- }
- public void dialogDismissed(Dialog d) { }
-}
-
-class RowPicker extends Panel {
- private Label horientLabel = new Label("Horizontal:");
- private Label vorientLabel = new Label("Vertical:");
- private Label gapLabel = new Label("Gap:");
-
- private Choice hchoice = new Choice();
- private Choice vchoice = new Choice();
- private Choice gapChoice = new Choice();
-
- private RowButtonPanel buttonPanel;
-
- public RowPicker(RowButtonPanel buttonPanel) {
- Panel orientations = new Panel();
- Panel gap = new Panel();
-
- this.buttonPanel = buttonPanel;
- hchoice.addItem("left");
- hchoice.addItem("center");
- hchoice.addItem("right");
- hchoice.select(1);
-
- vchoice.addItem("top");
- vchoice.addItem("center");
- vchoice.addItem("bottom");
- vchoice.select(1);
-
- gapChoice.addItem("0");
- gapChoice.addItem("5");
- gapChoice.addItem("10");
- gapChoice.addItem("15");
- gapChoice.addItem("20");
-
- orientations.add(horientLabel);
- orientations.add(hchoice);
- orientations.add(vorientLabel);
- orientations.add(vchoice);
-
- gap.add(gapLabel);
- gap.add(gapChoice);
-
- add(new Box(orientations, "Orientations"));
- add(new Box(gap, "Gap"));
- }
- public boolean action(Event event, Object what) {
- String horient, vorient;
- int gap;
-
- horient = hchoice.getSelectedItem();
- vorient = vchoice.getSelectedItem();
- gap =
- (new Integer(gapChoice.getSelectedItem())).intValue();
-
- buttonPanel.updateOrientations(
- Orientation.fromString(horient),
- Orientation.fromString(vorient), gap);
-
- return true;
- }
-}
diff --git a/java/gjt/test/RubberbandTest.java b/java/gjt/test/RubberbandTest.java
deleted file mode 100644
index ae256fb2c3a..00000000000
--- a/java/gjt/test/RubberbandTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import gjt.DrawingPanel;
-import gjt.Separator;
-import gjt.RowLayout;
-import gjt.rubberband.*;
-
-/**
- * A simple drawing applet that demonstrates the utility of
- * the gjt.rubberband package.<p>
- *
- * Note that this unit test also serves as the unit test for
- * gjt.DrawingPanel.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.DrawingPanel
- * @see gjt.rubberband.Rubberband
- * @see gjt.rubberband.RubberbandLine
- * @see gjt.rubberband.RubberbandRectangle
- * @see gjt.rubberband.RubberbandEllipse
- * @see gjt.rubberband.RubberbandPanel
- */
-public class RubberbandTest extends UnitTest {
- public String title() {
- return "Rubberband Test";
- }
- public Panel centerPanel() {
- return new RubberbandTestPanel();
- }
-}
-
-class RubberbandTestPanel extends Panel {
- private DrawingPanel drawingPanel;
- private ChoicePanel choicePanel;
-
- public RubberbandTestPanel() {
- drawingPanel = new DrawingPanel();
- choicePanel = new ChoicePanel(drawingPanel);
-
- setLayout(new BorderLayout());
- add("North", choicePanel);
- add("Center", drawingPanel);
- }
-}
-
-class ChoicePanel extends Panel {
- private DrawingPanel drawingPanel;
- private Color color;
- private Checkbox fillCheckbox = new Checkbox();
-
- public ChoicePanel(DrawingPanel drawingPanel) {
- Panel choicePanel = new Panel();
- Choice geometricChoice = new Choice();
- Choice colorChoice = new Choice();
-
- this.drawingPanel = drawingPanel;
-
- geometricChoice.addItem("Lines");
- geometricChoice.addItem("Rectangles");
- geometricChoice.addItem("Ellipses");
-
- colorChoice.addItem("Black");
- colorChoice.addItem("Red");
- colorChoice.addItem("Blue");
- colorChoice.addItem("Gray");
- colorChoice.addItem("White");
-
- choicePanel.setLayout(new RowLayout(10));
- choicePanel.add(new Label("Shape:"));
- choicePanel.add(geometricChoice);
- choicePanel.add(new Label("Color:"));
- choicePanel.add(colorChoice);
- choicePanel.add(new Label("Fill:"));
- choicePanel.add(fillCheckbox);
-
- setLayout(new BorderLayout());
- add("Center", choicePanel);
- add("South", new Separator());
- }
- public boolean action(Event event, Object what) {
- if(event.target instanceof Checkbox) {
- drawingPanel.setFill(fillCheckbox.getState());
- }
- else if(event.target instanceof Choice) {
- if(((String)what).equals("Lines")) {
- fillCheckbox.setState(false);
- drawingPanel.drawLines();
- }
- else if(((String)what).equals("Rectangles")) {
- System.out.println("Rectangles");
- drawingPanel.drawRectangles();
- }
- else if(((String)what).equals("Ellipses"))
- drawingPanel.drawEllipses ();
- else if(((String)what).equals("Black"))
- drawingPanel.setColor(Color.black);
- else if(((String)what).equals("Red"))
- drawingPanel.setColor(Color.red);
- else if(((String)what).equals("Blue"))
- drawingPanel.setColor(Color.blue);
- else if(((String)what).equals("Gray"))
- drawingPanel.setColor(Color.gray);
- else if(((String)what).equals("White"))
- drawingPanel.setColor(Color.white);
- }
- return true;
- }
- public Insets insets() { return new Insets(5,0,5,0); }
-}
diff --git a/java/gjt/test/SeparatorTest.java b/java/gjt/test/SeparatorTest.java
deleted file mode 100644
index 3dd80173ea3..00000000000
--- a/java/gjt/test/SeparatorTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import gjt.Etching;
-import gjt.Separator;
-
-/**
- * Two Separators, one horizontal and the other vertical, the
- * former etched in, and the latter etched out are laid out with
- * an adorning Label for each.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.UnitTest
- * @see gjt.Separator
- */
-public class SeparatorTest extends UnitTest {
- public String title () { return "Separator Test"; }
- public Panel centerPanel() {
- return new SeparatorTestPanel();
- }
-}
-
-class SeparatorTestPanel extends Panel {
- public SeparatorTestPanel() {
- setLayout(new BorderLayout());
- add("North", new SeparatorTestNorthPanel ());
- add("Center", new SeparatorTestCenterPanel());
- }
-}
-
-class SeparatorTestNorthPanel extends Panel {
- Separator separator = new Separator();
-
- public SeparatorTestNorthPanel() {
- setLayout(new BorderLayout());
- add("North", new Label("North Of Etched-In Separator"));
- add("South", separator);
- }
-}
-
-class SeparatorTestCenterPanel extends Panel {
- Separator separator = new Separator(Etching.OUT);
-
- public SeparatorTestCenterPanel() {
- GridBagConstraints gbc = new GridBagConstraints();
- GridBagLayout gbl = new GridBagLayout();
- Label label = new Label("West Of Etched-Out Separator");
-
- setLayout(gbl);
- gbc.anchor = GridBagConstraints.WEST;
- gbc.insets = new Insets(0,0,0,10);
- gbl.setConstraints(label, gbc);
- add(label);
-
- gbc.insets = new Insets(0,0,0,0);
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
- gbc.fill = GridBagConstraints.VERTICAL;
- gbl.setConstraints(separator, gbc);
- add(separator);
-
- }
-}
diff --git a/java/gjt/test/SimpleAnimationTest.java b/java/gjt/test/SimpleAnimationTest.java
deleted file mode 100644
index faf0c7c611c..00000000000
--- a/java/gjt/test/SimpleAnimationTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package gjt.test;
-
-import java.net.URL;
-import java.applet.Applet;
-import java.awt.*;
-
-import gjt.Util;
-import gjt.Orientation;
-import gjt.animation.*;
-
-/**
- * An animation playfield containing a lone sprite that bounces
- * off the boundaries of the playfield.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.test.AnimationTest
- * @see gjt.animation.Playfield
- * @see gjt.animation.Sprite
- */
-public class SimpleAnimationTest extends UnitTest {
- public String title() {
- return "Simple Animation - Mouse Down Starts/Stops";
- }
- public Panel centerPanel() {
- return new SimpleAnimationTestPanel(this);
- }
-}
-
-class SimpleAnimationTestPanel extends Panel {
- public SimpleAnimationTestPanel(Applet applet) {
- setLayout(new BorderLayout());
- add("Center", new SimplePlayfield(applet));
- }
-}
-
-class SimplePlayfield extends Playfield {
- private Applet applet;
- private URL cb;
- private Sprite javaDrinker;
- private Sequence spinSequence;
-
- public SimplePlayfield(Applet applet) {
- this.applet = applet;
- cb = applet.getCodeBase();
- makeSequencesAndSprites();
- }
- public void paintBackground(Graphics g) {
- Image bg = applet.getImage(cb, "gifs/background.gif");
- Util.wallPaper(this, g, bg);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(running() == true) stop ();
- else start();
- return true;
- }
- public void spriteCollision(Sprite sprite, Sprite sprite2) {
- // Nothing to do: only 1 sprite!
- }
- public void edgeCollision(Sprite sprite,
- Orientation orientation) {
- if(orientation == Orientation.RIGHT ||
- orientation == Orientation.LEFT)
- sprite.reverseX();
- else
- sprite.reverseY();
- }
- private void makeSequencesAndSprites() {
- String file;
- Point startLoc = new Point(10, 10);
- Image[] spinImages = new Image[19];
-
- for(int i=0; i < spinImages.length; ++i) {
- file = "gifs/spin";
-
- if(i < 10) file += "0" + i + ".gif";
- else file += i + ".gif";
-
- spinImages[i] = applet.getImage(cb, file);
- }
- spinSequence = new Sequence(this, spinImages);
- javaDrinker = new Sprite(this, spinSequence, startLoc);
-
- javaDrinker.setMoveVector(new Point(2,2));
- addSprite(javaDrinker);
- }
-}
diff --git a/java/gjt/test/SimpleBargaugeTest.java b/java/gjt/test/SimpleBargaugeTest.java
deleted file mode 100644
index 57eb464f4b1..00000000000
--- a/java/gjt/test/SimpleBargaugeTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import gjt.Bargauge;
-
-/**
- * A lone Barguage which animates. This unit test is meant to
- * illustrate that a Bargauge can cope with having its
- * orientation chanaged from horizontal to vertical or
- * vice-versa. This test is best run in appletviewer, so that
- * the window may be resized such that the Bargauge changes its
- * orientation.<p>
- *
- * <em>
- * Warning: An AWT bug causes this test to be a gluttenous
- * consumer of resources (especially under Win95). A mouse down
- * will halt the animation thread along with its consumption of
- * resources.<p>
- * </em>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.Bargauge
- */
-public class SimpleBargaugeTest extends UnitTest {
- public String title() {
- return "Simple Bargauge Test";
- }
- public Panel centerPanel() {
- return new SimpleBargaugeTestPanel();
- }
-}
-
-class SimpleBargaugeTestPanel extends Panel implements Runnable {
- private Bargauge gauge = new Bargauge(Color.blue);
- private boolean running = true;
- private Thread t;
-
- public SimpleBargaugeTestPanel() {
- setLayout(new BorderLayout());
- add("Center", gauge);
-
- t = new Thread(this);
- t.start();
- }
- public void run() {
- while(true) {
- try { Thread.currentThread().sleep(500,0); }
- catch(InterruptedException e) { }
-
- gauge.setFillPercent(Math.random() * 100);
- gauge.fill();
- }
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(running) { t.suspend(); running = false; }
- else { t.resume (); running = true; }
- return true;
- }
-}
diff --git a/java/gjt/test/StateButtonTest.java b/java/gjt/test/StateButtonTest.java
deleted file mode 100644
index 508aee1682e..00000000000
--- a/java/gjt/test/StateButtonTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import java.net.URL;
-import gjt.StateButton;
-import gjt.ImageButtonEvent;
-
-/**
- * A StateButton which cycles through a fascinating series of
- * Images.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.StateButton
- */
-public class StateButtonTest extends UnitTest {
- public String title () { return "StateButton Test"; }
- public Panel centerPanel() {
- return new StateButtonTestPanel(this);
- }
-}
-
-class StateButtonTestPanel extends Panel {
- private URL codeBase;
- private Image[] images;
- private StateButton button;
-
- public StateButtonTestPanel(Applet applet) {
- codeBase = applet.getCodeBase();
- images = new Image[3];
- images[0] = applet.getImage(codeBase, "gifs/fly.gif");
- images[1] = applet.getImage(codeBase, "gifs/frog.gif");
- images[2] = applet.getImage(codeBase, "gifs/eagle.gif");
- button = new StateButton(images);
-
- setLayout(new FlowLayout(FlowLayout.CENTER, 20, 20));
- add (button);
- }
-}
diff --git a/java/gjt/test/TenPixelBorder.java b/java/gjt/test/TenPixelBorder.java
deleted file mode 100644
index bab694d0fb1..00000000000
--- a/java/gjt/test/TenPixelBorder.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-
-public class TenPixelBorder extends Panel {
- public TenPixelBorder(Component borderMe) {
- setLayout(new BorderLayout());
- add("Center", borderMe);
- }
- public void paint(Graphics g) {
- Dimension mySize = size();
- Insets myInsets = insets();
-
- g.setColor(Color.gray);
-
- // Top Inset area
- g.fillRect(0,
- 0,
- mySize.width,
- myInsets.top);
-
- // Left Inset area
- g.fillRect(0,
- 0,
- myInsets.left,
- mySize.height);
-
- // Right Inset area
- g.fillRect(mySize.width - myInsets.right,
- 0,
- myInsets.right,
- mySize.height);
-
- // Bottom Inset area
- g.fillRect(0,
- mySize.height - myInsets.bottom,
- mySize.width,
- mySize.height);
- }
- public Insets insets() {
- return new Insets(10,10,10,10);
- }
-
-}
diff --git a/java/gjt/test/TitledPanel.java b/java/gjt/test/TitledPanel.java
deleted file mode 100644
index cb8d054e888..00000000000
--- a/java/gjt/test/TitledPanel.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package gjt.test;
-
-import java.awt.BorderLayout;
-import java.awt.Label;
-import java.awt.Panel;
-import gjt.Separator;
-
-/**
- * A Panel fitted with a BorderLayout that contains a Label
- * (title) in the North, and a Separator in the South.
- *
- * @version 1.0, Apr 2 1996
- * @author David Geary
- */
-
-public class TitledPanel extends Panel {
- public TitledPanel(String title) {
- setLayout(new BorderLayout());
- add("North", new Label(title, Label.CENTER));
- add("South", new Separator());
- }
-}
diff --git a/java/gjt/test/ToolbarTest.java b/java/gjt/test/ToolbarTest.java
deleted file mode 100644
index f739ce96236..00000000000
--- a/java/gjt/test/ToolbarTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package gjt.test;
-
-import java.net.URL;
-import java.awt.*;
-import java.applet.Applet;
-import gjt.ExclusiveImageButtonPanel;
-import gjt.ImageButton;
-import gjt.ImageButtonEvent;
-import gjt.Orientation;
-import gjt.Toolbar;
-import gjt.Separator;
-
-/**
- * A Toolbar to the north, and an ExclusiveImageButtonPanel on
- * the west give this little applet its own unique charm.
- * Owner is motivated.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ExclusiveImageButtonPanel
- * @see gjt.ImageButton
- * @see gjt.Toolbar
- */
-public class ToolbarTest extends UnitTest {
- public String title() {
- return "Toolbar/ImageButtonPanel Test";
- }
- public Panel centerPanel() {
- return new ToolbarTestPanel(this);
- }
-}
-
-class ToolbarTestPanel extends Panel {
- ImageButton newButton, openButton, diskButton,
- printButton, cutButton, copyButton,
- pasteButton;
-
- public ToolbarTestPanel(Applet app) {
- setLayout(new BorderLayout());
- add("North", makeToolbar(app, app.getCodeBase()));
- add("West", makePalette(app, app.getCodeBase()));
- }
- public boolean handleEvent(Event event) {
- if(event instanceof ImageButtonEvent) {
- ImageButtonEvent ibevent = (ImageButtonEvent)event;
-
- if(ibevent.isActivated()) {
- if(event.target == newButton)
- System.out.println("New Button Activated");
- if(event.target == openButton)
- System.out.println("Open Button Activated");
- if(event.target == diskButton)
- System.out.println("Disk Button Activated");
- if(event.target == printButton)
- System.out.println("Print Button Activated");
- if(event.target == cutButton)
- System.out.println("Cut Button Activated");
- if(event.target == copyButton)
- System.out.println("Copy Button Activated");
- if(event.target == pasteButton)
- System.out.println("Paste Button Activated");
-
- return true;
- }
- }
-
- return super.handleEvent(event);
- }
- private Toolbar makeToolbar(Applet app, URL cb) {
- Toolbar tb = new Toolbar(10, 0);
-
- newButton = tb.add(app.getImage(cb, "gifs/new.gif"));
- openButton = tb.add(app.getImage(cb, "gifs/open.gif"));
- diskButton = tb.add(app.getImage(cb, "gifs/disk.gif"));
-
- tb.addSpacer(newButton.preferredSize().width);
-
- printButton = tb.add(app.getImage(cb, "gifs/print.gif"));
-
- tb.addSpacer(newButton.preferredSize().width);
-
- cutButton = tb.add(app.getImage(cb, "gifs/cut.gif"));
- copyButton = tb.add(app.getImage(cb, "gifs/copy.gif"));
- pasteButton = tb.add(app.getImage(cb, "gifs/paste.gif"));
-
- return tb;
- }
- private Panel makePalette(Applet app, URL cb) {
- ExclusiveImageButtonPanel iconPalette;
- Panel iconPalettePanel = new Panel();
-
- iconPalette = new ExclusiveImageButtonPanel(
- Orientation.VERTICAL,
- Orientation.CENTER,
- Orientation.TOP, 10);
-
- iconPalette.add(app.getImage(cb,"gifs/ballot_box.gif"));
- iconPalette.add(app.getImage(cb,"gifs/palette.gif"));
- iconPalette.add(app.getImage(cb,"gifs/light_bulb1.gif"));
- iconPalette.add(app.getImage(cb,"gifs/Dining.gif"));
- iconPalette.add(app.getImage(cb,"gifs/scissors.gif"));
- iconPalette.add(app.getImage(cb,"gifs/tricycle.gif"));
-
- iconPalettePanel = new Panel();
- iconPalettePanel.setLayout(new BorderLayout());
- iconPalettePanel.add ("Center", iconPalette);
- iconPalettePanel.add ("East", new Separator());
- return iconPalettePanel;
- }
-}
diff --git a/java/gjt/test/TwoDrinkersAnimationTest.java b/java/gjt/test/TwoDrinkersAnimationTest.java
deleted file mode 100644
index ae4041b9eb6..00000000000
--- a/java/gjt/test/TwoDrinkersAnimationTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package gjt.test;
-
-import java.net.URL;
-import java.applet.Applet;
-import java.awt.*;
-import java.awt.Panel;
-
-import gjt.Util;
-import gjt.Orientation;
-import gjt.animation.*;
-
-/**
- * An animation playfield containing two "java drinkers", that
- * both bounce off the sides of the playfield.<p>
- *
- * One of the java drinkers moves slow and spins fast, while
- * the other java drinker moves fast and spins slow. When
- * the two java drinkers collide, they both play a bump
- * sequence - at different speeds.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.test.AnimationTest
- * @see gjt.animation.Playfield
- * @see gjt.animation.Sprite
- */
-public class TwoDrinkersAnimationTest extends UnitTest {
- public String title() {
- return
- "TwoDrinkers Animation - Mouse Down Starts/Stops";
- }
- public Panel centerPanel() {
- return new TwoDrinkersAnimationTestPanel(this);
- }
-}
-
-class TwoDrinkersAnimationTestPanel extends Panel {
- public TwoDrinkersAnimationTestPanel(Applet applet) {
- setLayout(new BorderLayout());
- add("Center", new TwoDrinkersPlayfield(applet));
- }
-}
-
-class TwoDrinkersPlayfield extends Playfield {
- private Applet applet;
- private URL cb;
- private Sprite moveFastSpinSlow, moveSlowSpinFast;
- private Sequence fastSpinSequence,
- slowSpinSequence,
- fastBumpSequence,
- slowBumpSequence;
-
- public TwoDrinkersPlayfield(Applet applet) {
- this.applet = applet;
- cb = applet.getCodeBase();
- makeSequencesAndSprites();
- }
- public void paintBackground(Graphics g) {
- Image bg = applet.getImage(cb, "gifs/background.gif");
- Util.wallPaper(this, g, bg);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(running() == true) stop ();
- else start();
- return true;
- }
- public void spriteCollision(Sprite sprite, Sprite sprite2) {
- if(moveSlowSpinFast.getSequence() != fastBumpSequence) {
- sprite.reverse();
- sprite2.reverse();
-
- moveSlowSpinFast.play(fastBumpSequence, 3);
- moveFastSpinSlow.play(slowBumpSequence, 3);
- }
- }
- public void edgeCollision(Sprite sprite,
- Orientation orientation) {
- if(orientation == Orientation.RIGHT ||
- orientation == Orientation.LEFT)
- sprite.reverseX();
- else
- sprite.reverseY();
- }
- private void makeSequencesAndSprites() {
- String file;
- Image[] spinImages = new Image[19];
- Image[] bumpImages = new Image[6];
- Image[] volleyball = new Image[4];
-
- for(int i=0; i < spinImages.length; ++i) {
- file = "gifs/spin";
-
- if(i < 10) file += "0" + i + ".gif";
- else file += i + ".gif";
-
- spinImages[i] = applet.getImage(cb, file);
- }
- for(int i=0; i < bumpImages.length; ++i) {
- file = "gifs/bump0" + i + ".gif";
- bumpImages[i] = applet.getImage(cb, file);
- }
- fastSpinSequence = new Sequence(this, spinImages);
- slowSpinSequence = new Sequence(this, spinImages);
-
- fastBumpSequence = new Sequence(this, bumpImages);
- slowBumpSequence = new Sequence(this, bumpImages);
-
- moveFastSpinSlow =
- new Sprite(this,
- slowSpinSequence, new Point(25, 75));
-
- moveSlowSpinFast =
- new Sprite(this,
- fastSpinSequence, new Point(250,250));
-
- fastSpinSequence.setAdvanceInterval(50);
- slowSpinSequence.setAdvanceInterval(300);
-
- fastBumpSequence.setAdvanceInterval(25);
- slowBumpSequence.setAdvanceInterval(200);
-
- moveFastSpinSlow.setMoveVector(new Point(2,3));
- moveSlowSpinFast.setMoveVector(new Point(-1,-1));
-
- moveSlowSpinFast.setMoveInterval(100);
-
- addSprite(moveFastSpinSlow);
- addSprite(moveSlowSpinFast);
- }
-}
diff --git a/java/gjt/test/UnitTest.java b/java/gjt/test/UnitTest.java
deleted file mode 100644
index 1fa262d5629..00000000000
--- a/java/gjt/test/UnitTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package gjt.test;
-
-import java.awt.BorderLayout;
-import java.awt.Frame;
-import java.awt.Panel;
-import java.applet.Applet;
-import gjt.*;
-
-/**
- * An (abstract) Applet fitted with a BorderLayout that
- * contains a TitledPanel in the North, and a Panel created by
- * derived classes in the Center.<p>
- *
- * Since some Applets take awhile to load, UnitTest changes the
- * cursor to a wait cursor in init(), changing it back to the
- * default cursor in start(). Derived classes must be sure to
- * call super.init() if they override init(); likewise for
- * start().<p>
- *
- * Subclasses must implement:
- * <dl>
- * <dd>String title()
- * <dd>Panel centerPanel()
- * </dl>
- * Subclasses should populate the Panel returned from
- * centerPanel() with whatever makes sense for their unit test.
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see TitledPanel
- */
-abstract public class UnitTest extends Applet {
- abstract public String title();
- abstract public Panel centerPanel();
-
- public void init() {
- Util.getFrame(this).setCursor(Frame.WAIT_CURSOR);
- Panel titledPanel = new TitledPanel(title());
- setLayout(new BorderLayout());
- add("North", titledPanel);
- add("Center", centerPanel());
- }
- public void start() {
- Util.getFrame(this).setCursor(Frame.DEFAULT_CURSOR);
- }
-}
diff --git a/java/java-ace.gif b/java/java-ace.gif
deleted file mode 100644
index c3d89df46c0..00000000000
--- a/java/java-ace.gif
+++ /dev/null
Binary files differ
diff --git a/tests/CLASSIX/CLASSIX_Addr_Test.cpp b/tests/CLASSIX/CLASSIX_Addr_Test.cpp
deleted file mode 100644
index a9d9f34c24c..00000000000
--- a/tests/CLASSIX/CLASSIX_Addr_Test.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// CLASSIX_Addr_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <IPP_CLASSIX_Addr> class.
-//
-// = AUTHOR
-// Wei Chiang
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Addr.h"
-#include "ace/CLASSIX/CLASSIX_SAP.h"
-#include "ace/CLASSIX/CLASSIX_Port_Default.h"
-
-#include "CLASSIX_test_config.h"
-
-class testSap : public ACE_CLASSIX_SAP
-{
-public:
- testSap(): ACE_CLASSIX_SAP() {}
- testSap(const ACE_Addr& theAddr) : ACE_CLASSIX_SAP(theAddr) {}
-
- ~testSap() {}
-};
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Addr_Test");
-
- /* ================================================================== */
- ACE_DEBUG((LM_INFO, "------test virtual destructor------\n"));
- testSap *n1 = new testSap();
- ACE_CLASSIX_SAP *n2 = n1;
- delete n2;
-
- /* ================================================================== */
- ACE_DEBUG((LM_INFO, "--------ACE_CLASSIX_Addr----------\n"));
- ACE_DEBUG((LM_DEBUG, "\n--------------------------------\n"));
- ACE_CLASSIX_Port_Core *k2 = new ACE_CLASSIX_Port_Core();
- int p2 = k2->get_handle();
- ACE_CLASSIX_Port a2(*k2);
- ACE_DEBUG((LM_INFO, "Addr a2(ipc port id = %d)\n", p2));
- a2.dump();
-
- ACE_CLASSIX_Port *a1 = ACE_CLASSIX_DEFAULT_PORT::instance();
- ACE_DEBUG((LM_INFO, "Default port:"));
- a1->dump();
- a1->set_addr(a2.get_addr(), a2.get_size());
- if (*a1 != *ACE_CLASSIX_DEFAULT_PORT::instance())
- ACE_DEBUG((LM_ERROR, "???? Default port cannot be changed-2 !!!"));
-
- ACE_DEBUG((LM_DEBUG, "\n--------------------------------\n"));
- ACE_CLASSIX_Port_Core k3;
- ACE_CLASSIX_Port a3(k3);
- ACE_DEBUG((LM_INFO, "Addr a3(ipc port id = %d)\n", k3.get_handle));
- a3.dump();
-
- ACE_DEBUG((LM_DEBUG, "\n--------------------------------\n"));
- ACE_CLASSIX_Port a4(a1->get_addr(), a1->get_size());
- a4.dump();
- if (a4 == *a1)
- ACE_DEBUG((LM_INFO, "OK: Addr a4 == a1\n"));
- else
- ACE_ERROR((LM_ERROR, "Error: Addr a4 != a1\n"));
-
- if (a4 != a2)
- ACE_DEBUG((LM_INFO, "OK: Addr a4 != a2\n"));
- else
- ACE_ERROR((LM_ERROR, "Error: Addr a4 == a2\n"));
-
- /* ================================================================== */
-
- ACE_DEBUG((LM_INFO, "\n--------ACE_CLASSIX_Sap----------\n"));
- testSap sap1;
- sap1.set_addr(*a1);
- ACE_CLASSIX_Port b1;
- if (sap1.get_addr(b1) < 0)
- ACE_ERROR((LM_ERROR, "failed to get sap1 address"));
- if (b1 != *a1)
- ACE_ERROR((LM_ERROR, "Error: sap1 address"));
- sap1.dump();
-
-
- ACE_DEBUG((LM_DEBUG, "\n--------------------------------\n"));
- testSap sap2(a2);
- ACE_CLASSIX_Port b2;
- if (sap2.get_addr(b2) < 0)
- ACE_ERROR((LM_ERROR, "failed to get sap1 address"));
- if (b2 != a2)
- ACE_ERROR((LM_ERROR, "Error: sap2 address"));
- b2.dump();
- sap2.dump();
-
-
- /* ================================================================== */
- int result = 0;
- int p = k2->get_handle();
- delete k2;
- if ((result = portDelete(K_MYACTOR, p)) == 0)
- ACE_ERROR((LM_ERROR,
- "????Error: delete already deleted port"));
-
- ACE_END_TEST;
- return 0;
-}
-
diff --git a/tests/CLASSIX/CLASSIX_CLD_Connector_Test.cpp b/tests/CLASSIX/CLASSIX_CLD_Connector_Test.cpp
deleted file mode 100644
index c100b768caf..00000000000
--- a/tests/CLASSIX/CLASSIX_CLD_Connector_Test.cpp
+++ /dev/null
@@ -1,392 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// CLD_Connector.cpp
-//
-// = DESCRIPTION
-// Based on $ACE_ROOT/tests/MT_SOCK.cpp
-//
-// This is a multi-threaded torture test of the ACE_CLASSIX_CLD_Connector
-// class.
-//
-// The test spawns a server and multiple clients allowing clients to
-// exchange data with the server.
-//
-// This example demonstrates the following use cases
-// - server is a subclass of ACE_Svc_Handler,
-// but it does not involve an acceptor class.
-// - server multicasts message to the clients
-// - client uses ACE_CLASSIX_Connector to "connect" to the server
-//
-// ============================================================================
-
-#include "ace/OS.h"
-#include "ace/Thread.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Handle_Set.h"
-#include "ace/Svc_Handler.h"
-
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.h"
-#include "ace/CLASSIX/CLASSIX_Stream.h"
-#include "ace/CLASSIX/CLASSIX_Dgram_Mcast.h"
-#include "ace/CLASSIX/CLASSIX_Group_Stamp.h"
-#include "ace/CLASSIX/CLASSIX_CLD_Connector.h"
-
-#include "CLASSIX_test_config.h"
-
-#define MAX_TEST_CLIENTS 30
-#define TEST_STAMP 300
-#define ACE_CLASSIX_MCAST_DGRAM ACE_CLASSIX_Dgram_Mcast, ACE_CLASSIX_Group
-
-static ACE_Atomic_Op<ACE_Thread_Mutex, u_int> client_id = 0;
-
-
-struct client_arg
-{
- ACE_Barrier *wait;
- ACE_CLASSIX_Port_Core *server;
-};
-
-struct client_data
-{
- u_int me;
- char c;
-};
-
-class server_handler : public ACE_Svc_Handler<ACE_CLASSIX_MCAST_DGRAM,
- ACE_MT_SYNCH>
-{
-public:
- server_handler(int /* stamp */, const ACE_CLASSIX_Port_Core&);
- // port that the server uses to receive data from all sorts of clients
- virtual int open (void * = 0 /* args */);
- virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
- virtual int svc (void);
-
- // = Demultiplexing hooks for Reactor
- virtual int handle_input (ACE_HANDLE);
- // The first int of each message identifies the sender
-
-private:
- ACE_Atomic_Op<ACE_Thread_Mutex, u_int> in_svc_;
- // 1 if svc() is running
-};
-
-server_handler::server_handler(int theStamp,
- const ACE_CLASSIX_Port_Core & thePort)
- : ACE_Svc_Handler<ACE_CLASSIX_MCAST_DGRAM, ACE_MT_SYNCH> (),
- in_svc_ (0)
-{
- if (this->peer().set_saps(theStamp, thePort) != 0)
- ACE_DEBUG((LM_DEBUG, "failed to set up IO stream \n"));
-}
-
-int
-server_handler::open (void *)
-{
- ACE_DEBUG((LM_DEBUG, "server_handler::open()\n"));
- if (reactor ()->register_handler (this, READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t)server_handler:: cannot register handler\n"),
- -1);
-
- if (this->peer().selectable() != 0)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) failed to make Server's port %d selectable\n",
- get_handle ()));
- else
- ACE_DEBUG ((LM_DEBUG, "(%t) created svc_handler for handle %d\n",
- get_handle ()));
-
- if (this->peer().control(K_BROADMODE) != 0)
- ACE_DEBUG((LM_DEBUG, "(%t) %p\n"
- "server cannot send data to destination\n"));
-
- return this->activate (THR_BOUND);
-}
-
-int
-server_handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- while (this->in_svc_ == 1)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) server is closing down\n"));
-
- // Use a blank message to tell the thread to stop
- ACE_Message_Block *mb = new ACE_Message_Block((size_t) 0);
- ACE_Time_Value timeout(0, 10*1000); // wait for at most 10 usec
- this->putq(mb, &timeout);
- ACE_OS::thr_yield();
- }
-
- this->destroy();
-}
-
-int
-server_handler::handle_input(ACE_HANDLE)
-{
- // Get input as fast as it can to free the reactor to handle other work.
- size_t n = 0;
- if (ACE_Reactor::instance()->
- current_info(this->get_handle(),n) == -1)
- ACE_ERROR_RETURN((LM_ERROR, "???(%t) failed to get input size\n"), -1);
-
- ACE_Message_Block *msg;
- ACE_NEW_RETURN(msg, ACE_Message_Block(n == 0 ? 1 : n), -1);
- if (this->peer().recv(msg->wr_ptr(), n) == -1)
- ACE_ERROR_RETURN((LM_ERROR, "???(%t) %p\n", "get_data()"), -1);
- msg->wr_ptr(n);
-
-
- if (this->putq(msg) == -1)
- ACE_ERROR_RETURN((LM_ERROR, "???(%t) failed to enqueue message\n"),
- -1);
- return 0;
-}
-
-int
-server_handler::svc(void)
-{
- this->peer().open_writer();
- this->in_svc_ = 1;
-
- ACE_Message_Block *mb = 0;
- int result = 0;
- char *storage[MAX_TEST_CLIENTS];
-
- // initialize the expected result per client
- for (int i = 0; i < MAX_TEST_CLIENTS; i++)
- storage[i] = ACE_ALPHABET;
-
- int len = sizeof (client_data);
- int total_clients = MAX_TEST_CLIENTS;
-
- ACE_DEBUG((LM_DEBUG, "(%t)server is waiting for clients\n"));
- // read input
- for (;;)
- {
- // wait until a message has arrived
- result = this->getq (mb);
-
- if (result == -1)
- {
- ACE_ERROR_RETURN((LM_ERROR,
- "???(%t), error while waiting for a message "
- "on the queue\n"), 0);
- }
-
- int length = mb->length ();
-
- u_int client = 0;
- if (length != 0 && length == len)
- {
- client = *((u_int*) mb->rd_ptr ());
- mb->rd_ptr(sizeof (u_int));
- char* data = storage[client];
- // Check if the client has done
- if (*(mb->rd_ptr()) == '\0')
- {
- ACE_DEBUG((LM_DEBUG, "handshake with client %d\n", client));
- client_data response;
- response.me = client;
- int r = this->peer().send_n(&response, len);
- if (r != len)
- ACE_ERROR((LM_ERROR,
- "(%t):%d %p\n",r,
- "server faided to send handshake msg"));
- total_clients--;
- if (total_clients == 0)
- {
- mb->release();
- ACE_DEBUG((LM_DEBUG, "(%t) end event loop \n"));
- ACE_Reactor::end_event_loop();
- this->in_svc_ = 0;
- break;
- }
- }
- if (*data != *(mb->rd_ptr()))
- ACE_ERROR((LM_ERROR, "???(%t), invalid input\n"));
- storage[client] = ++data;
- }
- else if (length > 0)
- {
- ACE_ERROR((LM_ERROR, "???(%t), invalid input length(%d)\n",
- length));
- }
- mb->release();
-
- }
-
- return 0;
-}
-
-
-static void *
-client (void *arg)
-{
- client_data info;
- info.me = client_id++;
- int info_len = sizeof (client_data);
-
- client_arg *data = (client_arg*) arg;
- ACE_CLASSIX_Port_Core *server_port = data->server;
- ACE_CLASSIX_Port server_addr(*server_port);
- ACE_Barrier *barrier = data->wait;
- //===================================================================
- // Stream & Connector
- //
-// ACE_CLASSIX_Stream cli_stream(*server_port);
- ACE_CLASSIX_Stream cli_stream;
- // create a stream where the local SAP uses the actor's default port.
-
- ACE_CLASSIX_CLD_Connector con;
- // create a connector for the stream
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Connecting local and peer SAPs\n"));
- // Connect local and peer SAPs.
-
- barrier->wait();
- //===================================================================
- // Attempt a connect to the server...
- // A local port will be created as a local SAP
- if (con.connect (cli_stream, server_addr) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p\n",
- "connection failed"),
- 0);
- }
- ACE_CLASSIX_Port client_addr;
- if (cli_stream.local_sap().get_addr (client_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) %p\n", "get_local_addr"), 0);
- else
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) connected client at %d\n",
- client_addr.get_handle ()));
-
-
- //===================================================================
- // Insert the local SAP to the test group
- ACE_CLASSIX_Group_Stamp group(TEST_STAMP);
- // group that the client's port is in
- if (group.insert(&client_addr) == -1)
- ACE_ERROR_RETURN((LM_ERROR,
- "Failed to insert local SAP of client %d in to the"
- "group \n"), -1);
-
- //===================================================================
- // Do not use Reactor, so disable local port from being monitored
- int result = cli_stream.unselectable();
- if (result != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) failed to disable local port(%d)\n",
- result), -1);
-
- //===================================================================
- // Send data to server (correctly handles "incomplete writes").
- char *c = ACE_ALPHABET;
-
- do
- {
- ACE_OS::thr_yield();
- info.c = *c;
- if (cli_stream.send_n (&info, info_len) != info_len)
- ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n", "send_n"));
- }while(*c++ != '\0');
-
- //===================================================================
- // Close writer
- // ACE_DEBUG ((LM_DEBUG, "(%P|%t) closing writer\n"));
- // Explicitly close the writer-side of the connection.
- //if (cli_stream.close_writer () == -1)
- // ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n", "close_writer"));
-
- // Wait for handshake with server.
- client_data response;
- do
- {
- if (cli_stream.ipcRecv_n (&response, info_len) != info_len)
- ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n", "recv_n"));
- }
- while (response.me != info.me);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) received handshake from server\n"));
-
- // Close the connection completely.
- if (cli_stream.close () == -1)
- ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n", "close"));
-
- return 0;
-}
-
-
-static void
-spawn (ACE_CLASSIX_Port_Core* theServer)
-{
- // create a port for the server
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) starting server at port %d\n",
- theServer->get_handle ()));
-
- // activate server
- server_handler handler(TEST_STAMP, *theServer);
- handler.open(); // make the server active
-
- // activate clients
- // make sure
- // - we don't let client send messages before the event loop is running
- ACE_Barrier wait(MAX_TEST_CLIENTS);
- client_arg data;
- data.server = theServer;
- data.wait = &wait;
-
- ACE_DEBUG ((LM_DEBUG, "(%t) starting clients\n"));
- if (ACE_Thread_Manager::instance ()->spawn_n
- (MAX_TEST_CLIENTS,
- ACE_THR_FUNC (client),
- (void *) &data,
- THR_BOUND | THR_DETACHED) == -1)
- ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n%a", "spawn failed"));
-
- // handle event
- ACE_DEBUG((LM_DEBUG, "(%t)run event loop\n"));
- ACE_Reactor::run_event_loop();
-
- // wait until all server has completed
- ACE_Thread_Manager::instance()->wait_task(&handler);
-}
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("CLD_Connector_Test");
-
- // initialize classix environment, such as reactor
- ACE_CLASSIX_OS classix;
-
- // running server and clients
- ACE_CLASSIX_Port_Core server_port;
- spawn(&server_port);
-
-
- // Wait all the threads to exit.
- ACE_Thread_Manager::instance ()->wait ();
-
- ACE_END_TEST;
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Atomic_Op<ACE_Thread_Mutex, u_int>;
-template class ACE_Svc_Handler<ACE_CLASSIX_MCAST_DGRAM, ACE_MT_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Atomic_Op<ACE_Thread_Mutex, u_int>
-#pragma instantiate ACE_Svc_Handler<ACE_CLASSIX_MCAST_DGRAM, ACE_MT_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-
diff --git a/tests/CLASSIX/CLASSIX_Con_Acc_Test.cpp b/tests/CLASSIX/CLASSIX_Con_Acc_Test.cpp
deleted file mode 100644
index 741c8cd2412..00000000000
--- a/tests/CLASSIX/CLASSIX_Con_Acc_Test.cpp
+++ /dev/null
@@ -1,365 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// CLASSIX_Con_Acc_Test.cpp
-//
-// = DESCRIPTION
-// Based on $ACE_ROOT/tests/Priority_Reactor_Test.cpp
-// However, this test is not to test the priority aspect of the
-// CLASSIX Reactor. In fact <ACE_CLASSIX_Select_Reactor> does not
-// handle priorities.
-//
-// This is a test for <ACE_CLASSIX_CO_Connector> and
-// <ACE_CLASSIX_CO_Acceptor>
-// ============================================================================
-
-#include "ace/Get_Opt.h"
-#include "ace/Acceptor.h"
-#include "ace/Handle_Set.h"
-#include "ace/Connector.h"
-#include "ace/Strategies.h"
-#include "ace/Auto_Ptr.h"
-#include "ace/Priority_Reactor.h"
-
-#include "ace/CLASSIX/CLASSIX_CO_Connector.h"
-#include "ace/CLASSIX/CLASSIX_CO_Acceptor.h"
-
-#include "CLASSIX_test_config.h"
-#include "CLASSIX_Con_Acc_Test.h"
-
-
-// The number of children to run, it can be changed using the -c
-// option.
-static int opt_nchildren = 2 /* 10 */;
-
-// The number of loops per children, it can be changed using the -l
-// option.
-static int opt_nloops = 200 /* 200 */;
-
-// If not set use the normal reactor, it can be changed using the -d
-// option.
-static int opt_priority_reactor = 1;
-
-// Maximum time to wait for the test termination (-t)
-static int opt_max_duration = 60;
-
-// Maximum number of unread messages (-i)
-static int opt_max_msgs = 300;
-
-// Maximum number of retries to connect, it can be changed using the
-// -m option.
-static int max_retries = 5;
-
-typedef ACE_Connector<Write_Handler, ACE_CLASSIX_CO_CONNECTOR>
- CONNECTOR;
-typedef ACE_Acceptor<Read_Handler, ACE_CLASSIX_CO_ACCEPTOR>
- ACCEPTOR;
-
-typedef ACE_CLASSIX_Port ADDR;
-
-ACE_Atomic_Op<ACE_Thread_Mutex, int> Read_Handler::waiting_ = 0;
-ACE_Atomic_Op<ACE_Thread_Mutex, int> Read_Handler::started_ = 0;
-
-// Maximum number of unread messages
-// This is to overcome the blocking problem with ipcSend() in ClassixOS 3.1
-ACE_Atomic_Op<ACE_Thread_Mutex, int> max_msg = 0;
-
-void
-Read_Handler::set_countdown (int nchildren)
-{
- Read_Handler::waiting_ = nchildren;
-}
-
-int
-Read_Handler::get_countdown (void)
-{
- return Read_Handler::waiting_.value();
-}
-
-int
-Read_Handler::open (void *)
-{
- if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) Read_Handler::open, "
- "cannot set non blocking mode"), -1);
-
- if (reactor ()->register_handler (this, READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) Read_Handler::open, "
- "cannot register handler"), -1);
-
- // A number larger than the actual number of priorities, so some
- // clients are misbehaved, hence pusnished.
- const int max_priority = 15;
-
- this->priority (ACE_Event_Handler::LO_PRIORITY + started_.value() % max_priority);
- started_++;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) created svc_handler for handle %d\n",
- get_handle ()));
- return 0;
-}
-
-int
-Read_Handler::handle_input (ACE_HANDLE h)
-{
- char buf[BUFSIZ];
-
-// ACE_DEBUG((LM_DEBUG,
-// "(%P|%t|%x) read from handle %d...", this, h));
- ssize_t result = this->peer ().recv (buf, sizeof (buf));
-
- //
- // Work around the blocking problem with ipcSend() in ClassixOS 3.1
- // This counter ensures that the reader reads before the writer sends too
- // many messages.
- //
- max_msg--;
-
- if (result <= 0)
- {
- if (result < 0 && errno == EWOULDBLOCK)
- {
- max_msg++;
- return 0;
- }
-
- if (result != 0)
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) %p\n",
- "Read_Handler::handle_input"));
- waiting_--;
-
- if (waiting_ == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "Last svc_handler closed, shutting down\n"));
- ACE_Reactor::instance()->end_event_loop();
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Read_Handler(%d)::handle_input closing down\n", h));
- return -1;
- }
-
-// ACE_DEBUG((LM_DEBUG,
-// "...(%P|%t) read %d bytes from handle %d, priority %d\n",
-// result, h, priority ()));
- return 0;
-}
-
-int
-Write_Handler::open (void *)
-{
- return 0;
-}
-
-int
-Write_Handler::svc (void)
-{
- // Send several short messages, doing pauses between each message.
- // The number of messages can be controlled from the command line.
-
- ACE_Time_Value pause (0, 1000);
- for (int i = 0; i < opt_nloops; ++i)
- {
- // Work around the blocking problem with ipcSend() in ClassixOS 3.1
- // ipcSend() will block instead of returning K_EFULL value,
- // if resources are not available.
- //
- // sleep for the reader to empty some messages
- while (max_msg.value() >= opt_max_msgs)
- ACE_OS::sleep(pause);
-
-
- if (this->peer ().send_n (ACE_ALPHABET,
- sizeof (ACE_ALPHABET) - 1) == -1)
- {
- ACE_DEBUG((LM_DEBUG, "%t %p\n", "send_n\n"));
- ACE_OS::sleep (pause);
- continue;
- }
- max_msg++;
- }
- this->peer().close_writer();
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Write Handler exiting svc\n"));
- return 0;
-}
-
-// Execute the client tests.
-static void *
-client (void *arg)
-{
- ADDR *connection_addr = (ADDR *) arg;
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) running client\n"));
- CONNECTOR connector;
-
- Write_Handler *writer = 0;
-
- // Do exponential backoff connections
- ACE_Synch_Options options = ACE_Synch_Options::synch;
-
- // Start with one msec timeouts.
- ACE_Time_Value msec (0, 1000);
- options.timeout (msec);
-
- // Try up to <max_retries> to connect to the server.
- for (int i = 0; i < max_retries; i++)
- {
- if (connector.connect (writer,
- *connection_addr,
- options) == -1)
- {
- // Double the timeout...
- ACE_Time_Value tmp = options.timeout ();
- tmp += options.timeout ();
- options.timeout (tmp);
- writer = 0;
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) still trying to connect\n"));
- }
- else
- {
- // Let the new Svc_Handler to its job...
- writer->svc ();
-
- // then close the connection and release the Svc_Handler.
- writer->destroy ();
-
- return 0;
- }
- }
-
- ACE_ERROR ((LM_ERROR,
- "(%P|%t) failed to connect after %d retries\n",
- max_retries));
- return 0;
-}
-
-int
-main (int argc, char *argv[])
-{
- ACE_START_TEST ("Con_Acc_Test");
-
- // initialize environment, eg. reactor, etc.
- ACE_CLASSIX_OS os;
-
- ACE_Get_Opt getopt (argc, argv, "dc:l:m:t:i:", 1);
-
- for (int c; (c = getopt ()) != -1; )
- switch (c)
- {
- case 'd':
- opt_priority_reactor = 0;
- break;
- case 'i':
- opt_max_msgs = atoi (getopt.opt_arg ());
- break;
- case 'c':
- opt_nchildren = atoi (getopt.opt_arg ());
- break;
- case 'l':
- opt_nloops = atoi (getopt.opt_arg ());
- break;
- case 'm':
- max_retries = atoi (getopt.opt_arg ());
- break;
- case 't':
- opt_max_duration = atoi (getopt.opt_arg ());
- break;
- case '?':
- default:
- ACE_ERROR_RETURN ((LM_ERROR, "Usage: Priority_Reactor_Test "
- " [-d] (disable priority reactor)\n"
- " [-i max_msgs] (max. unread messages)\n"
- " [-c nchildren] (number of threads/processes)\n"
- " [-l loops] (number of loops per child)\n"
- " [-m maxretries] (attempts to connect)\n"
- " [-t max_time] (limits test duration)\n"), -1);
- ACE_NOTREACHED (break);
- }
-
- Read_Handler::set_countdown (opt_nchildren);
-
- // Acceptor
- ACE_DEBUG((LM_DEBUG, "Create an Acceptor\n"));
- ACCEPTOR acceptor(ACE_Reactor::instance(), 0);
- // The acceptor uses the global reactor and does not use select.
-
- acceptor.priority (ACE_Event_Handler::HI_PRIORITY);
- ADDR server_addr;
-
- // Bind acceptor to any port and then find out what the port was.
- ACE_DEBUG((LM_DEBUG, "Open the acceptor\n"));
- if (acceptor.open ((const ADDR &) ACE_Addr::sap_any) == -1
- || acceptor.acceptor ().get_local_addr (server_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) %p\n", "open"), -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) starting server at port %d\n",
- server_addr.get_port_number ()));
-
- ADDR connection_addr (server_addr);
-
- int i;
-
- for (i = 0; i < opt_nchildren; ++i)
- {
- if (ACE_Thread_Manager::instance ()->spawn
- (ACE_THR_FUNC (client),
- (void *) &connection_addr,
- THR_NEW_LWP | THR_DETACHED) == -1)
- ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n%a", "thread create failed"));
- }
-
- ACE_Time_Value tv (opt_max_duration);
-
- ACE_Reactor::instance()->register_handler
- (&acceptor, ACE_Event_Handler::READ_MASK);
- ACE_Reactor::instance()->run_event_loop (tv);
-
- if (Read_Handler::get_countdown () != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) running out of time, "
- "probably due to failed connections.\n"));
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) waiting for the children...\n"));
-
- ACE_Thread_Manager::instance ()->wait ();
-
- ACE_END_TEST;
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Connector_Base<Write_Handler>;
-template class ACE_Connector<Write_Handler, ACE_CLASSIX_CO_CONNECTOR>;
-template class ACE_Acceptor<Read_Handler, ACE_CLASSIX_CO_ACCEPTOR>;
-template class ACE_Svc_Handler<ACE_CLASSIX_STREAM, ACE_SYNCH>;
-template class auto_ptr<ACE_Reactor>;
-template class ACE_Auto_Basic_Ptr<ACE_Reactor>;
-template class auto_ptr<ACE_Select_Reactor>;
-template class ACE_Auto_Basic_Ptr<ACE_Select_Reactor>;
-template class ACE_NonBlocking_Connect_Handler<Write_Handler>;
-template class ACE_Atomic_Op<ACE_Thread_Mutex, int>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Connector_Base<Write_Handler>
-#pragma instantiate ACE_Connector<Write_Handler, ACE_CLASSIX_CONNECTOR>
-#pragma instantiate ACE_Acceptor<Read_Handler, ACE_CLASSIX_ACCEPTOR>
-#pragma instantiate ACE_Svc_Handler<ACE_CLASSIX_STREAM, ACE_SYNCH>
-#pragma instantiate auto_ptr<ACE_Reactor>
-#pragma instantiate ACE_Auto_Basic_Ptr<ACE_Reactor>
-#pragma instantiate auto_ptr<ACE_Select_Reactor>
-#pragma instantiate ACE_Auto_Basic_Ptr<ACE_Select_Reactor>
-#pragma instantiate ACE_NonBlocking_Connect_Handler<Write_Handler>
-#pragma instantiate ACE_Atomic_Op<ACE_Thread_Mutex, int>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/tests/CLASSIX/CLASSIX_Con_Acc_Test.h b/tests/CLASSIX/CLASSIX_Con_Acc_Test.h
deleted file mode 100644
index ff34d698eeb..00000000000
--- a/tests/CLASSIX/CLASSIX_Con_Acc_Test.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Priority_Reactor_Test.h
-//
-// = DESCRIPTION
-// This class gets its own header file to work around AIX C++
-// compiler "features" related to template instantiation... It is
-// only used by Priority_Reactor_Test.cpp.
-//
-// = AUTHOR
-// Carlos O'Ryan
-//
-// ============================================================================
-
-#ifndef ACE_TESTS_PRIORITY_REACTOR_TEST_H
-#define ACE_TESTS_PRIORITY_REACTOR_TEST_H
-
-#include "ace/Service_Config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Stream.h"
-#include "ace/Svc_Handler.h"
-
-#define ACE_CLASSIX_STREAM ACE_CLASSIX_Stream, ACE_CLASSIX_Addr
-#define ACE_CLASSIX_CO_CONNECTOR ACE_CLASSIX_CO_Connector, ACE_CLASSIX_Port
-#define ACE_CLASSIX_CO_ACCEPTOR ACE_CLASSIX_CO_Acceptor, ACE_CLASSIX_Port
-
-class Read_Handler : public ACE_Svc_Handler<ACE_CLASSIX_STREAM, ACE_SYNCH>
- // = TITLE
- // A Svc_Handler with a priority twist.
- //
- // = DESCRIPTION
- // This Svc_Handler receives the data sent by the childs or writer
- // threads; each one sets it own priority to a new level, in a
- // cyclic manner. The main point is test and exercise the
- // priority dispatching features of ACE_Priority_Reactor.
-{
-public:
- static void set_countdown (int nchildren);
- // Set the number of children or writer threads we will be running,
- // when they are all gone we terminate the reactor loop.
-
- static int get_countdown (void);
- // Get the number of children we are still waiting for.
-
- virtual int open (void *);
- virtual int handle_input (ACE_HANDLE h);
- // The Svc_Handler callbacks.
-
-private:
- static ACE_Atomic_Op<ACE_Thread_Mutex, int> waiting_;
- // How many writers are we waiting for.
-
- static ACE_Atomic_Op<ACE_Thread_Mutex, int> started_;
- // How many readers have started.
-};
-
-class Write_Handler : public ACE_Svc_Handler<ACE_CLASSIX_STREAM, ACE_SYNCH>
- // = TITLE
- // A simple writer.
- //
- // = DESCRIPTION
- // This Svc_Handler simply connects to a server and sends some
- // output to it. Its purpose is to feed the test.
-{
-public:
- virtual int open (void *);
- virtual int svc (void);
-};
-
-#endif /* ACE_TESTS_PRIORITY_REACTOR_TEST_H */
diff --git a/tests/CLASSIX/CLASSIX_Group_Test.cpp b/tests/CLASSIX/CLASSIX_Group_Test.cpp
deleted file mode 100644
index 0cb653e6e8f..00000000000
--- a/tests/CLASSIX/CLASSIX_Group_Test.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Group_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <IPP_CLASSIX_Group_*> class.
-//
-// = AUTHOR
-// Wei Chiang
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Addr.h"
-#include "ace/CLASSIX/CLASSIX_Group_Stamp.h"
-#include "ace/CLASSIX/CLASSIX_Group_Dynamic.h"
-
-#include "tests/test_config.h"
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Group_Test");
-
- int stamp = 20;
- /* ================================================================== */
- ACE_DEBUG((LM_INFO, "-----------group target-----------\n"));
-
- ACE_DEBUG((LM_INFO, "constrctor(Stamp)..................\n"));
- ACE_CLASSIX_Group_Stamp t0(100);
- t0.dump();
-
- /* ================================================================== */
- ACE_DEBUG((LM_INFO, "-----------group target-----------\n"));
-
- ACE_DEBUG((LM_INFO, "constrctor(Stamp)..................\n"));
- ACE_CLASSIX_Group_Stamp t1(stamp);
- t1.dump();
-
- /* ================================================================== */
- ACE_DEBUG((LM_INFO, "empty constrctor(Stamp) & set_group()\n"));
- ACE_CLASSIX_Group_Stamp t2;
- if (t2 == t1)
- ACE_DEBUG((LM_ERROR, "t2 == t1, should be !=\n"));
- t2.set_addr(&stamp);
- t2.dump();
- if (t2 != t1)
- ACE_DEBUG((LM_ERROR, "????t2 != t1, should be ==\n"));
-
-
- /* ================================================================== */
- ACE_DEBUG((LM_INFO, "Constrctor(Dynamic) & set_group()\n"));
- ACE_CLASSIX_Group_Dynamic t3;
- t3.dump();
-
- ACE_CLASSIX_Group_Stamp t4;
- t4.set_addr(t2.get_addr(), t2.get_size());
- t4.dump();
- if (t4 == t2)
- ACE_DEBUG((LM_ERROR, "????t4 == t2, should be !=\n"));
- t4.set_addr(&stamp);
- t4.dump();
- if (t4 != t2)
- ACE_DEBUG((LM_ERROR, "????t4 != t2, should be ==\n"));
-
- ACE_CLASSIX_Group t5(t3.get_addr(), t3.get_size());
- t5.dump();
- if (t5 != t3)
- ACE_DEBUG((LM_ERROR, "????t5 != t3, should be ==\n"));
-
-
- if (t2 != t1)
- ACE_DEBUG((LM_ERROR, "????t2 != t1, should be ==\n"));
-
- /* ================================================================== */
- ACE_END_TEST;
- return 0;
-}
-
diff --git a/tests/CLASSIX/CLASSIX_Notify_Test.cpp b/tests/CLASSIX/CLASSIX_Notify_Test.cpp
deleted file mode 100644
index f176155c4c9..00000000000
--- a/tests/CLASSIX/CLASSIX_Notify_Test.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Notify_Test.cpp
-//
-// = DESCRIPTION
-// Based on $ACE_ROOT/tests/Reactors_test.cpp
-//
-// This is a test that performs a torture test of multiple
-// <ACE_Reactors> and <ACE_Tasks> in the same process.
-//
-// = NOTE
-// Use ACE_Reactor and thus Chorus's socket sub-system, it behave
-// quite stragnely including a printout such as
-// "(15) task_9: !!!notify: Not a stream device"
-//
-// = AUTHOR
-// Prashant Jain, Detlef Becker, and Douglas C. Schmidt
-//
-// ============================================================================
-
-#include "ace/Task.h"
-
-#include "ace/CLASSIX/CLASSIX_OS.h"
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.h"
-
-#include "CLASSIX_test_config.h"
-
-#if defined (ACE_HAS_THREADS)
-
-ACE_Thread_Manager *tm;
-
-static const int MAX_TASKS = 20;
-
-class Test_Task : public ACE_Task<ACE_MT_SYNCH>
- // = TITLE
- // Exercise the tasks.
-{
-public:
- // = Initialization and termination methods.
- Test_Task (void);
- ~Test_Task (void);
-
- // = Task hooks.
- virtual int open (void *args = 0);
- virtual int close (u_long flags = 0);
- virtual int svc (void);
-
- // = Event Handler hooks.
- virtual int handle_input (ACE_HANDLE handle);
- virtual int handle_close (ACE_HANDLE fd,
- ACE_Reactor_Mask close_mask);
-
-private:
- size_t handled_;
- char name_[10];
- // Number of iterations handled.
-
- static int task_count_;
- // Number of tasks running.
-};
-
-// Static data member initialization.
-int Test_Task::task_count_ = 0;
-
-static ACE_Atomic_Op<ACE_Thread_Mutex, int> done_count = MAX_TASKS * 2;
-
-static ACE_Recursive_Thread_Mutex recursive_lock;
-
-Test_Task::Test_Task (void)
- : handled_ (0)
-{
- ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon, recursive_lock);
-
- Test_Task::task_count_++;
-
- ACE_OS::sprintf(this->name_, "%s_%d", "task", Test_Task::task_count_);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) TT+ %s\n",
- this->name_));
-}
-
-Test_Task::~Test_Task (void)
-{
- ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon, recursive_lock);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) TT- %s: %d\n",
- this->name_, Test_Task::task_count_));
-
- ACE_ASSERT (Test_Task::task_count_ == 0);
-}
-
-int
-Test_Task::open (void *args)
-{
- this->reactor ((ACE_Reactor *) args);
- return this->activate (THR_NEW_LWP);
-}
-
-int
-Test_Task::close (u_long)
-{
- ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, recursive_lock, -1);
-
- Test_Task::task_count_--;
- ACE_DEBUG ((LM_DEBUG,
- "(%t) close %s, task_count_ = %d\n",
- this->name_, Test_Task::task_count_));
-
- if (Test_Task::task_count_ < 0)
- abort ();
-
- return 0;
-}
-
-int
-Test_Task::svc (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) svc(%s)\n", this->name_));
-
- for (size_t i = 0; i < ACE_MAX_ITERATIONS; i++)
- {
- ACE_OS::thr_yield ();
-
- // Only wait up to 10 milliseconds to notify the Reactor.
- ACE_Time_Value timeout (0, 10 * 1000);
-
- if (this->reactor ()->notify (this,
- ACE_Event_Handler::READ_MASK,
- &timeout) == -1)
- {
- if (errno == ETIME)
- ACE_DEBUG ((LM_DEBUG, "(%t) %p\n", "notify() timed out"));
- else
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %s: %p\n", this->name_,
- "!!!notify"), -1);
- }
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) end svc(%s)\n", this->name_));
- return 0;
-}
-
-int
-Test_Task::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- return 0;
-}
-
-int
-Test_Task::handle_input (ACE_HANDLE)
-{
- this->handled_++;
-
- if (this->handled_ == ACE_MAX_ITERATIONS)
- {
- done_count--;
- ACE_DEBUG ((LM_DEBUG,
- "(%t) handle_input, handled_ = %d, done_count = %d\n",
- this->handled_, done_count.value ()));
- }
-
- ACE_OS::thr_yield ();
- return -1; // this will trigger hnalde_close() be called
-}
-
-static void *
-worker (void *args)
-{
- ACE_DEBUG((LM_DEBUG, "(%t) worker started\n"));
- ACE_Reactor *reactor = (ACE_Reactor *) args;
-
- // Make this thread the owner of the Reactor's event loop.
- reactor->owner (ACE_Thread::self ());
-
- // Use a timeout to inform the Reactor when to shutdown.
- ACE_Time_Value timeout (1);
-
- for (;;)
- {
- switch (reactor->handle_events (timeout))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "reactor"), 0);
- /* NOTREACHED */
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) Reactor shutdown\n"), 0);
- /* NOTREACHED */
- default:
- timeout.sec(1);
- }
- }
-
- ACE_NOTREACHED (return 0);
-}
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Atomic_Op<ACE_Thread_Mutex, int>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Atomic_Op<ACE_Thread_Mutex, int>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_HAS_THREADS */
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Notify_Test");
-
- // initialize the singletons and environment
- ACE_CLASSIX_OS classix;
-
-#if defined (ACE_HAS_THREADS)
- ACE_ASSERT (ACE_LOG_MSG->op_status () != -1);
-
- tm = ACE_Thread_Manager::instance ();
-
- ACE_Reactor reactor;
- ACE_ASSERT (ACE_LOG_MSG->op_status () != -1);
-
- Test_Task tt1[MAX_TASKS];
- Test_Task tt2[MAX_TASKS];
-
- // Activate all of the Tasks.
-
- for (int i = 0; i < MAX_TASKS; i++)
- {
- tt1[i].open (ACE_Reactor::instance ());
-// tt2[i].open (&reactor);
- tt2[i].open (ACE_Reactor::instance ());
- }
-
- // Spawn two threads each running a different reactor.
-
- if (ACE_Thread_Manager::instance ()->spawn
- (ACE_THR_FUNC (worker),
- (void *) ACE_Reactor::instance (),
- THR_BOUND | THR_DETACHED) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "spawn"), -1);
-
-#if 0
- else if (ACE_Thread_Manager::instance ()->spawn
- (ACE_THR_FUNC (worker), (void *) &reactor,
- THR_BOUND | THR_DETACHED) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "spawn"), -1);
-#endif
-
- if (ACE_Thread_Manager::instance ()->wait () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "wait"), -1);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) all threads are finished \n"));
-
-#else
- ACE_ERROR ((LM_ERROR, "threads not supported on this platform\n"));
-#endif /* ACE_HAS_THREADS */
- ACE_END_TEST;
- return 0;
-}
diff --git a/tests/CLASSIX/CLASSIX_OS_Test.cpp b/tests/CLASSIX/CLASSIX_OS_Test.cpp
deleted file mode 100644
index ba61f47fad1..00000000000
--- a/tests/CLASSIX/CLASSIX_OS_Test.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// CLASSIX_OS_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <ACE_CLASSIX_OS> class.
-//
-// = AUTHOR
-// Wei Chiang
-//
-// ============================================================================
-
-#include "tests/test_config.h"
-#include "ace/CLASSIX/CLASSIX_OS.h"
-
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("CLASSIX_OS_Test");
-
- ACE_DEBUG((LM_INFO, "Empty Message\n"));
- ACE_CLASSIX_Msg msg1;
- msg1.dump();
-
- char buf[] ="This is a test message";
- int size = sizeof (buf);
- ACE_DEBUG((LM_INFO, "%s(size = %d)\n", buf, size));
- ACE_CLASSIX_Msg msg2(buf, size);
- msg2.dump();
-
-
- ACE_END_TEST;
- return 0;
-}
-
diff --git a/tests/CLASSIX/CLASSIX_Reactor_Test.cpp b/tests/CLASSIX/CLASSIX_Reactor_Test.cpp
deleted file mode 100644
index 81d2ca6c9c3..00000000000
--- a/tests/CLASSIX/CLASSIX_Reactor_Test.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactor_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <ACE_CLASSIX_Select_Reactor> class.
-// based on $ACE_ROOT/tests/MT_Reactor_Timer_Test.cpp
-//
-// = AUTHOR
-// Wei Chiang
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Select_Reactor.h"
-
-#include "CLASSIX_test_config.h"
-#include "CLASSIX_Reactor_Test.h"
-
-static ACE_Reactor *the_reactor;
-
-Time_Handler::Time_Handler (void)
-{
- for (int i = 0;
- i < Time_Handler::TIMER_SLOTS;
- this->timer_id_[i++] = -1)
- continue;
-}
-
-// Set up initial timer conditions.
-
-void
-Time_Handler::setup (void)
-{
- this->timer_id_[1] = the_reactor->schedule_timer (this,
- (const void *) 1,
- ACE_Time_Value (5));
-}
-
-
-// In the secondary thread, set a heartbeat timer to go off every
-// second. The heartbeat checks the status of things to be sure
-// they're being set and expired correctly.
-
-int
-Time_Handler::svc (void)
-{
- ACE_Time_Value backstop (30);
-
- this->timer_id_[2] = the_reactor->schedule_timer(this,
- (const void *) 2,
- ACE_Time_Value (3));
- this->my_reactor_.owner (ACE_OS::thr_self ());
- this->my_reactor_.schedule_timer (this, (const void *) 0,
- ACE_Time_Value (1),
- ACE_Time_Value (1));
-
- while (!ACE_Reactor::event_loop_done())
- {
- int result = this->my_reactor_.handle_events (backstop);
- if (result == -1)
- break;
- ACE_Thread::yield();
- }
-
- ACE_DEBUG((LM_DEBUG, "(%T(%t) heartbeat's event loop ended\n"));
-
- return 0;
-}
-
-int
-Time_Handler::handle_timeout (const ACE_Time_Value &tv,
- const void *arg)
-{
- long time_tag = long (arg);
- ACE_UNUSED_ARG(tv);
-
- if (time_tag == 0)
- { // Heartbeat.
- int i;
-
- ACE_DEBUG ((LM_DEBUG,
- "%T (%t): heartbeat...\n"));
- // See if all of the timers have fired. If so, leave the thread's
- // reactor loop which will exit the thread and end the test.
-
- for (i = 0; i < Time_Handler::TIMER_SLOTS; i++)
- if (this->timer_id_[i] != -1)
- break;
-
- if (i == Time_Handler::TIMER_SLOTS)
- { // All timers should be gone.
-
- // Cancel heartbeat.
- ACE_ASSERT (this->my_reactor_.cancel_timer (this) == 1);
-
- // Shouldn't be any.
- ACE_ASSERT (the_reactor->cancel_timer (this) == 0);
- this->my_reactor_.end_event_loop ();
- }
- ACE_DEBUG ((LM_DEBUG,
- "%T (%t): ...heartbeat\n"));
- return 0;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "%T (%t): Timer #%d (id #%d) expired\n",
- time_tag,
- this->timer_id_[time_tag]));
-
- ACE_ASSERT (this->timer_id_[time_tag] != -1);
- this->timer_id_[time_tag] = -1;
-
- return 0;
-}
-
-
-//===============================================================//
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Reactor_Test");
-
- // CLASSIX environment initialization
- ACE_CLASSIX_OS classix;
- the_reactor = ACE_Reactor::instance();
- Time_Handler other_thread;
-
-
- // Set up initial set of timers.
- other_thread.setup ();
-
- other_thread.activate (THR_NEW_LWP | THR_JOINABLE);
- the_reactor->run_event_loop ();
- ACE_DEBUG((LM_DEBUG, "(%t) main thread's event loop ended\n"));
- other_thread.wait ();
-
-
- ACE_END_TEST;
- return 0;
-}
-
diff --git a/tests/CLASSIX/CLASSIX_Reactor_Test.h b/tests/CLASSIX/CLASSIX_Reactor_Test.h
deleted file mode 100644
index 877c930df30..00000000000
--- a/tests/CLASSIX/CLASSIX_Reactor_Test.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Reactor_Test.h
-//
-// = DESCRIPTION
-// This file contains class definitions needed for template
-// instantiation in the Reactor_Test.cpp file.
-// Based on $ACE_ROOT/tests/MT_Reactor_Timer_Test.h
-//
-// = AUTHOR
-// Wei Chiang
-//
-// ============================================================================
-
-#ifndef __CLASSIX_REACTOR_TEST_H
-#define __CLASSIX_REACTOR_TEST_H
-
-#include "ace/Reactor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Task.h"
-
-class Time_Handler : public ACE_Task<ACE_SYNCH>
-{
-public:
- Time_Handler (void);
-
- void setup (void);
-
- virtual int svc (void);
- // Run by a daemon thread to handle deferred processing.
-
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg);
-
-private:
- enum
- {
- TIMER_SLOTS = 10
- };
-
- long timer_id_[TIMER_SLOTS];
- int step_;
- ACE_Reactor my_reactor_;
-};
-
-#endif /* __CLASSIX_REACTOR_TEST_H */
diff --git a/tests/CLASSIX/CLASSIX_Select_Reactor_Test.cpp b/tests/CLASSIX/CLASSIX_Select_Reactor_Test.cpp
deleted file mode 100644
index 8e124ebc54f..00000000000
--- a/tests/CLASSIX/CLASSIX_Select_Reactor_Test.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// MT_Reactor_Timer_Test.cpp
-//
-// = DESCRIPTION
-// This is a simple test that illustrates the timer mechanism of
-// the reactor scheduling timers, handling expired timers and
-// cancelling scheduled timers from multiple threads.
-// No command line arguments are needed to run the test.
-//
-// = AUTHOR
-// Steve Huston
-//
-// ============================================================================
-
-#include "CLASSIX_test_config.h"
-#include "CLASSIX_Select_Reactor_Test.h"
-
-#if defined (ACE_HAS_THREADS)
-
-static ACE_Reactor *the_reactor;
-
-Time_Handler::Time_Handler (void)
-{
- for (int i = 0;
- i < Time_Handler::TIMER_SLOTS;
- this->timer_id_[i++] = -1)
- continue;
-}
-
-// Set up initial timer conditions.
-
-void
-Time_Handler::setup (void)
-{
- this->timer_id_[1] = the_reactor->schedule_timer (this,
- (const void *) 1,
- ACE_Time_Value (5));
-}
-
-
-// In the secondary thread, set a heartbeat timer to go off every
-// second. The heartbeat checks the status of things to be sure
-// they're being set and expired correctly.
-
-int
-Time_Handler::svc (void)
-{
- ACE_Time_Value backstop (30);
-
- this->timer_id_[2] = the_reactor->schedule_timer(this,
- (const void *) 2,
- ACE_Time_Value (3));
- ACE_thread_t tid;
- this->my_reactor_.owner(&tid);
- ACE_DEBUG((LM_DEBUG, "((%t) hearbeat reactor's owner was %d\n", tid));
- this->my_reactor_.owner (ACE_Thread::self ());
- this->my_reactor_.owner(&tid);
- ACE_DEBUG((LM_DEBUG, "((%t) hearbeat reactor's owner is %d\n", tid));
-
- long id = this->my_reactor_.schedule_timer (this, (const void *) 0,
- ACE_Time_Value (1),
- ACE_Time_Value (1));
- this->my_reactor_.owner(&tid);
-
- while (!ACE_Reactor::event_loop_done())
- {
- int result = this->my_reactor_.handle_events (backstop);
- if (result == -1)
- break;
- }
-
- ACE_DEBUG((LM_DEBUG, "(%T(%t) exit from heartbeat\n"));
- return 0;
-}
-
-int
-Time_Handler::handle_timeout (const ACE_Time_Value &tv,
- const void *arg)
-{
- long time_tag = long (arg);
- ACE_UNUSED_ARG(tv);
-
- if (time_tag == 0)
- { // Heartbeat.
- int i;
-
- ACE_DEBUG ((LM_DEBUG,
- "%T (%t): heartbeat\n"));
- // See if all of the timers have fired. If so, leave the thread's
- // reactor loop which will exit the thread and end the test.
-
- for (i = 0; i < Time_Handler::TIMER_SLOTS; i++)
- if (this->timer_id_[i] != -1)
- break;
-
- ACE_DEBUG ((LM_DEBUG,
- "%T (%t): heartbeat done: time slot = %d\n", i));
- if (i == Time_Handler::TIMER_SLOTS)
- { // All timers should be gone.
-
- // Cancel heartbeat.
- ACE_ASSERT (this->my_reactor_.cancel_timer (this) == 1);
-
- // Shouldn't be any.
- ACE_ASSERT (the_reactor->cancel_timer (this) == 0);
- this->my_reactor_.end_event_loop ();
- ACE_DEBUG ((LM_DEBUG,
- "%T (%t): event loop ended\n"));
- }
- return 0;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "%T (%t): Timer #%d (id #%d) expired\n",
- time_tag,
- this->timer_id_[time_tag]));
-
- ACE_ASSERT (this->timer_id_[time_tag] != -1);
- this->timer_id_[time_tag] = -1;
-
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS */
-
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Select_Reactor_Test");
-
-#if defined (ACE_HAS_THREADS)
-
- the_reactor = ACE_Reactor::instance ();
- Time_Handler other_thread;
-
-
- // Set up initial set of timers.
- other_thread.setup ();
-
- #if 0
- the_reactor->schedule_timer (&other_thread,
- (const void *) 1,
- ACE_Time_Value (5));
- #endif /* 0 */
-
- other_thread.activate (THR_NEW_LWP | THR_JOINABLE);
- the_reactor->run_event_loop ();
- ACE_DEBUG ((LM_DEBUG,
- "%T (%t): waiting for thread to exit\n"));
- other_thread.wait ();
-#else
- ACE_ERROR ((LM_ERROR, "threads not supported on this platform\n"));
-#endif /* ACE_HAS_THREADS */
-
- ACE_END_TEST;
- return 0;
-}
diff --git a/tests/CLASSIX/CLASSIX_Select_Reactor_Test.h b/tests/CLASSIX/CLASSIX_Select_Reactor_Test.h
deleted file mode 100644
index 6f992a74f90..00000000000
--- a/tests/CLASSIX/CLASSIX_Select_Reactor_Test.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// MT_Reactor_Timer_Test.h
-//
-// = DESCRIPTION
-// This file contains class definitions needed for template
-// instantiation in the MT_Reactor_Timer_Test.cpp file.
-//
-// = AUTHOR
-// Steve Huston
-//
-// ============================================================================
-
-#ifndef __MT_REACTOR_TIMER_TEST_H
-#define __MT_REACTOR_TIMER_TEST_H
-
-#include "ace/Reactor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Task.h"
-
-class Time_Handler : public ACE_Task<ACE_SYNCH>
-{
-public:
- Time_Handler (void);
-
- void setup (void);
-
- virtual int svc (void);
- // Run by a daemon thread to handle deferred processing.
-
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg);
-
-private:
- enum
- {
- TIMER_SLOTS = 10
- };
-
- long timer_id_[TIMER_SLOTS];
- int step_;
- ACE_Reactor my_reactor_;
-};
-
-#endif /* __MT_REACTOR_TIMER_TEST_H */
diff --git a/tests/CLASSIX/CLASSIX_Stream_Test.cpp b/tests/CLASSIX/CLASSIX_Stream_Test.cpp
deleted file mode 100644
index 4956339f41c..00000000000
--- a/tests/CLASSIX/CLASSIX_Stream_Test.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Stream_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <IPP_CLASSIX_Addr> class.
-//
-// = AUTHOR
-// Wei Chiang
-//
-// ============================================================================
-
-#include "ace/CLASSIX/CLASSIX_Stream.h"
-
-#include "tests/test_config.h"
-
-#define RCV_DELAY 1000 /* We should NOT wait in ipcReceive */
-
-static char sndBody[] = "The sea is calm, the tide is full ...\n";
-static char rcvAnnex[K_CMSGANNEXSIZE];
-static char rcvBody[1000];
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Stream_Test");
-
- /* ================================================================== */
- ACE_CLASSIX_Port_Core remote_port;
-
- // Sender's socket
- // Use my default port as the sending address
- ACE_CLASSIX_Stream send(remote_port);
-
- ACE_CLASSIX_Stream rcv(send.local_sap().get_addr(),
- ACE_CLASSIX_Port(remote_port));
- // make the rcv's port be one of the multiple receive ports
- if (rcv.selectable() < 0)
- ACE_DEBUG((LM_DEBUG, "failed to make the port selectable\n"));
-
- send.open_writer();
-
- ACE_DEBUG((LM_DEBUG, "send and block on receive....\n"));
- if (send.send_n(&sndBody[0], sizeof(sndBody)) == sizeof(sndBody))
- {
- // Receiver's Socket
- int rslt = rcv.ipcRecv(rcvBody, 1000);
- if (rslt == sizeof (sndBody))
- ACE_DEBUG((LM_DEBUG, "received %s\n", rcvBody));
- else
- ACE_DEBUG((LM_ERROR, "???? Error in ipcReceive():%d\n", rslt));
- }
- else
- {
- ACE_ERROR((LM_ERROR, "(%t)|%p\n", "???? Error in send_n()\n"));
- }
-
- ACE_DEBUG((LM_DEBUG, "send, peek then block on receive....\n"));
- if (send.send_n(&sndBody[0], sizeof(sndBody)) == sizeof(sndBody))
- {
- // Receiver's Socket
- // int rslt = rcv.recv(rcvBody, 1000, MSG_PEEK);
- // Equivalent to rcv.peek()
- int rslt = rcv.peek();
- if (rslt < 0)
- ACE_DEBUG((LM_ERROR, "???? Error while peeking :%d\n", rslt));
- else
- {
- char *buf = new char(rslt);
- if (int n = rcv.recv(buf, rslt) == rslt)
- ACE_DEBUG((LM_DEBUG, "received %s\n", buf));
- else
- ACE_DEBUG((LM_ERROR, "???? Error in ipcReceive(): %d\n", n));
- delete buf;
- }
- }
- else
- {
- ACE_DEBUG((LM_ERROR, "???? Error in send_n()\n"));
- }
-
- ACE_DEBUG((LM_DEBUG, "test recv_n()....\n"));
- if (send.send_n(&sndBody[0], sizeof(sndBody)) == sizeof(sndBody) &&
- send.send_n(&sndBody[0], sizeof(sndBody)) == sizeof(sndBody))
- {
- // Receiver's Socket
-
- int rslt = rcv.ipcRecv_n(rcvBody, 2*sizeof (sndBody) - 10);
- if (rslt == (2 * sizeof (sndBody) -10))
- {
- rcvBody[rslt] = '\0'; // For %s printout format
- ACE_DEBUG((LM_DEBUG, "received %d byte: %s + %s\n", rslt,
- rcvBody, rcvBody + sizeof(sndBody)));
- }
- else
- ACE_DEBUG((LM_ERROR, "???(%P|%t) %p\n", "ipcRecv_n()"));
- }
- else
- ACE_DEBUG((LM_ERROR, "???(%P|%t) %p\n", "ipcRecv_n()"));
-
- ACE_END_TEST;
- return 0;
-}
-
diff --git a/tests/CLASSIX/CLASSIX_test_config.h b/tests/CLASSIX/CLASSIX_test_config.h
deleted file mode 100644
index cce7e86c1af..00000000000
--- a/tests/CLASSIX/CLASSIX_test_config.h
+++ /dev/null
@@ -1,277 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-// = FILENAME
-// test_config.h
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>, Tim Harrison
-// <harrison@cs.wustl.edu>, and David Levine <levine@cs.wustl.edu>
-//
-// ============================================================================
-
-#ifndef ACE_TEST_CONFIG_H
-#define ACE_TEST_CONFIG_H
-
-// This first #undef protects against command-line definitions.
-#undef ACE_NDEBUG
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/streams.h"
-
-// The second #undef protects against being reset in a config.h file.
-#undef ACE_NDEBUG
-
-#if !defined (ACE_HAS_TEMPLATE_SPECIALIZATION)
-class KEY
-// ============================================================================
-// = TITLE
-// Define a key for use with the Map_Manager_Test.
-//
-// = DESCRIPTION
-// This class is put into the test_config.h header file to work
-// around AIX C++ compiler "features" related to template
-// instantiation... It is only used by Map_Manager_Test.cpp
-// ============================================================================
-{
-public:
- KEY (size_t v = 0): value_ (v)
- { }
-
- size_t hash (void) const { return this->value_; }
- operator size_t () const { return this->value_; }
-
-private:
- size_t value_;
-};
-#else
-typedef size_t KEY;
-#endif /* ACE_HAS_TEMPLATE_SPECIALIZATION */
-
-#if defined (ACE_WIN32)
-
-#define ACE_DEFAULT_TEST_FILE_A "C:\\temp\\ace_test_file"
-#define ACE_TEMP_FILE_NAME_A "C:\\temp\\ace_temp_file"
-#define ACE_LOG_DIRECTORY_A "C:\\temp\\log\\"
-#define MAKE_PIPE_NAME_A(X) "\\\\.\\pipe\\"#X
-
-#define ACE_DEFAULT_TEST_FILE_W L"C:\\temp\\ace_test_file"
-#define ACE_TEMP_FILE_NAME_W L"C:\\temp\\ace_temp_file"
-#define ACE_LOG_DIRECTORY_W L"C:\\temp\\log\\"
-#define MAKE_PIPE_NAME_W(X) L"\\\\.\\pipe\\"#X
-
-#else
-
-#define ACE_DEFAULT_TEST_FILE_A "/tmp/ace_test_file"
-#define ACE_TEMP_FILE_NAME_A "/tmp/ace_temp_file"
-#define ACE_LOG_DIRECTORY_A "log/"
-#define MAKE_PIPE_NAME_A(X) X
-
-#if defined (ACE_HAS_UNICODE)
-#define ACE_DEFAULT_TEST_FILE_W L"/tmp/ace_test_file"
-#define ACE_TEMP_FILE_NAME_W L"/tmp/ace_temp_file"
-#define ACE_LOG_DIRECTORY_W L"log/"
-#define MAKE_PIPE_NAME_W(X) L##X
-#else
-#define ACE_DEFAULT_TEST_FILE_W "/tmp/ace_test_file"
-#define ACE_TEMP_FILE_NAME_W "/tmp/ace_temp_file"
-#define ACE_LOG_DIRECTORY_W "log/"
-#define MAKE_PIPE_NAME_W(X) X
-#endif /* ACE_HAS_UNICODE */
-
-#endif /* ACE_WIN32 */
-
-#if defined (UNICODE)
-#define ACE_DEFAULT_TEST_FILE ACE_DEFAULT_TEST_FILE_W
-#define ACE_TEMP_FILE_NAME ACE_TEMP_FILE_NAME_W
-#define ACE_LOG_DIRECTORY ACE_LOG_DIRECTORY_W
-#define MAKE_PIPE_NAME MAKE_PIPE_NAME_W
-#else
-#define ACE_DEFAULT_TEST_FILE ACE_DEFAULT_TEST_FILE_A
-#define ACE_TEMP_FILE_NAME ACE_TEMP_FILE_NAME_A
-#define ACE_LOG_DIRECTORY ACE_LOG_DIRECTORY_A
-#define MAKE_PIPE_NAME MAKE_PIPE_NAME_A
-#endif /* UNICODE */
-
-#define ACE_START_TEST(NAME) \
- const char *program = NAME; \
- ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM); \
- if (ace_file_stream.set_output (program) != 0) \
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "set_output failed"), -1); \
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) starting %s test at %D\n", program));
-
-#define ACE_END_TEST \
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Ending %s test at %D\n", program)); \
- ace_file_stream.close ()
-
-#define ACE_APPEND_LOG(NAME) \
- const char *program = NAME; \
- ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM); \
- ace_file_stream.close (); \
- if (ace_file_stream.set_output (program, 1) != 0) \
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "set_output failed"), -1); \
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Starting %s test at %D\n", program));
-
-#define ACE_END_LOG \
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Ending %s test at %D\n\n", program)); \
- ace_file_stream.close ();
-
-#if defined (VXWORKS)
- // This is the only way I could figure out to avoid an error
- // about attempting to unlink a non-existant file.
-#define ACE_INIT_LOG(NAME) \
- char temp[MAXPATHLEN]; \
- ACE_OS::sprintf (temp, "%s%s%s", \
- ACE_LOG_DIRECTORY_A, \
- ACE::basename (NAME, ACE_DIRECTORY_SEPARATOR_CHAR_A), \
- ".log"); \
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Deleting old log file %s (if any)\n\n", temp)); \
- int fd_init_log; \
- if ((fd_init_log = ACE_OS::open (temp, \
- O_WRONLY | O_CREAT, 0x644)) != ERROR) \
- { \
- ACE_OS::close (fd_init_log); \
- ACE_OS::unlink (temp); \
- }
-#else /* ! VXWORKS */
-#define ACE_INIT_LOG(NAME) \
- char temp[MAXPATHLEN]; \
- ACE_OS::sprintf (temp, "%s%s%s", \
- ACE_LOG_DIRECTORY_A, \
- ACE::basename (NAME, ACE_DIRECTORY_SEPARATOR_CHAR_A), \
- ".log"); \
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Deleting old log file %s (if any)\n\n", temp)); \
- ACE_OS::unlink (temp);
-#endif /* ! VXWORKS */
-
-const size_t ACE_NS_MAX_ENTRIES = 1000;
-const size_t ACE_DEFAULT_USECS = 1000;
-const size_t ACE_MAX_TIMERS = 4;
-const size_t ACE_MAX_THREADS = 4;
-const size_t ACE_MAX_DELAY = 10;
-const size_t ACE_MAX_INTERVAL = 0;
-const size_t ACE_MAX_ITERATIONS = 10;
-const size_t ACE_MAX_PROCESSES = 10;
-const size_t ACE_MAX_CLIENTS = 30;
-
-char ACE_ALPHABET[] = "abcdefghijklmnopqrstuvwxyz";
-
-class ACE_Test_Output
-{
-public:
- ACE_Test_Output (void);
- ~ACE_Test_Output (void);
- int set_output (const char *filename, int append = 0);
- ofstream *output_file (void);
- void close (void);
-
-private:
- ofstream output_file_;
-};
-
-static ACE_Test_Output ace_file_stream;
-
-ACE_Test_Output::ACE_Test_Output (void)
-{
-}
-
-ACE_Test_Output::~ACE_Test_Output (void)
-{
-}
-
-int
-ACE_Test_Output::set_output (const char *filename, int append)
-{
- char temp[MAXPATHLEN];
- // Ignore the error value since the directory may already exist.
-
- char *test_dir = ACE_OS::getenv ("ACE_TEST_DIR");
-
- if (test_dir == 0)
- test_dir = "";
-
- ACE_OS::sprintf (temp,
- "%s%s%s%s",
- test_dir,
- ACE_LOG_DIRECTORY_A,
- ACE::basename (filename, ACE_DIRECTORY_SEPARATOR_CHAR_A),
- ".log");
-
-#if defined (VXWORKS)
- // This is the only way I could figure out to avoid a console warning
- // about opening an existing file (w/o O_CREAT), or attempting to unlink
- // a non-existant one.
- int fd;
- if ((fd = ACE_OS::open (temp, O_WRONLY | O_CREAT, 0x644)) != ERROR)
- {
- ACE_OS::close (fd);
- ACE_OS::unlink (temp);
- }
-#else /* ! VXWORKS */
- // This doesn't seem to work on VxWorks if the directory doesn't
- // exist: it creates a plain file instead of a directory. If the
- // directory does exist, it causes a wierd console error message
- // about "cat: input error on standard input: Is a directory". So,
- // VxWorks users must create the directory manually.
- ACE_OS::mkdir (ACE_LOG_DIRECTORY_A);
-#endif /* ! VXWORKS */
-
- int flags = ios::out;
- if (append)
- flags |= ios::app;
- else
- flags |= ios::trunc;
-
- this->output_file_.open (temp, flags);
- if (this->output_file_.bad ())
- {
- return -1;
- }
-
- ACE_LOG_MSG->msg_ostream (ace_file_stream.output_file ());
- ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER );
- ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
-
- return 0;
-}
-
-ofstream *
-ACE_Test_Output::output_file (void)
-{
- return &this->output_file_;
-}
-
-void
-ACE_Test_Output::close (void)
-{
- this->output_file_.flush ();
- this->output_file_.close ();
-}
-
-void
-randomize (int array[], size_t size)
-{
- size_t i;
-
- for (i = 0; i < size; i++)
- array [i] = i;
-
- ACE_OS::srand (ACE_OS::time (0L));
-
- // Generate an array of random numbers from 0 .. size - 1.
-
- for (i = 0; i < size; i++)
- {
- int index = ACE_OS::rand() % size--;
- int temp = array [index];
- array [index] = array [size];
- array [size] = temp;
- }
-}
-
-#endif /* ACE_TEST_CONFIG_H */
diff --git a/tests/CLASSIX/Imakefile b/tests/CLASSIX/Imakefile
deleted file mode 100644
index 4b8d8362d85..00000000000
--- a/tests/CLASSIX/Imakefile
+++ /dev/null
@@ -1,152 +0,0 @@
-INDIR = $(IPP_CHORUS_ROOT)/lib
-
-CDEBUGFLAGS += -gstabs+
-CXXDEBUGFLAGS += -gstabs+
-
-INCLUDES= \
- -I$(ACE_ROOT) \
- -I$(IPP_CHORUS_ROOT)
-
-CCOPTIONS += -fno-implicit-templates
-
-CCSRCS = \
- CLASSIX_Con_Acc_Test.C \
- CLASSIX_CLD_Connector_Test.C \
- CLASSIX_Select_Reactor_Test.C \
- CLASSIX_Reactor_Test.C \
- CLASSIX_Stream_Test.C \
- CLASSIX_OS_Test.C \
- CLASSIX_Addr_Test.C \
- CLASSIX_Group_Test.C
-
-OBJS = \
- CLASSIX_Con_Acc_Test.o \
- CLASSIX_CLD_Connector_Test.o \
- CLASSIX_Select_Reactor_Test.o \
- CLASSIX_Reactor_Test.o \
- CLASSIX_Stream_Test.o \
- CLASSIX_OS_Test.o \
- CLASSIX_Addr_Test.o \
- CLASSIX_Group_Test.o
-
-
-BININDIR= $(CLASSIXDIR)/users/wei
-
-CLASSIXLIB = \
- $(CLASSIXDIR)/lib/CC/libC.a \
- ClassiXUserLibs
-
-LOCALLIB = \
- $(IPP_CHORUS_ROOT)/libCLASSIX.a
-
-ClassiXObjectRule()
-
-################################################################
-ClassiXCplusplusUserProgramTarget(CLASSIX_Con_Acc_Test,\
- CLASSIX_Con_Acc_Test.o,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a \
- $(CLASSIXLIB))
-
-AllTarget(CLASSIX_Con_Acc_Test)
-InstallProgram(CLASSIX_Con_Acc_Test,$(BININDIR))
-
-################################################################
-ClassiXCplusplusUserProgramTarget(CLASSIX_CLD_Connector_Test,\
- CLASSIX_CLD_Connector_Test.o,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a \
- $(CLASSIXLIB))
-
-AllTarget(CLASSIX_CLD_Connector_Test)
-InstallProgram(CLASSIX_CLD_Connector_Test,$(BININDIR))
-
-################################################################
-ClassiXCplusplusUserProgramTarget(CLASSIX_Notify_Test,\
- CLASSIX_Notify_Test.o,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a \
- $(CLASSIXLIB))
-
-AllTarget(CLASSIX_Notify_Test)
-InstallProgram(CLASSIX_Notify_Test,$(BININDIR))
-
-################################################################
-ClassiXCplusplusUserProgramTarget(CLASSIX_Reactor_Test,\
- CLASSIX_Reactor_Test.o,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a \
- $(CLASSIXLIB))
-
-AllTarget(CLASSIX_Reactor_Test)
-InstallProgram(CLASSIX_Reactor_Test,$(BININDIR))
-
-################################################################
-ClassiXCplusplusUserProgramTarget(CLASSIX_Select_Reactor_Test,\
- CLASSIX_Select_Reactor_Test.o,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a \
- $(CLASSIXLIB))
-
-AllTarget(CLASSIX_Select_Reactor_Test)
-InstallProgram(CLASSIX_Select_Reactor_Test,$(BININDIR))
-
-################################################################
-ClassiXCplusplusUserProgramTarget(CLASSIX_Addr_Test,\
- CLASSIX_Addr_Test.o,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a \
- $(CLASSIXLIB))
-
-AllTarget(CLASSIX_Addr_Test)
-InstallProgram(CLASSIX_Addr_Test,$(BININDIR))
-
-################################################################
-ClassiXCplusplusUserProgramTarget(CLASSIX_Group_Test,\
- CLASSIX_Group_Test.o,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a \
- $(CLASSIXLIB))
-
-AllTarget(CLASSIX_Group_Test)
-InstallProgram(CLASSIX_Group_Test,$(BININDIR))
-
-################################################################
-ClassiXCplusplusUserProgramTarget(CLASSIX_OS_Test,\
- CLASSIX_OS_Test.o,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a \
- $(CLASSIXLIB))
-
-AllTarget(CLASSIX_OS_Test)
-InstallProgram(CLASSIX_OS_Test,$(BININDIR))
-
-################################################################
-ClassiXCplusplusUserProgramTarget(CLASSIX_Stream_Test,\
- CLASSIX_Stream_Test.o,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a,\
- $(LOCALLIB) \
- $(ACE_ROOT)/ace/libACE.a \
- $(CLASSIXLIB))
-
-AllTarget(CLASSIX_Stream_Test)
-InstallProgram(CLASSIX_Stream_Test,$(BININDIR))
-
-